Mit der Wi-Fi Direct- Funktion, auch bekannt als Wi-Fi P2P, können unterstützende Geräte mithilfe des Wi-Fi Direct-Protokolls ohne Internet- oder Mobilfunknetzzugriff direkt einander erkennen und miteinander verbinden. Diese Funktion basiert auf der Wi-Fi Direct-Spezifikation der Wi-Fi Alliance (WFA) und ermöglicht die 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, müssen Gerätehersteller die HAL-Schnittstellen Wi-Fi Vendor und Supplicant 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.
Für die Nutzung der Wi-Fi Direct-Funktion sind die folgenden Wi-Fi-HAL-Oberflächen erforderlich:
-
hardware/interfaces/wifi/aidl
oderhardware/interfaces/wifi/1.3
oder höher -
hardware/interfaces/wifi/supplicant/aidl
oderhardware/interfaces/wifi/supplicant/1.2
oder höher
Implementierung
Gerätehersteller müssen sowohl Framework- als auch HAL-/Firmware-Unterstützung bereitstellen:
- Rahmen:
- AOSP-Code
- Wi-Fi Direct aktivieren: Erfordert ein Feature-Flag
- Wi-Fi Direct (P2P) HAL-Unterstützung (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
unter device/<oem>/<device>
die Umgebungsvariable PRODUCT_COPY_FILES
, um Unterstützung für die Wi-Fi Direct-Funktion einzubeziehen:
```
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 zur Unterstützung von Wi-FI Direct sind im AOSP enthalten.
MAC-Randomisierung
Android erfordert, dass die Wi-Fi Direct- Geräteadresse und die Schnittstellenadresse zufällig ausgewählt 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 Schnittstellenerstellung zufällig ausgewählt werden, wenn keine persistente Gruppe gespeichert ist; Andernfalls muss die Geräteadresse weiterhin die zuletzt generierte MAC-Adresse verwenden.
- Die Wi-Fi Direct-Schnittstellenadresse, auch Gruppenadresse genannt, muss bei jedem Verbindungsaufbau zufällig ausgewählt werden.
Die Wi-Fi Direct MAC-Randomisierung ist in „wpa_supplicant“ implementiert und wird durch zwei Konfigurationen gesteuert: p2p_device_random_mac_addr
und p2p_interface_random_mac_addr
.
Um diese Funktion zu aktivieren, müssen Gerätehersteller:
- Implementieren Sie die Wi-Fi Supplicant
ISupplicantP2pIface::setMacRandomization
API. Abhängig von der implementierten Schnittstelle ist dies 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 Komponententests, Integrationstests (Android Connectivity Test Suite oder ACTS), Compatibility Test Suite (CTS) -Tests und CTS Verifier- Tests zur Validierung der Wi-Fi Direct-Funktion. Wi-Fi Direct kann auch mit der Vendor Test Suite (VTS) getestet werden.
Unit-Tests
Überprüfen Sie das Wi-Fi Direct-Paket mithilfe der folgenden Tests.
Servicetests:
atest com.android.server.wifi.p2p
Managertests:
atest android.net.wifi.p2p
Integrationstests (ACTS)
Die ACTS Wi-FI Direct-Testsuite, die sich unter tools/test/connectivity/acts_tests/tests/google/wifi/p2p
befindet, implementiert Funktionstests von Wi-Fi Direct.
Tests der Compatibility Test Suite (CTS).
Verwenden Sie CTS-Tests, um die Wi-Fi Direct-Funktion zu validieren. CTS erkennt, wenn die Funktion aktiviert ist, und schließt automatisch die zugehörigen Tests ein.
Um die CTS-Tests auszulösen, führen Sie Folgendes aus:
% atest android.net.wifi.p2p.cts
CTS Verifier-Tests
CTS Verifier-Tests validieren das Wi-Fi Direct-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 dem Titel „Wi-Fi Direct-Tests“.