Wi-Fi Aware

La fonctionnalité Wi-Fi Aware ajoutée dans Android 8.0 permet aux appareils compatibles de se découvrir, de se connecter et de se localiser (ajouté dans Android 9) directement à l'aide du protocole Wi-Fi Aware sans accès à Internet ni au réseau mobile. Cette fonctionnalité, basée sur la spécification Wi-Fi Aware (versions 2.0, 3.0, 3.1 et 4.0) de la Wi-Fi Alliance (WFA), permet de partager facilement des données à haut débit entre les appareils et les 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 la HAL du fournisseur Wi-Fi. Sur Android 14 et versions ultérieures, l'interface HAL du fournisseur est définie à l'aide d'AIDL. Pour Android 13 et versions antérieures, l'interface HAL du fournisseur est définie à l'aide de HIDL.

Suivez les instructions de l'interface Wi-Fi pour utiliser la fonctionnalité Wi-Fi Aware. En fonction de l'interface implémentée, plusieurs options s'offrent à vous:

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

Reportez-vous à l'ancien HAL Wi-Fi pour voir le lien avec le Interfaces AIDL et HIDL: hardware/libhardware_legacy/+/main/include/hardware_legacy/wifi_nan.h.

Implémentation

Les fabricants d'appareils doivent fournir une compatibilité avec le framework et le HAL/micrologiciel :

  • Framework :
    • Code AOSP
    • Activer Aware : nécessite à la fois un flag de fonctionnalité et un flag de compilation
  • Compatibilité avec le HAL Wi-Fi Aware (NAN) (ce qui implique la compatibilité avec le 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és dans device/<oem>/<device>, ajoutez l'indicateur suivant:

    WIFI_HIDL_FEATURE_AWARE := true
    
  • Dans le fichier device.mk situé dans device/<oem>/<device>, modifiez le Variable d'environnement PRODUCT_COPY_FILES pour inclure la compatibilité avec le Wi-Fi Fonctionnalité 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 prise en charge d'appareils pairs utilisant le protocole IEEE 802.11mc, également appelée délai aller-retour (DAR). Cette sous-fonctionnalité de Wi-Fi Aware est sous réserve que l'appareil prenne en charge la fonctionnalité de texte en temps réel Wi-Fi, c'est-à-dire qu'il nécessite l'appareil doit être compatible avec le Wi-Fi Aware et le DAR Wi-Fi. Pour en savoir plus, consultez Texte en temps réel Wi-Fi :

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

L'option WIFI_HIDL_FEATURE_AWARE est ignorée si l'option WIFI_HAL_INTERFACE_COMBINATIONS est spécifiée. Pour en savoir plus, consultez Simultanéité multi-interface Wi-Fi :

Sélection aléatoire de l'adresse 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 à l'adresse MAC réelle de l'appareil. Les adresses MAC doivent être:

  • Chaque fois que Wi-Fi Aware est activé ou réactivé, les résultats sont aléatoires.
  • Lorsque le service Wi-Fi Aware est activé, l'adresse MAC doit passer de façon aléatoire à une fréquence un intervalle configuré par Paramètre NanConfigRequest.macAddressRandomizationIntervalSec. Par défaut, le framework le configure sur 30 minutes.

Suspendre et reprendre

Sur Android 14 ou version ultérieure, Wi-Fi Aware est compatible avec le possibilité pour les applications privilégiées de suspendre et de reprendre des 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 est compatible avec cette fonctionnalité, 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 suspendue, l'appareil n'émet pas ni recevoir des frames pour cette session, y compris des NDP actifs session. Si toutes les sessions de découverte sont suspendues, l'appareil n'émet pas ni recevoir d'images Wi-Fi Aware.

Lorsqu'une application privilégiée reprend une session de découverte suspendue, le framework rétablit la session dans 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'afficher Wi-Fi Aware et de créer une nouvelle session de découverte.

Pour permettre la suspension et la reprise des sessions de découverte, les fabricants d'appareils doivent fournir une prise en charge du HAL et du micrologiciel. Pour plus d'informations, consultez IWifiNanIface.java.

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

Validation

Android fournit un ensemble de tests unitaires, Tests de la suite de tests de compatibilité (CTS) Tests CTS Verifier pour valider le Wi-Fi Fonctionnalité Aware. Vous pouvez également tester la fonctionnalité Wi-Fi Aware Suite de test pour les fournisseurs (VTS).

Tests unitaires

Les tests du package Wi-Fi Aware sont exécutés à l'aide des éléments suivants:

Tests de service :

atest com.android.server.wifi.aware

Tests du responsable:

atest android.net.wifi.aware

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

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

Les tests CTS peuvent être déclenchés à l'aide des éléments suivants:

atest SingleDeviceTest

Tests du vérificateur CTS

Les tests du vérificateur CTS valident le comportement de la fonctionnalité Wi-Fi Aware à 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 de reconnaissance du Wi-Fi.