Wi-Fi Aware

La Wi-Fi Aware la fonctionnalité ajoutée dans Android 8.0 permet aux appareils pris en charge de découvrir, de se connecter, et la plage d'accès (ajoutée sous Android 9) les uns aux autres, en utilisant le protocole Wi-Fi Aware sans accéder à Internet ni à un réseau mobile. Ce basée sur la Wi-Fi Alliance (WFA) Spécification Wi-Fi Aware (versions 2.0, 3.0, 3.1 et 4.0), qui permet de partager facilement des données à haut débit parmi les appareils et les applications vérifiés qui ne sont pas hors 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 l'interface du 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 micrologiciel HAL/micrologiciel:

  • Cadre: <ph type="x-smartling-placeholder">
      </ph>
    • Code AOSP
    • Activer Aware: nécessite à la fois un flag de fonctionnalité et un indicateur de compilation
  • Compatibilité 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 activer 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 le WIFI_HAL_INTERFACE_COMBINATIONS est spécifié. Pour en savoir plus, consultez Simultanéité multi-interface Wi-Fi :

randomisation MAC

Android nécessite l'adresse MAC de la détection Wi-Fi (NMI) et des données d'interfaces réseau (NDP) de manière aléatoire et non identiques à 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. Ce configuré par défaut par le framework sur 30 minutes.

Suspendre et réactiver

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). Prendre en charge 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 renvoie la session à son état précédent, y compris toutes les valeurs NDP associées sessions. Il est plus rapide de réactiver une session de découverte suspendue que de réactiver Wi-Fi Aware et la création d'une session de découverte.

Pour permettre la suspension et la reprise des sessions de découverte, l'appareil les fabricants doivent fournir une compatibilité HAL et micrologicielle. 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 à l'aide de 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 du 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é et inclut automatiquement les tests associés.

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

atest SingleDeviceTest

Tests CTS Verifier

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