Compatible Wi-Fi

La fonctionnalité Wi-Fi Aware ajoutée dans Android 8.0 permet aux appareils pris en charge de se découvrir, de se connecter et de se rapprocher (ajoutés dans Android 9) les uns aux autres directement à l'aide du protocole Wi-Fi Aware sans accès à Internet ou au réseau cellulaire. Cette fonctionnalité, basée sur la spécification Wi-Fi Aware de la Wi-Fi Alliance (WFA) (versions 2.0, 3.0, 3.1 et 4.0), permet un partage facile 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 le Wi-Fi Vendor HAL. Sous Android 14 et versions ultérieures, l’interface Vendor HAL est définie à l’aide de AIDL. Pour Android 13 et versions antérieures, l’interface Vendor HAL est définie à l’aide de HIDL.

Suivez l'interface Wi-Fi pour utiliser la fonction Wi-Fi Aware. Selon l'interface implémentée, il s'agit soit :

  • AIDL : hardware/interfaces/wifi/aidl
  • HIDL : hardware/interfaces/wifi/1.2 ou version ultérieure

Vous pouvez vous référer à l'ancien Wi-Fi HAL pour voir comment il est en corrélation avec les interfaces AIDL et HIDL : hardware/libhardware_legacy/+/main/include/hardware_legacy/wifi_nan.h .

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 Aware : nécessite à la fois un indicateur de fonctionnalité et un indicateur de build
  • Prise en charge Wi-Fi Aware (NAN) HAL (ce qui implique la prise en charge du micrologiciel)

Pour implémenter cette fonctionnalité, les fabricants d'appareils implémentent l'interface Wi-Fi et activent deux indicateurs de fonctionnalité :

  • Dans BoardConfig.mk ou BoardConfig-common.mk situé dans device/<oem>/<device> , ajoutez l'indicateur suivant :

    WIFI_HIDL_FEATURE_AWARE := true
    
  • 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 Aware :

    PRODUCT_COPY_FILES +=
    frameworks/native/data/etc/android.hardware.wifi.aware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.aware.xml
    

Wi-Fi Aware inclut la portée vers des appareils homologues utilisant le protocole IEEE 802.11mc, également connu sous le nom de Round Trip Time (RTT). Cette sous-fonctionnalité de Wi-Fi Aware dépend de la prise en charge par l'appareil de la fonctionnalité Wi-Fi RTT, c'est-à-dire qu'elle nécessite que l'appareil prenne en charge à la fois Wi-Fi Aware et Wi-Fi RTT. Pour plus de détails, voir Wi-Fi RTT .

Sinon, tout ce qui est requis pour cette fonctionnalité est inclus dans AOSP.

L'indicateur WIFI_HIDL_FEATURE_AWARE est ignoré si l'indicateur WIFI_HAL_INTERFACE_COMBINATIONS est spécifié. Pour plus d’informations, consultez Concurrence multi-interface Wi-Fi .

Randomisation MAC

Android exige que l'adresse MAC de la découverte Wi-Fi Aware (NMI) et des interfaces de données (NDP) soit aléatoire et ne soit pas identique à la véritable adresse MAC de l'appareil. Les adresses MAC doivent être :

  • Randomisé chaque fois que Wi-Fi Aware est activé ou réactivé.
  • Lorsque Wi-Fi Aware est activé, l'adresse MAC doit être randomisée à un intervalle régulier configuré par le paramètre NanConfigRequest.macAddressRandomizationIntervalSec . Ceci est configuré par défaut par le framework sur 30 minutes.

Suspendre et reprendre

Sous Android 14 et versions ultérieures, Wi-Fi Aware prend en charge la possibilité pour les applications privilégiées de suspendre et de reprendre les sessions de découverte actives (y compris tous les chemins de données associés à ces sessions). La prise en charge de cette fonctionnalité permet aux appareils de reprendre les sessions de découverte plus rapidement et de consommer moins d'énergie, car les sessions de découverte peuvent être suspendues.

Si un appareil prend en charge cette capacité de suspension et de reprise, le micrologiciel suspend la session Wi-Fi Aware lorsqu'une application privilégiée suspend la session de découverte. Lorsqu'une session de découverte est dans un état suspendu, l'appareil ne transmet ni ne reçoit aucune trame pour cette session, y compris les NDP actifs dans cette session. Si toutes les sessions de découverte sont suspendues, l'appareil ne transmet ni ne reçoit aucune trame Wi-Fi Aware.

Lorsqu'une application privilégiée reprend une session de découverte suspendue, l'infrastructure ramène la session à son état précédent, y compris toutes les sessions NDP associées. Reprendre une session de découverte suspendue est plus rapide que d'ouvrir Wi-Fi Aware et de créer une nouvelle session de découverte.

Pour prendre en charge la possibilité de suspendre et de reprendre les sessions de découverte, les fabricants d'appareils doivent fournir une prise en charge HAL et du micrologiciel. Pour plus de détails, consultez IWifiNanIface.java .

Les fabricants d'appareils peuvent utiliser des communications hors bande (par exemple, BLE) pour synchroniser la suspension et la reprise sur plusieurs appareils.

Validation

Android fournit un ensemble de tests unitaires, de tests d'intégration (ACTS), de tests Compatibility Test Suite (CTS) et de tests CTS Verifier pour valider la fonctionnalité Wi-Fi Aware. Wi-Fi Aware peut également être testé à l'aide de Vendor Test Suite (VTS) .

Tests unitaires

Les tests du package Wi-Fi Aware sont exécutés en utilisant :

Tests de service :

atest com.android.server.wifi.aware

Tests du gestionnaire :

atest android.net.wifi.aware

Tests d'intégration (ACTS)

La suite de tests acts/sl4a , décrite dans tools/test/connectivity/acts_tests/tests/google/wifi/aware/README.md , fournit des tests fonctionnels, de performances et de stress.

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

Utilisez les tests CTS pour valider la fonctionnalité Wi-Fi Aware. CTS détecte lorsque la fonctionnalité est activée et inclut automatiquement les tests associés.

Les tests CTS peuvent être déclenchés à l'aide de :

atest SingleDeviceTest

Tests du vérificateur CTS

Les tests CTS Verifier valident le comportement Wi-Fi Aware à 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 Wi-Fi Aware Tests.