Mit der in Android 8.0 hinzugefügten Wi-Fi Aware- Funktion können unterstützende Geräte (hinzugefügt in Android 9) mithilfe des Wi-Fi Aware-Protokolls direkt ohne Internet- oder Mobilfunknetzzugriff einander erkennen, verbinden und eine Reichweite zueinander herstellen. Diese Funktion basiert auf der Wi -Fi Aware-Spezifikation der Wi- Fi Alliance (WFA) (Versionen 2.0, 3.0 und 3.1) und ermöglicht die einfache gemeinsame Nutzung von Daten mit hohem Datendurchsatz zwischen vertrauenswürdigen Geräten und Apps, die sich ansonsten außerhalb des Netzwerks befinden.
Beispiele und Quelle
Um diese Funktion nutzen zu können, sollten Gerätehersteller die im Android Open Source Project (AOSP) bereitgestellte Wi-Fi Hardware Interface Design Language (HIDL) implementieren. HIDL ersetzt die bisherige HAL-Struktur (Hardware Abstraction Layer), die zur Optimierung von Implementierungen durch die Angabe von Typen und Methodenaufrufen verwendet wurde, die in Schnittstellen und Paketen gesammelt wurden.
Befolgen Sie die Wi-Fi HIDL, um die Wi-Fi Aware-Funktion zu nutzen: hardware/interfaces/wifi/1.2 oder höher. Die Wi-Fi Aware HAL-Oberfläche ist sehr groß; Die Datei „hardware/interfaces/wifi/1.2/README-NAN.md“ beschreibt die Teilmenge, die derzeit vom Framework verwendet wird.
Sie können auf den alten Wi-Fi-HAL verweisen, um zu sehen, wie er mit der neuen HIDL-Schnittstelle korreliert: hardware/libhardware_legacy/+/main/include/hardware_legacy/wifi_nan.h .
Implementierung
Gerätehersteller müssen sowohl Framework- als auch HAL-/Firmware-Unterstützung bereitstellen:
- Rahmen:
- AOSP-Code
- Aware aktivieren: Erfordert sowohl ein Feature-Flag als auch ein HIDL-Build-Flag
- Wi-Fi Aware (NAN) HAL-Unterstützung (was Firmware-Unterstützung impliziert)
Um diese Funktion zu implementieren, implementieren Gerätehersteller das Wi-Fi HIDL und aktivieren zwei Funktionsflags:
Fügen Sie in
BoardConfig.mk
oderBoardConfig-common.mk
unterdevice/<oem>/<device>
das folgende Flag hinzu:WIFI_HIDL_FEATURE_AWARE := true
Ändern Sie in
device.mk
unterdevice/<oem>/<device>
die UmgebungsvariablePRODUCT_COPY_FILES
, um Unterstützung für die Wi-Fi-Aware-Funktion einzubeziehen: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 umfasst die Entfernung zu Peer-Geräten mithilfe des IEEE 802.11mc-Protokolls, auch bekannt als Round Trip Time (RTT). Diese Unterfunktion von Wi-Fi Aware setzt voraus, dass das Gerät die Wi-Fi RTT-Funktion unterstützt, d. h., das Gerät muss sowohl Wi-Fi Aware als auch Wi-Fi RTT unterstützen. Weitere Einzelheiten finden Sie unter Wi-Fi RTT .
Ansonsten ist alles, was für diese Funktion erforderlich ist, in AOSP enthalten.
Das Flag WIFI_HIDL_FEATURE_AWARE
wird ignoriert, wenn das Flag WIFI_HAL_INTERFACE_COMBINATIONS
angegeben ist. Weitere Informationen finden Sie unter Wi-Fi-Multi-Interface-Parallelität .
MAC-Randomisierung
Android erfordert, dass die MAC-Adresse der Wi-Fi Aware Discovery (NMI) und Datenschnittstellen (NDPs) zufällig ausgewählt wird und nicht mit der tatsächlichen MAC-Adresse des Geräts identisch ist. Die MAC-Adressen müssen sein:
- Zufällig, wann immer Wi-Fi Aware aktiviert oder erneut aktiviert wird.
Wenn Wi-Fi Aware aktiviert ist, muss die MAC-Adresse in einem regelmäßigen Intervall randomisiert werden, das durch den HIDL-Parameter
NanConfigRequest.macAddressRandomizationIntervalSec
konfiguriert wird. Dies ist vom Framework standardmäßig auf 30 Minuten konfiguriert.
Validierung
Android bietet eine Reihe von Unit-Tests, Integrationstests (ACTS), Compatibility Test Suite (CTS) -Tests und CTS-Verifier- Tests zur Validierung der Wi-Fi Aware-Funktion. Wi-Fi Aware kann auch mit der Vendor Test Suite (VTS) getestet werden.
Unit-Tests
Die Wi-Fi-Aware-Pakettests werden ausgeführt mit:
Servicetests:
atest com.android.server.wifi.aware
Managertests:
atest android.net.wifi.aware
Integrationstests (ACTS)
Die acts/sl4a
Testsuite, beschrieben in tools/test/connectivity/acts_tests/tests/google/wifi/aware/README.md
, bietet Funktions-, Leistungs- und Stresstests.
Tests der Compatibility Test Suite (CTS).
Verwenden Sie CTS-Tests, um die Wi-Fi-Aware-Funktion zu validieren. CTS erkennt, wenn die Funktion aktiviert ist, und schließt automatisch die zugehörigen Tests ein.
Die CTS-Tests können ausgelöst werden mit:
atest SingleDeviceTest
CTS Verifier-Tests
CTS Verifier-Tests validieren das Wi-Fi-Aware-Verhalten mithilfe von zwei Geräten: einem Testgerät und einem bekanntermaßen guten Gerät. Um die Tests auszuführen, öffnen Sie CTS Verifier und navigieren Sie zum Abschnitt mit der Überschrift „Wi-Fi Aware Tests“.