Wi-Fi Direct

Funkcja Wi-Fi Direct , znana również jako Wi-Fi P2P, umożliwia obsługującym urządzeniom wykrywanie i łączenie się ze sobą bezpośrednio przy użyciu 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 dużej przepustowości pomiędzy zaufanymi urządzeniami i aplikacjami, które w przeciwnym razie byłyby poza siecią.

Przykłady i źródło

Aby móc korzystać z tej funkcji, producenci urządzeń muszą wdrożyć interfejsy HAL Wi-Fi dostawcy i suplikanta.

W systemie Android 13 interfejs suplikanta używa AIDL do definicji HAL. W Androidzie 14 i nowszych interfejs HAL dostawcy korzysta z AIDL. W systemie Android 12 i starszych interfejsy HAL suplikanta i dostawcy są definiowane przy użyciu języka HIDL.

Do korzystania z funkcji Wi-Fi Direct wymagane są następujące powierzchnie Wi-Fi HAL:

  • hardware/interfaces/wifi/aidl lub hardware/interfaces/wifi/1.3 lub nowszy
  • hardware/interfaces/wifi/supplicant/aidl lub hardware/interfaces/wifi/supplicant/1.2 lub nowszy

Realizacja

Producenci urządzeń muszą zapewnić obsługę zarówno frameworka, jak i HAL/oprogramowania sprzętowego:

  • Struktura:
    • Kod AOSP
    • Włącz Wi-Fi Direct: wymaga flagi funkcji
  • Obsługa Wi-Fi Direct (P2P) HAL (co oznacza obsługę oprogramowania układowego)

Aby zaimplementować tę funkcję, producenci urządzeń wdrażają interfejsy Wi-Fi HIDL lub AIDL i włączają flagę funkcji dla Wi-Fi Direct. W device.mk znajdującym się w device/<oem>/<device> zmodyfikuj 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.

Randomizacja MAC

Android wymaga, aby adres urządzenia Wi-Fi Direct i adres interfejsu były losowe. Muszą różnić się od prawdziwego adresu MAC urządzenia i spełniać następujące wymagania:

  • Adres urządzenia Wi-Fi Direct musi zostać losowo wybrany podczas tworzenia interfejsu, jeśli nie zapisano żadnej trwałej grupy; w przeciwnym razie adres urządzenia musi nadal używać ostatnio wygenerowanego adresu MAC.
  • Adres interfejsu Wi-Fi Direct, zwany także adresem grupowym, musi być losowy przy każdym nawiązaniu połączenia.

Randomizacja MAC Wi-Fi Direct jest zaimplementowana w „wpa_supplicant” i kontrolowana przez dwie konfiguracje: p2p_device_random_mac_addr i p2p_interface_random_mac_addr .

Aby włączyć tę funkcję, producenci urządzeń muszą:

  • Zaimplementuj interfejs API suplikanta Wi-Fi ISupplicantP2pIface::setMacRandomization . 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 config_wifi_p2p_mac_randomization_supported na „true” w niestandardowej nakładce urządzenia.

Walidacja

Android udostępnia zestaw testów jednostkowych, testów integracyjnych (Android Connectivity Test Suite, ACTS), testów zgodności (CTS) i testów CTS Verifier w celu sprawdzenia poprawności funkcji Wi-Fi Direct. Wi-Fi Direct można także przetestować za pomocą pakietu Vendor Test Suite (VTS) .

Testy jednostkowe

Sprawdź pakiet Wi-Fi Direct, korzystając z poniższych testów.

Testy serwisowe:

atest com.android.server.wifi.p2p

Testy menedżerskie:

atest android.net.wifi.p2p

Testy integracyjne (ACTS)

Zestaw testów ACTS Wi-FI Direct, znajdujący się w tools/test/connectivity/acts_tests/tests/google/wifi/p2p , implementuje testy funkcjonalne Wi-Fi Direct.

Testy zestawu testów zgodności (CTS).

Użyj testów CTS, aby sprawdzić działanie 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 sprawdzają działanie Wi-Fi Direct przy użyciu dwóch urządzeń: urządzenia testowego i znanego, sprawnego urządzenia. Aby uruchomić testy, otwórz CTS Verifier i przejdź do sekcji zatytułowanej Testy Wi-Fi Direct.