Wi-Fi-Aware

Die WLAN-fähig ab Android 8.0 eine neue Funktion und Bereich (in Android 9 hinzugefügt) direkt nebeneinander das Wi-Fi Aware-Protokoll ohne Internet- oder Mobilfunkverbindung verwenden. Dieses Funktion, die auf der Wi-Fi Alliance basiert (WFA) Wi-Fi Aware-Spezifikation (Versionen 2.0, 3.0, 3.1 und 4.0) ermöglicht die einfache Freigabe von Daten mit hohem Durchsatz zwischen vertrauenswürdigen Geräten und Apps, die sich außerhalb des Netzwerks befinden.

Beispiele und Quelle

Um diese Funktion zu nutzen, sollten Gerätehersteller den WLAN-Anbieter HAL implementieren. Unter Android 14 und höher Die HAL-Schnittstelle des Anbieters wird mithilfe von AIDL definiert. Bei Android 13 und niedriger Die HAL-Schnittstelle des Anbieters wird mithilfe von HIDL definiert.

Folgen Sie der WLAN-Benutzeroberfläche, um die Wi-Fi Aware-Funktion zu verwenden. Je nachdem, welche Schnittstelle implementiert ist, ist dies entweder:

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

Sie können dem alten WLAN-HAL entnehmen, wie er mit dem AIDL- und HIDL-Schnittstellen: hardware/libhardware_legacy/+/main/include/hardware_legacy/wifi_nan.h

Implementierung

Gerätehersteller müssen sowohl Framework- als auch HAL-/Firmware-Unterstützung anbieten:

  • Rahmenwerk: <ph type="x-smartling-placeholder">
      </ph>
    • AOSP-Code
    • Aware aktivieren: Erfordert sowohl ein Funktions- als auch ein Build-Flag
  • Wi-Fi Aware (NAN) HAL-Unterstützung (was Firmware-Unterstützung impliziert)

Um diese Funktion zu implementieren, implementieren die Gerätehersteller die WLAN-Schnittstelle und aktivieren zwei Funktions-Flags:

  • In BoardConfig.mk oder BoardConfig-common.mk in device/<oem>/<device> das folgende Flag hinzufügen:

    WIFI_HIDL_FEATURE_AWARE := true
    
  • Ändern Sie in device.mk in device/<oem>/<device> die PRODUCT_COPY_FILES-Umgebungsvariable zur Unterstützung von WLAN Bewusste Funktion:

    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 eine Weiterleitung zu Peer-Geräten mit dem IEEE 802.11mc-Protokoll, auch als Round Trip Time (RTT) bezeichnet. Diese Unterfunktion von Wi-Fi Aware ist die die WLAN-RTT-Funktion unterstützen, d. h., es muss muss das Gerät sowohl Wi-Fi Aware als auch Wi-Fi RTT unterstützen. Weitere Informationen finden Sie unter WLAN-RTT:

Andernfalls ist alles, was für diese Funktion erforderlich ist, in AOSP enthalten.

Das Flag WIFI_HIDL_FEATURE_AWARE wird ignoriert, wenn der WIFI_HAL_INTERFACE_COMBINATIONS angegeben ist. Weitere Informationen finden Sie unter Gleichzeitigkeit von WLAN-Multi-Schnittstellen.

Randomisierung bei MAC

Android benötigt die MAC-Adresse der Wi-Fi Aware-Erkennung (NMI) und der Daten Schnittstellen (NDPs), die zufällig angeordnet werden und nicht mit der tatsächlichen MAC-Adresse identisch sind des Geräts. Folgende MAC-Adressen sind erforderlich:

  • Wird bei der Aktivierung oder erneuten Aktivierung von WLAN Aware zufällig ausgewählt.
  • Wenn Wi-Fi Aware aktiviert ist, muss die MAC-Adresse in regelmäßigen Abständen zufällig ausgewählt werden. das vom NanConfigRequest.macAddressRandomizationIntervalSec-Parameter. Dieses wird vom Framework standardmäßig auf 30 Minuten konfiguriert.

Sperren und fortsetzen

Ab Android 14 unterstützt Wi-Fi Aware die Privilegierte Apps können aktive Erkennungssitzungen sperren und fortsetzen. einschließlich aller Datenpfade, die diesen Sitzungen zugeordnet sind. Unterstützung können Geräte Erkennungssitzungen schneller fortsetzen und verbrauchen weniger Energie, Erkennungssitzungen können gesperrt werden.

Wenn ein Gerät diese Funktion zum Anhalten und Fortsetzen unterstützt, wird die Firmware in den Ruhemodus versetzt Die Wi-Fi Aware-Sitzung, wenn eine privilegierte App die Erkennungssitzung unterbricht. Wenn eine Erkennungssitzung angehalten ist, überträgt das Gerät keine Daten oder Frames für diese Sitzung empfangen, einschließlich der aktiven NDPs in dieser Sitzung, Sitzung. Wenn alle Erkennungssitzungen gesperrt sind, überträgt das Gerät nicht oder Wi-Fi Aware-Frames empfangen.

Wenn eine privilegierte App eine gesperrte Erkennungssitzung fortsetzt, Die Sitzung wird auf den vorherigen Status zurückgesetzt, einschließlich aller verknüpften NDPs Sitzungen. Das Fortsetzen einer angehaltenen Erkennungssitzung ist schneller als das Aufrufen einer WLAN Aware und es wird eine neue Erkennungssitzung erstellt.

Damit die Erkennungssitzungen ausgesetzt und wiederaufgenommen werden können, muss das Gerät Hersteller müssen HAL- und Firmware-Unterstützung anbieten. Weitere Informationen finden Sie unter IWifiNanIface.java

Gerätehersteller können die Out-of-Band-Kommunikation (z. B. BLE) nutzen, um auf mehreren Geräten synchronisieren, sperren und fortsetzen.

Zertifizierungsstufe

Android bietet eine Reihe von Einheitentests, Tests der Kompatibilitätstest-Suite (CTS) und Der CTS Verifier prüft das WLAN. Funktion bewusst. Wi-Fi Aware kann auch mit dem Vendor Test Suite (VTS):

Einheitentests

Die Tests des Wi-Fi Aware-Pakets werden folgendermaßen ausgeführt:

Diensttests:

atest com.android.server.wifi.aware

Tests für Manager:

atest android.net.wifi.aware

CTS-Tests (Compatibility Test Suite)

Prüfen Sie die Wi-Fi Aware-Funktion mithilfe von CTS-Tests. CTS erkennt, wenn die Funktion und die zugehörigen Tests werden automatisch eingeschlossen.

Die CTS-Tests können folgendermaßen ausgelöst werden:

atest SingleDeviceTest

Tests zur CTS-Prüfung

CTS Verifier testet das Wi-Fi Aware-Verhalten mit zwei Geräten: einem Test und einem als gut bekannten Gerät. Um die Tests auszuführen, öffnen Sie CTS Verifier und Gehen Sie zum Abschnitt mit dem Titel „WLAN Aware-Tests“.