Mit der Funktion Wi-Fi Direct, auch bekannt als Wi-Fi P2P, können unterstützte Geräte sich gegenseitig erkennen und direkt miteinander verbinden. Dazu wird das Wi-Fi Direct-Protokoll verwendet, ohne dass ein Internet- oder Mobilfunknetzwerkzugriff erforderlich ist. Diese Funktion basiert auf der Wi-Fi Direct-Spezifikation der Wi-Fi Alliance (WFA) und ermöglicht den Austausch von Daten mit hohem Durchsatz zwischen vertrauenswürdigen Geräten und Apps, die sich ansonsten nicht im Netzwerk befinden.
Beispiele und Quelle
Damit diese Funktion verwendet werden kann, müssen Gerätehersteller die HAL-Schnittstellen für WLAN-Anbieter und ‑Supplicant implementieren.
In Android 13 wird für die Supplicant-Schnittstelle AIDL für die HAL-Definition verwendet. In Android 14 und höher wird für die Vendor-HAL-Schnittstelle AIDL verwendet. In Android 12 und niedriger werden die Supplicant- und Vendor-HAL-Schnittstellen mit HIDL definiert.
Für die Verwendung der Wi‑Fi Direct-Funktion sind die folgenden Wi‑Fi HAL-Oberflächen erforderlich:
hardware/interfaces/wifi/aidl
oder,hardware/interfaces/wifi/1.3
oder höherhardware/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
- Unterstützung der Wi‑Fi Direct (P2P) HAL (was Firmware-Unterstützung impliziert)
Um diese Funktion zu implementieren, implementieren Gerätehersteller die Wi-Fi HIDL- oder AIDL-Schnittstellen und aktivieren das Feature-Flag für Wi-Fi Direct. Ändern Sie in device.mk
, das sich in device/<oem>/<device>
befindet, die Umgebungsvariable PRODUCT_COPY_FILES
, um Unterstützung für die Wi‑Fi Direct-Funktion hinzuzufügen:
```
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
Unter Android müssen die Geräteadresse und die Schnittstellenadresse von Wi‑Fi Direct zufällig generiert 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 für die Geräteadresse die zuletzt generierte MAC-Adresse verwendet werden.
- Die Wi-Fi Direct-Schnittstellenadresse, auch als Gruppenadresse bezeichnet, muss bei jeder Verbindungsherstellung zufällig generiert werden.
Die zufällige Generierung von MAC-Adressen für Wi‑Fi Direct wird in „wpa_supplicant“ implementiert und durch zwei Konfigurationen gesteuert: p2p_device_random_mac_addr
und p2p_interface_random_mac_addr
.
Damit Gerätehersteller diese Funktion aktivieren können, müssen sie Folgendes tun:
- Implementieren Sie die
ISupplicantP2pIface::setMacRandomization
-API für den WLAN-Supplicant. Je nach implementierter Schnittstelle befindet sich die Funktion in:hardware/interface/wifi/supplicant/1.2
für HIDLhardware/interface/wifi/supplicant/aidl
für AIDL
- Setzen Sie
config_wifi_p2p_mac_randomization_supported
in einem benutzerdefinierten Geräte-Overlay auf „true“.
Zertifizierungsstufe
Android bietet eine Reihe von Unittests, CTS-Tests (Compatibility Test Suite) und CTS-Verifier-Tests, um die Wi-Fi Direct-Funktion zu validieren. 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. Das CTS erkennt, wenn die Funktion aktiviert ist, und schließt die zugehörigen Tests automatisch ein.
Führen Sie Folgendes aus, um die CTS-Tests auszulösen:
% atest android.net.wifi.p2p.cts
CTS‑Prüfungstests
Mit CTS Verifier-Tests wird das Verhalten von Wi-Fi Direct mit zwei Geräten validiert: einem Testgerät und einem als funktionierend bekannten Gerät. Öffnen Sie zum Ausführen der Tests CTS Verifier und rufen Sie den Abschnitt „Wi-Fi Direct Tests“ auf.