Wi-Fi Direct

Mit der Wi-Fi Direct-Funktion, auch bekannt als Wi-Fi P2P, können unterstützte Geräte sich direkt über das Wi-Fi Direct-Protokoll erkennen und miteinander verbinden, ohne dass ein Internet- oder Mobilfunknetzwerkzugriff erforderlich ist. Diese Funktion basiert auf der Wi-Fi Alliance (WFA) Wi-Fi Direct-Spezifikation und ermöglicht den Austausch von Daten mit hohem Durchsatz zwischen vertrauenswürdigen Geräten und Apps, die sich ansonsten außerhalb des Netzwerks befinden.

Beispiele und Quelle

Damit Gerätehersteller diese Funktion nutzen können, müssen sie die Wi-Fi Vendor- und Supplicant-HAL-Schnittstellen implementieren.

In Android 13 verwendet die Supplicant-Schnittstelle AIDL für die HAL-Definition. In Android 14 und höher verwendet die Vendor-HAL-Schnittstelle AIDL. In Android 12 und niedriger werden die Supplicant- und Vendor-HAL-Schnittstellen mit HIDL definiert.

Die folgenden Wi-Fi-HAL-Oberflächen sind erforderlich, um die Wi-Fi Direct-Funktion zu verwenden:

  • hardware/interfaces/wifi/aidl oder hardware/interfaces/wifi/1.3 oder höher
  • hardware/interfaces/wifi/supplicant/aidl oder hardware/interfaces/wifi/supplicant/1.2 oder höher

Implementierung

Gerätehersteller müssen sowohl Framework- als auch HAL-/Firmware-Support bieten:

  • Framework:
    • AOSP-Code
    • Wi-Fi Direct aktivieren: Erfordert ein Funktions-Flag
  • HAL-Support für Wi-Fi Direct (P2P) (impliziert Firmware-Support)

Um diese Funktion zu implementieren, implementieren Gerätehersteller die Wi-Fi-HIDL- oder AIDL-Schnittstellen und aktivieren das Funktions-Flag für Wi-Fi Direct. Ändern Sie in device.mk unter device/<oem>/<device> die PRODUCT_COPY_FILES Umgebungsvariable, um Unterstützung für die Wi-Fi Direct-Funktion einzuschließen:

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

Alle anderen Anforderungen für die Unterstützung von Wi-Fi Direct sind in AOSP enthalten.

MAC‑Randomisierung

In Android müssen die Geräteadresse und die Schnittstellenadresse von Wi-Fi Direct randomisiert werden. Sie müssen sich von der tatsächlichen MAC-Adresse des Geräts unterscheiden und die folgenden Anforderungen erfüllen:

  • Die Wi-Fi Direct-Geräteadresse muss bei der Erstellung der Schnittstelle randomisiert werden, wenn keine dauerhafte Gruppe gespeichert ist. Andernfalls muss die Geräteadresse die zuletzt generierte MAC-Adresse verwenden.
  • Die Wi-Fi Direct-Schnittstellenadresse, auch Gruppenadresse genannt, muss bei jeder Verbindungsherstellung randomisiert werden.

Die MAC‑Randomisierung von Wi-Fi Direct wird in „wpa_supplicant“ implementiert und durch zwei Konfigurationen gesteuert: p2p_device_random_mac_addr und p2p_interface_random_mac_addr.

So aktivieren Sie diese Funktion:

  • Implementieren Sie die Wi-Fi Supplicant API ISupplicantP2pIface::setMacRandomization. Je nach implementierter Schnittstelle befindet sich diese in:
    • hardware/interface/wifi/supplicant/1.2 für HIDL
    • hardware/interface/wifi/supplicant/aidl für AIDL
  • Setzen Sie config_wifi_p2p_mac_randomization_supported in einem benutzerdefinierten Geräte-Overlay auf „true“.

Validierung

Android bietet eine Reihe von Einheitentests, CTS-Tests (Compatibility Test Suite) und CTS-Prüfungstests zur Validierung der Wi-Fi Direct-Funktion. Wi-Fi Direct kann auch mit der Vendor Test Suite (VTS) getestet werden.

Einheitentests

Prüfen Sie das Wi-Fi Direct-Paket mit den folgenden Tests.

Diensttests:

atest com.android.server.wifi.p2p

Manager-Tests:

atest android.net.wifi.p2p

CTS-Tests (Compatibility Test Suite)

Verwenden Sie CTS-Tests, um die Wi-Fi Direct-Funktion zu validieren. CTS erkennt, wenn die Funktion aktiviert ist, und schließt die zugehörigen Tests automatisch ein.

Führen Sie die folgenden Befehle aus, um die CTS-Tests auszulösen:

atest android.net.wifi.p2p.cts

CTS‑Prüfungstests

Bei CTS‑Prüfungstests wird das Wi-Fi Direct-Verhalten mit zwei Geräten validiert: einem Testgerät und einem bekanntermaßen funktionierenden Gerät. Öffnen Sie die CTS‑Prüfung und rufen Sie den Abschnitt „Wi-Fi Direct-Tests“ auf, um die Tests auszuführen.