Wi‑Fi RTT (IEEE 802.11mc, IEEE 802.11az)

Mit der Funktion Wi‑Fi Round Trip Time (RTT) in Android 9 können unterstützte Geräte die Entfernung zu anderen unterstützten Geräten messen, z. B. zu Access Points (APs) oder Wi‑Fi Aware-Peers (wenn Wi‑Fi Aware auf dem Gerät unterstützt wird). Diese Funktion basiert auf dem IEEE 802.11mc- und dem IEEE 802.11az-Protokoll (ab Android 15 verfügbar) und ermöglicht es Apps, eine höhere Standortgenauigkeit und ‑erkennung zu nutzen.

Beispiele und Quelle

Wenn Sie diese Funktion nutzen möchten, müssen Sie die Vendor HAL-Schnittstelle implementieren. In Android 14 und höher wird die Vendor-HAL-Schnittstelle mit AIDL definiert. In Android 13 und niedriger wird die Vendor-HAL-Schnittstelle mit HIDL definiert. In Android 8.0 hat HIDL die bisherige HAL-Struktur (Hardware Abstraction Layer) ersetzt, die zur Optimierung von Implementierungen verwendet wurde. Dazu wurden Typen und Methodenaufrufe in Schnittstellen und Paketen zusammengefasst.

Folgen Sie der WLAN-Schnittstelle, um die WLAN-RTT-Funktion zu verwenden. Je nachdem, welche Schnittstelle implementiert wird, ist das:

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

Informationen dazu, wie die alte Wi‑Fi-HAL mit den AIDL- und HIDL-Schnittstellen zusammenhängt, finden Sie unter hardware/libhardware_legacy/+/android16-release/include/hardware_legacy/rtt.h.

Implementierung

Wenn Sie Wi‑Fi RTT implementieren möchten, müssen Sie sowohl Framework- als auch HAL-/Firmware-Unterstützung bereitstellen:

  • Framework:

    • AOSP-Code
    • Aktivieren Sie Wi‑Fi RTT: Hierfür ist ein Funktions-Flag erforderlich.
  • Unterstützung für Wi‑Fi RTT (IEEE 802.11mc oder IEEE 802.11az) HAL (was Firmware-Unterstützung impliziert)

Um diese Funktion zu implementieren, implementieren Sie die Wi‑Fi AIDL- oder HIDL-Schnittstelle und aktivieren Sie das Funktionsflag:

  • Ändern Sie in device.mk unter device/<oem>/<device> die Umgebungsvariable PRODUCT_COPY_FILES, um Unterstützung für die Wi-Fi RTT-Funktion hinzuzufügen:

    PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.wifi.rtt.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.rtt.xml
    

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

MAC‑Randomisierung

Um den Datenschutz zu verbessern, muss die bei Wi‑Fi RTT-Transaktionen verwendete MAC-Adresse zufällig sein. Sie darf also nicht mit der nativen MAC-Adresse der WLAN-Schnittstelle übereinstimmen. Wenn ein Gerät jedoch mit einem AP verknüpft ist, kann es ausnahmsweise die MAC-Adresse verwenden, mit der es verknüpft ist, für alle RTT-Transaktionen mit diesem AP oder mit anderen APs.

Zertifizierungsstufe

Für diese Funktion sind Tests in der Android Compatibility Test Suite (CTS) vorhanden. CTS erkennt, wenn die Funktion aktiviert ist, und schließt die zugehörigen Tests automatisch ein. Diese Funktion kann auch mit der Vendor Test Suite (VTS) getestet werden.

Einheitentests

Die Wi‑Fi RTT-Pakettests werden mit Folgendem ausgeführt:

Diensttests:

atest com.android.server.wifi.rtt

Manager-Tests:

atest android.net.wifi.rtt

CTS

Für diese Funktion sind Tests in der Android Compatibility Test Suite (CTS) vorhanden. CTS erkennt, wenn die Funktion aktiviert ist, und schließt die zugehörigen Tests automatisch ein. Ein Zugangspunkt, der Wi‑Fi RTT (IEEE 802.11mc) unterstützt, muss sich in Reichweite des zu testenden Geräts befinden.

Die CTS-Tests können mit folgenden Methoden ausgelöst werden:

atest WifiRttTest

Kalibrierung

Damit Wi-Fi RTT gut funktioniert, sollten die in den Protokollen 802.11mc oder 802.11az zurückgegebenen Entfernungen innerhalb der in diesem Abschnitt beschriebenen KPIs liegen.

Beim 11mc-Protokoll wird bei den aufgeführten Bandbreiten (80 MHz, 40 MHz, 20 MHz) und einer Burst-Größe von 8 erwartet, dass der KPI für eine Bereichsschätzung die folgende Genauigkeit beim 90. Perzentil des Fehlers erreicht.

  • 80 MHz:2 Meter
  • 40 MHz:4 Meter
  • 20 MHz:8 Meter

Beim 11az-Protokoll wirken sich die Antennen-MIMO-Konfiguration und die Wiederholung des langen Trainingsfelds (Long Training Field, LTF) auf die Genauigkeit aus. Bei einem typischen Mobiltelefon (mit 2 Antennen) und einem Zugangspunkt (mit 4 Antennen) hat das System eine 2x4-MIMO-Konfiguration. Bei einer solchen Konfiguration mit einem LTF-Wiederholungsfaktor von zwei und den aufgeführten Bandbreiten (160 MHz, 80 MHz, 40 MHz, 20 MHz) wird erwartet, dass der KPI für eine Bereichsschätzung die folgende Genauigkeit beim 90. Perzentil des Fehlers erreicht.

  • 160 MHz:0,5 Meter
  • 80 MHz:1 Meter
  • 40 MHz:2 Meter
  • 20 MHz:4 Meter

Damit die Implementierung der Funktion richtig funktioniert, sind Kalibrierungstests erforderlich.

Dazu wird ein Ground-Truth-Bereich mit dem geschätzten RTT-Bereich bei zunehmenden Entfernungen verglichen. Für die grundlegende Konformität sollten Sie Ihre Lösung mit einem Gerät validieren, das bekanntermaßen RTT-kalibriert ist. Die Bereichskalibrierung sollte unter den folgenden Bedingungen getestet werden:

  1. Ein großes offenes Labor oder ein Korridor ohne viele Metallgegenstände, die zu ungewöhnlich häufigen Mehrwegsignalen führen könnten.
  2. Mindestens ein LOS-Track (Line-Of-Sight) oder -Pfad mit einer Länge von 25 m.
  3. Markierungen in 0,5-Meter-Schritten von einem Ende der Strecke zum anderen.
  4. Ein Ort, an dem ein RTT-fähiger Zugangspunkt an einem Ende der Schiene 20 cm über dem Boden befestigt werden kann, und eine bewegliche Halterung für ein Android-Smartphone (oder ein anderes zu testendes Android-Mobilgerät), die entlang der Schiene bewegt und an den 0,5‑m-Markierungen ausgerichtet werden kann, ebenfalls 20 cm über dem Boden.

  5. An jeder Markierung sollten 50 Entfernungsangaben zusammen mit der Entfernung vom Zugangspunkt aufgezeichnet werden. Statistiken wie Mittelwert und Varianz des Bereichs sollten für jede Markierungsposition berechnet werden.

Anhand der Ergebnisse aus Schritt 5 kann ein Diagramm für die Grundwahrheit (x-Achse) im Vergleich zum geschätzten Bereich (y-Achse) erstellt und eine Regressionslinie für die beste Anpassung geschätzt werden. Bei einer idealen Geräteabstimmung ergibt sich eine Linie mit einer Steigung von 1,0 und einem Versatz von 0,0 m auf der y-Achse. Abweichungen von diesen Werten sind zulässig, wenn sie innerhalb des KPI für die entsprechende Bandbreite liegen. Wenn die Ergebnisse außerhalb des KPI liegen, sollte die Gerätefunktion neu kalibriert werden, damit die Ergebnisse den KPI-Spezifikationen entsprechen.