Wi-Fi Direct

Funkcja Wi-Fi Direct, znana też jako Wi-Fi P2P, umożliwia urządzeniom obsługującym tę funkcję wykrywanie innych urządzeń i łączenie się z nimi bezpośrednio za pomocą protokołu Wi-Fi Direct bez dostępu do internetu lub sieci komórkowej. Ta funkcja oparta na specyfikacji Wi-Fi Direct stowarzyszenia Wi-Fi Alliance (WFA) umożliwia udostępnianie danych o wysokiej przepustowości między zaufanymi urządzeniami i aplikacjami, które są poza siecią.

Przykłady i źródło

Aby korzystać z tej funkcji, producenci urządzeń muszą zaimplementować interfejsy dostawcy i ubiegającego o dostęp HAL Wi-Fi.

W Androidzie 13 interfejs Supplicant używa AIDL do definiowania HAL. W Androidzie 14 i nowszych interfejs Vendor HAL korzysta z AIDL. W Androidzie 12 i starszym interfejsy Supplicant i Vendor HAL są definiowane za pomocą HIDL.

Aby korzystać z funkcji Wi-Fi Direct, musisz użyć tych interfejsów HAL Wi-Fi:

  • hardware/interfaces/wifi/aidl lub hardware/interfaces/wifi/1.3 lub więcej
  • hardware/interfaces/wifi/supplicant/aidl lub hardware/interfaces/wifi/supplicant/1.2 lub więcej

Implementacja

Producenci urządzeń muszą zapewnić obsługę zarówno frameworku, jak i HAL/firmware:

  • Platforma:
    • Kod AOSP
    • Włącz 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 oraz 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ądzeniaadres interfejsu Wi-Fi Direct były losowe. Nie mogą być takie same jak prawdziwy adres MAC urządzenia i muszą spełniać te wymagania:

  • Adres urządzenia Wi-Fi Direct musi być losowy podczas tworzenia interfejsu, jeśli nie została zapisana stała grupa. W przeciwnym razie adres urządzenia musi używać ostatniego wygenerowanego adresu MAC.
  • Adres interfejsu Wi-Fi Direct, znany również jako adres grupowy, musi być losowany za każdym razem, gdy nawiązywane jest połączenie.

Randomizacja adresu MAC Wi-Fi Direct jest implementowana w „wpa_supplicant” i sterowana przez 2 konfiguracje: p2p_device_random_mac_addrp2p_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 zaimplementowanego interfejsu jest to:
    • hardware/interface/wifi/supplicant/1.2 dla HIDL
    • hardware/interface/wifi/supplicant/aidl dla AIDL
  • Ustaw parametr config_wifi_p2p_mac_randomization_supported na „true” w niestandardowym nakładaniu na urządzenie.

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 za pomocą tych testów.

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

Testy CTS Verifier weryfikują działanie Wi-Fi Direct za pomocą 2 urządzeń: testowego i sprawdzonego. Aby przeprowadzić testy, otwórz narzędzie CTS Verifier i przejdź do sekcji Testy Wi-Fi Direct.