La fonctionnalité Wi-Fi Direct, également appelée Wi-Fi P2P, permet aux appareils compatibles de se détecter et de se connecter directement les uns aux autres à l'aide du protocole Wi-Fi Direct, sans accès à Internet ni au réseau mobile. Cette fonctionnalité, basée sur la spécification Wi-Fi Direct de la Wi-Fi Alliance (WFA) , permet de partager des données à haut débit entre des appareils et des applications de confiance qui ne sont pas connectés au 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 demandeur.
Dans Android 13, l'interface du demandeur 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 HAL Wi-Fi suivantes sont requises pour utiliser la fonctionnalité Wi-Fi Direct :
hardware/interfaces/wifi/aidlouhardware/interfaces/wifi/1.3ou version ultérieurehardware/interfaces/wifi/supplicant/aidlouhardware/interfaces/wifi/supplicant/1.2ou version ultérieure
Implémentation
Les fabricants d'appareils doivent fournir une compatibilité avec le framework, ainsi qu'avec HAL/le micrologiciel :
- Framework:
- Code AOSP
- Activer Wi-Fi Direct : nécessite un flag de fonctionnalité
- Compatibilité HAL 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 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 exigences pour la compatibilité avec Wi-Fi Direct sont incluses dans AOSP.
Sélection aléatoire de l'adresse 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 Wi-Fi Direct doit être aléatoire lors de la création de l'interface s'il n'existe aucun groupe persistant 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 être aléatoire chaque fois qu'une connexion est établie.
La sélection aléatoire de l'adresse MAC 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émenter l'API
ISupplicantP2pIface::setMacRandomizationdu demandeur Wi-Fi. Selon l'interface implémentée, elle se trouve dans :hardware/interface/wifi/supplicant/1.2pour HIDLhardware/interface/wifi/supplicant/aidlpour AIDL
- Définir
config_wifi_p2p_mac_randomization_supportedsur "true" dans une superposition personnalisée de l'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. Wi-Fi Direct peut également être testé à l'aide de Vendor Test Suite (VTS).
Tests unitaires
Vérifiez le package Wi-Fi Direct à l'aide des tests suivants.
Tests de service :
atest com.android.server.wifi.p2pTests du gestionnaire :
atest android.net.wifi.p2pTests Compatibility Test Suite (CTS)
Utilisez les tests CTS pour valider la fonctionnalité Wi-Fi Direct. CTS détecte lorsque 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.ctsTests CTS Verifier
Les tests CTS Verifier valident le comportement de Wi-Fi Direct à l'aide de deux appareils : un appareil de test et un appareil fonctionnel. Pour exécuter les tests, ouvrez CTS Verifier et accédez à la section intitulée "Wi-Fi Direct Tests" (Tests Wi-Fi Direct).