Wi-Fi Direct

La fonctionnalité Wi-Fi Direct , également connue sous le nom de Wi-Fi P2P, permet aux appareils pris en charge de se découvrir et de se connecter directement les uns aux autres à l'aide du protocole Wi-Fi Direct sans accès à Internet ou au réseau cellulaire. 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 et des applications de confiance qui seraient autrement hors réseau.

Exemples et source

Pour utiliser cette fonctionnalité, les fabricants d’appareils doivent implémenter les interfaces Wi-Fi Vendor et Supplicant HAL.

Dans Android 13, l'interface Supplicant utilise AIDL pour la définition HAL. Sous Android 14 et versions ultérieures, l’interface Vendor HAL utilise AIDL. Dans Android 12 et versions antérieures, les interfaces HAL Supplicant et Vendor 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 ou, hardware/interfaces/wifi/1.3 ou supérieur
  • hardware/interfaces/wifi/supplicant/aidl ou, hardware/interfaces/wifi/supplicant/1.2 ou supérieur

Mise en œuvre

Les fabricants d’appareils doivent fournir à la fois une prise en charge du framework et du HAL/micrologiciel :

  • Cadre:
    • Code AOSP
    • Activer Wi-Fi Direct : nécessite un indicateur de fonctionnalité
  • Prise en charge Wi-Fi Direct (P2P) HAL (ce qui implique la prise en charge du micrologiciel)

Pour implémenter cette fonctionnalité, les fabricants d'appareils implémentent les interfaces Wi-Fi HIDL ou AIDL et activent l'indicateur 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 prise en charge de 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 prise en charge de Wi-FI Direct sont incluses dans AOSP.

Randomisation MAC

Android exige que l' adresse de l'appareil Wi-Fi Direct et l'adresse de l'interface soient aléatoires. Elles doivent être différentes de la véritable adresse MAC de l'appareil et doivent répondre aux exigences suivantes :

  • L'adresse de l'appareil Wi-Fi Direct doit être randomisée 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 être randomisée à chaque fois qu'une connexion est établie.

La randomisation Wi-Fi Direct MAC 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 . Selon l'interface implémentée, celle-ci se présente sous :
    • hardware/interface/wifi/supplicant/1.2 pour HIDL
    • hardware/interface/wifi/supplicant/aidl pour AIDL
  • Définissez config_wifi_p2p_mac_randomization_supported sur « true » dans une superposition personnalisée de périphérique.

Validation

Android fournit un ensemble de tests unitaires, de tests d'intégration (Android Connectivity Test Suite ou ACTS), 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 du 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.p2p

Tests du gestionnaire :

atest android.net.wifi.p2p

Tests d'intégration (ACTS)

La suite de tests ACTS Wi-FI Direct, située dans tools/test/connectivity/acts_tests/tests/google/wifi/p2p , implémente des tests fonctionnels de Wi-Fi Direct.

Tests de la suite de tests de compatibilité (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 :

% atest android.net.wifi.p2p.cts

Tests du vérificateur CTS

Les tests CTS Verifier valident le comportement de Wi-Fi Direct à l'aide de deux appareils : un appareil de test et un appareil en bon état . Pour exécuter les tests, ouvrez CTS Verifier et accédez à la section intitulée Tests Wi-Fi Direct.