Funkcja Wi-Fi Direct, nazywana też Wi-Fi P2P, umożliwia zgodnym urządzeniom wykrywanie się i łączenie się ze sobą bezpośrednio za pomocą protokołu Wi-Fi Direct bez dostępu do internetu czy sieci komórkowej. Ta funkcja, opracowana na podstawie Wi-Fi Alliance (WFA) specyfikacji Wi-Fi Direct umożliwia udostępnianie dużej przepustowości zaufanym urządzeniom i aplikacjom poza siecią.
Przykłady i źródło
Aby korzystać z tej funkcji, producenci urządzeń muszą zaimplementować interfejsy HAL dostawcy i ubiegającego o dostęp Wi-Fi.
W Androidzie 13 interfejs Supplicant używa AIDL do definicji HAL. W Androidzie 14 i nowszych interfejs Vendor HAL korzysta z AIDL. W Androidzie 12 i starszych interfejsach HAL Supplicant i Vendor HAL są zdefiniowane za pomocą HIDL.
Aby korzystać z funkcji Wi-Fi Direct, musisz użyć tych interfejsów HAL Wi-Fi:
hardware/interfaces/wifi/aidl
lubhardware/interfaces/wifi/1.3
lub wyższahardware/interfaces/wifi/supplicant/aidl
lubhardware/interfaces/wifi/supplicant/1.2
lub wyższa
Implementacja
Producenci urządzeń muszą zapewnić zarówno wsparcie w zakresie platformy, jak i HAL/oprogramowania układowego:
- Framework:
- Kod AOSP
- Włączanie Wi-Fi Direct: wymaga flagi funkcji
- Obsługa interfejsu HAL dla Wi-Fi Direct (P2P) (co oznacza obsługę oprogramowania układowego)
Aby wdrożyć tę funkcję, producenci urządzeń muszą zaimplementować interfejsy Wi-Fi HIDL lub AIDL i włączyć flagę funkcji Wi-Fi Direct. W pliku device.mk
znajdującym się w pliku device/<oem>/<device>
zmień zmienną środowiskową PRODUCT_COPY_FILES
, aby uwzględnić obsługę funkcji Wi-Fi Direct:
```
PRODUCT_COPY_FILES +=
frameworks/native/data/etc/android.hardware.wifi.direct.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.direct.xml
```
Wszystkie pozostałe wymagania dotyczące obsługi Wi-Fi Direct są zawarte w AOSP.
losowe generowanie adresów MAC.
Android wymaga, aby adres urządzenia i adres interfejsu Wi-Fi Direct były losowe. Nie mogą być takie same jak prawdziwy adres MAC urządzenia i muszą spełniać te wymagania:
- Jeśli nie ma zapisanej stałej grupy, adres urządzenia Wi-Fi Direct musi być losowy podczas tworzenia interfejsu. W przeciwnym razie adres urządzenia musi nadal korzystać z ostatniego wygenerowanego adresu MAC.
- Adres interfejsu Wi-Fi Direct (nazywany też adresem grupy) musi być losowy przy każdym nawiązywaniu połączenia.
Randomizacja adresu MAC Wi-Fi Direct jest implementowana w „wpa_supplicant” i sterowana przez 2 konfiguracje: p2p_device_random_mac_addr
i p2p_interface_random_mac_addr
.
Aby włączyć tę funkcję, producenci urządzeń muszą:
- Wdrożyć interfejs API
ISupplicantP2pIface::setMacRandomization
klienta Wi-Fi. W zależności od wdrożonego interfejsu będzie to:hardware/interface/wifi/supplicant/1.2
dla HIDLhardware/interface/wifi/supplicant/aidl
dla AIDL
- Ustaw wartość
config_wifi_p2p_mac_randomization_supported
na „true” w niestandardowym nakładce na urządzeniu.
Weryfikacja
Android udostępnia zestaw testów jednostkowych, testów Compatibility Test Suite (CTS) oraz testów CTS Verifier, które służą do sprawdzania funkcji Wi-Fi Direct. Wi-Fi Direct można też przetestować za pomocą pakietu testów dostawcy (VTS).
Testy jednostkowe
Sprawdź pakiet Wi-Fi Direct, wykonując te testy.
Testy usługi:
atest com.android.server.wifi.p2p
Testy menedżera:
atest android.net.wifi.p2p
testy Compatibility Test Suite (CTS),
Użyj testów CTS do weryfikacji funkcji Wi-Fi Direct. CTS wykrywa, kiedy funkcja jest włączona, i automatycznie uwzględnia powiązane testy.
Aby uruchomić testy CTS, uruchom:
% atest android.net.wifi.p2p.cts
Testy weryfikatora CTS
Weryfikator CTS weryfikuje zachowanie Wi-Fi Direct na 2 urządzeniach: testowym i urządzeniu dobrym. Aby uruchomić testy, otwórz narzędzie CTS Verifier i przejdź do sekcji Testy Wi-Fi Direct.