Wi-Fi Direct

La fonctionnalité Wi-Fi Direct, également appelée Wi-Fi P2P, permet aux appareils compatibles de se détecter et de se connecter directement à 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 approuvés 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 et du demandeur Wi-Fi.

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

Implémentation

Les fabricants d'appareils doivent fournir une compatibilité avec le framework et le 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 HIDL ou AIDL Wi-Fi et activent l'indicateur de fonctionnalité pour le 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 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 doivent respecter les exigences suivantes:

  • L'adresse de l'appareil 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 être 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. Selon l'interface implémentée, cette valeur se trouve dans :
    • 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 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. Vous pouvez également tester Wi-Fi Direct à l'aide de la suite de test de fournisseur (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 administrateur:

atest android.net.wifi.p2p

Tests de la suite de tests de compatibilité (CTS)

Utilisez des 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 du vérificateur CTS valident le comportement de Wi-Fi Direct à l'aide de deux appareils: un appareil de test et un appareil connu comme correct. Pour exécuter les tests, ouvrez CTS Verifier et accédez à la section intitulée "Tests Wi-Fi Direct".