La fonctionnalité Wi-Fi Direct, également appelée Wi-Fi P2P, permet aux appareils compatibles de se détecter les uns les autres et de s'y connecter directement à l'aide du protocole Wi-Fi Direct, sans accès à Internet ni à un réseau mobile. Cette fonctionnalité, basée sur la spécification Wi-Fi Direct de la Wi-Fi Alliance (WFA), permet le partage de données à haut débit entre des appareils approuvés et des applications qui se trouvent hors réseau.
Exemples et source
Pour utiliser cette fonctionnalité, les fabricants d'appareils doivent implémenter les interfaces HAL du fournisseur Wi-Fi et du fournisseur.
Dans Android 13, l'interface Supplicant utilise AIDL pour la définition HAL. Dans Android 14 et versions ultérieures, l'interface HAL du fournisseur utilise AIDL. Dans Android 12 et versions antérieures, les interfaces HAL du demandeur et du fournisseur sont définies à l'aide de HIDL.
Les surfaces Wi-Fi HAL suivantes sont requises pour utiliser la fonctionnalité Wi-Fi Direct:
hardware/interfaces/wifi/aidl
ouhardware/interfaces/wifi/1.3
ou version ultérieurehardware/interfaces/wifi/supplicant/aidl
ouhardware/interfaces/wifi/supplicant/1.2
ou version ultérieure
Implémentation
Les fabricants d'appareils doivent fournir une compatibilité avec le framework et le micrologiciel HAL/micrologiciel:
- Framework:
- Code AOSP
- Activer Wi-Fi Direct: nécessite un flag de fonctionnalité
- Compatibilité HAL avec le Wi-Fi Direct (P2P) (ce qui implique la compatibilité avec le micrologiciel)
Pour implémenter cette fonctionnalité, les fabricants d'appareils implémentent les interfaces Wi-Fi HIDL ou AIDL et activent le flag de fonctionnalité pour Wi-Fi Direct. Dans le fichier device.mk
situé dans device/<oem>/<device>
, modifiez la variable d'environnement PRODUCT_COPY_FILES
pour inclure la compatibilité avec la fonctionnalité Wi-Fi Direct:
```
PRODUCT_COPY_FILES +=
frameworks/native/data/etc/android.hardware.wifi.direct.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.direct.xml
```
Toutes les autres conditions requises pour prendre en charge Wi-Fi Direct sont incluses dans l'AOSP.
randomisation MAC
Android exige que l'adresse de l'appareil et l'adresse de l'interface Wi-Fi Direct soient aléatoires. Elles doivent être différentes de l'adresse MAC réelle de l'appareil et répondre aux exigences suivantes:
- L'adresse de l'appareil en Wi-Fi Direct doit être aléatoire lors de la création de l'interface si aucun groupe persistant n'est enregistré. Sinon, l'adresse de l'appareil doit continuer à utiliser la dernière adresse MAC générée.
- L'adresse de l'interface Wi-Fi Direct, également appelée adresse de groupe, doit apparaître dans un ordre aléatoire chaque fois qu'une connexion est établie.
La randomisation MAC en Wi-Fi Direct est implémentée dans "wpa_supplicant" et contrôlée par deux configurations, p2p_device_random_mac_addr
et p2p_interface_random_mac_addr
.
Pour activer cette fonctionnalité, les fabricants d'appareils doivent:
- Implémentez l'API Wi-Fi Supplicant
ISupplicantP2pIface::setMacRandomization
. En fonction de l'interface implémentée, cette option se présente comme suit :hardware/interface/wifi/supplicant/1.2
pour HIDLhardware/interface/wifi/supplicant/aidl
pour AIDL
- Définissez
config_wifi_p2p_mac_randomization_supported
sur "true" dans une superposition personnalisée d'appareil.
Validation
Android fournit un ensemble de tests unitaires, de tests Compatibility Test Suite (CTS) et de tests CTS Verifier pour valider la fonctionnalité Wi-Fi Direct. Vous pouvez également tester le Wi-Fi Direct à l'aide de la suite de test fournisseur (VTS).
Tests unitaires
Vérifiez le package Wi-Fi Direct à l'aide des tests suivants.
Tests du service:
atest com.android.server.wifi.p2p
Tests du responsable:
atest android.net.wifi.p2p
Tests de la suite de tests de compatibilité (CTS)
Utilisez les tests CTS pour valider la fonctionnalité Wi-Fi Direct. CTS détecte quand la fonctionnalité est activée et inclut automatiquement les tests associés.
Pour déclencher les tests CTS, exécutez la commande suivante:
% atest android.net.wifi.p2p.cts
Tests CTS Verifier
Les tests CTS Verifier valident le comportement du Wi-Fi Direct à l'aide de deux appareils: un appareil de test et un appareil produit connu. Pour exécuter les tests, ouvrez le vérificateur CTS et accédez à la section intitulée Tests Wi-Fi Direct.