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 situer les uns par rapport aux autres (fonctionnalité ajoutée 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 de la Wi-Fi Alliance (WFA) (versions 2.0, 3.0, 3.1 et 4.0), facilite le partage de données à haut débit entre des appareils et des applications de confiance qui ne sont pas connectés au réseau.
Exemples et source
Pour utiliser cette fonctionnalité, les fabricants d'appareils doivent implémenter le HAL du fournisseur Wi-Fi. Dans 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 Wi-Fi pour utiliser la fonctionnalité Wi-Fi Aware. Selon l'interface implémentée, il s'agit de l'une des options suivantes :
- AIDL:
hardware/interfaces/wifi/aidl - HIDL :
hardware/interfaces/wifi/1.2ou version ultérieure
Vous pouvez vous reporter à l'ancien HAL Wi-Fi pour voir comment il est corrélé aux
interfaces AIDL et HIDL :
hardware/libhardware_legacy/+/android17-release/include/hardware_legacy/wifi_nan.h.
Implémentation
Les fabricants d'appareils doivent fournir une assistance pour le framework et le HAL/micrologiciel :
- Framework:
- Code du projet Android Open Source (AOSP)
- Activer Aware : nécessite à la fois un indicateur de fonctionnalité et un indicateur de compilation
- Assistance HAL Wi-Fi Aware (NAN) (ce qui implique une assistance pour 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.mkouBoardConfig-common.mksitué dansdevice/<oem>/<device>, ajoutez l'indicateur suivant :WIFI_HIDL_FEATURE_AWARE := trueDans
device.mksitué dansdevice/<oem>/<device>, modifiez laPRODUCT_COPY_FILESvariable d'environnement 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 localisation des appareils pairs à l'aide du protocole IEEE 802.11mc, également appelé Round Trip Time (RTT). Cette sous-fonctionnalité de Wi-Fi Aware est conditionnelle à la prise en charge de la fonctionnalité Wi-Fi RTT par l'appareil, c'est-à-dire qu'elle nécessite que l'appareil soit compatible avec Wi-Fi Aware et Wi-Fi RTT. Pour en savoir plus, consultez Wi-Fi RTT.
Sinon, tout ce qui est nécessaire 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 en savoir plus, consultez
Concurrence multi-interface Wi-Fi.
Sélection aléatoire de l'adresse MAC
Android exige que l'adresse MAC des interfaces de découverte (NMI) et de données (NDP) Wi-Fi Aware soit aléatoire et ne soit pas identique à l'adresse MAC réelle de l'appareil. Les adresses MAC doivent être les suivantes :
- Sélection aléatoire chaque fois que Wi-Fi Aware est activé ou réactivé.
Lorsque Wi-Fi Aware est activé, l'adresse MAC doit être aléatoire à intervalles réguliers configurés par le paramètre
NanConfigRequest.macAddressRandomizationIntervalSec. Par défaut, le framework est configuré sur 30 minutes.
Suspendre et reprendre
Dans Android 14 et versions ultérieures, Wi-Fi Aware permet aux 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). Cette fonctionnalité permet aux appareils de reprendre plus rapidement les sessions de découverte et de consommer moins d'énergie, car les sessions de découverte peuvent être suspendues.
Si un appareil est compatible avec cette fonctionnalité 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 suspendue, l'appareil ne transmet ni ne reçoit aucun frame pour cette session, y compris les NDP actifs de cette session. Si toutes les sessions de découverte sont suspendues, l'appareil ne transmet ni ne reçoit aucun frame Wi-Fi Aware.
Lorsqu'une application privilégiée reprend une session de découverte suspendue, le framework rétablit l'état précédent de la session, y compris toutes les sessions NDP associées. La reprise d'une session de découverte suspendue est plus rapide que l'activation de Wi-Fi Aware et la création d'une 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 assistance pour le HAL et le micrologiciel. Pour en savoir plus, 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 de la suite de tests de compatibilité (CTS) et de tests du vérificateur CTS pour valider la fonctionnalité Wi-Fi Aware. Wi-Fi Aware peut également être testé à l'aide de la suite de tests du fournisseur (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.awareTests du gestionnaire :
atest android.net.wifi.awareTests 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 des éléments suivants :
atest SingleDeviceTestTests du vérificateur CTS
Les tests du vérificateur CTS valident le comportement de Wi-Fi Aware à l'aide de deux appareils : un appareil de test et un appareil fonctionnel. Pour exécuter les tests, ouvrez le vérificateur CTS et accédez à la section intitulée "Wi-Fi Aware Tests" (Tests Wi-Fi Aware).