Wi-Fi-fähig

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, 3.1 und 4.0) und ermöglicht die einfache gemeinsame Nutzung von Daten mit hohem Durchsatz 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 den Wi-Fi Vendor HAL implementieren. In Android 14 und höher wird die Vendor HAL-Schnittstelle mithilfe von AIDL definiert. Für Android 13 und niedriger wird die Vendor HAL-Schnittstelle mit HIDL definiert.

Folgen Sie der Wi-Fi-Schnittstelle, um die Wi-Fi-Aware-Funktion zu nutzen. Abhängig davon, welche Schnittstelle implementiert ist, ist dies entweder:

  • AIDL: hardware/interfaces/wifi/aidl
  • HIDL: hardware/interfaces/wifi/1.2 oder höher

Sie können auf die ältere Wi-Fi-HAL zurückgreifen, um zu sehen, wie sie mit den AIDL- und HIDL-Schnittstellen 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 Build-Flag
  • Wi-Fi Aware (NAN) HAL-Unterstützung (was Firmware-Unterstützung impliziert)

Um diese Funktion zu implementieren, implementieren Gerätehersteller die Wi-Fi-Schnittstelle und aktivieren zwei Funktionsflags:

  • Fügen Sie in BoardConfig.mk oder BoardConfig-common.mk unter device/<oem>/<device> das folgende Flag hinzu:

    WIFI_HIDL_FEATURE_AWARE := true
    
  • Ändern Sie in device.mk unter device/<oem>/<device> die Umgebungsvariable PRODUCT_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 Parameter NanConfigRequest.macAddressRandomizationIntervalSec konfiguriert wird. Dies ist vom Framework standardmäßig auf 30 Minuten konfiguriert.

Unterbrechen und fortfahren

In Android 14 und höher unterstützt Wi-Fi Aware die Möglichkeit für privilegierte Apps, aktive Erkennungssitzungen anzuhalten und fortzusetzen (einschließlich aller mit diesen Sitzungen verknüpften Datenpfade). Durch die Unterstützung dieser Funktion können Geräte Erkennungssitzungen schneller fortsetzen und weniger Strom verbrauchen, da Erkennungssitzungen angehalten werden können.

Wenn ein Gerät diese Funktion zum Anhalten und Fortsetzen unterstützt, unterbricht die Firmware die Wi-Fi Aware-Sitzung, wenn eine privilegierte App die Erkennungssitzung unterbricht. Wenn sich eine Erkennungssitzung im angehaltenen Zustand befindet, sendet oder empfängt das Gerät keine Frames für diese Sitzung, einschließlich aller aktiven NDPs in dieser Sitzung. Wenn alle Erkennungssitzungen ausgesetzt sind, sendet oder empfängt das Gerät keine Wi-Fi-Aware-Frames.

Wenn eine privilegierte App eine angehaltene Erkennungssitzung fortsetzt, setzt das Framework die Sitzung in ihren vorherigen Zustand zurück, einschließlich aller zugehörigen NDP-Sitzungen. Das Fortsetzen einer unterbrochenen Erkennungssitzung ist schneller, als Wi-Fi Aware aufzurufen und eine neue Erkennungssitzung zu erstellen.

Um die Möglichkeit zum Unterbrechen und Fortsetzen von Erkennungssitzungen zu unterstützen, müssen Gerätehersteller HAL- und Firmware-Unterstützung bereitstellen. Einzelheiten finden Sie unter IWifiNanIface.java .

Gerätehersteller können Out-of-Band-Kommunikation (z. B. BLE) verwenden, um das Anhalten und Fortsetzen auf mehreren Geräten zu synchronisieren.

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“.