W Androidzie 10 wprowadziliśmy obsługę protokołu Wi-Fi Easy Connect, noszącego nazwę protokołu obsługi administracyjnej urządzeń (DPP). Funkcja Wi-Fi Easy Connect została wprowadzona przez Wi-Fi Alliance (WFA) jako alternatywę dla WPS (Wi-Fi Protected Setup). Protokół WPS został wycofany w Androidzie 9.
Wi-Fi Easy Connect pozwala w prosty i bezpieczny sposób na:
- Wprowadź do sieci urządzenia Wi-Fi (w tym urządzenia bez interfejsu graficznego) bez wpisywania hasła.
- łączyć się z sieciami Wi-Fi bez znajomości i wprowadzania hasła;
Wczytywanie i uwierzytelnianie jest konfigurowane za pomocą identyfikatora URI, który jest pobierany przez zeskanowanie kodu QR (za pomocą aparatu) lub jest konfigurowany poza zakresem, np. przez BLE lub NFC.
Wi-Fi Easy Connect korzysta z zaszyfrowanego kanału do przesyłania danych logowania do Wi-Fi między urządzeniami, a ponieważ używane są publiczne ramki działań, urządzenia mogą używać istniejących punktów dostępu.
Android 10 obsługuje Łatwe połączenie Wi-Fi tylko w trybie inicjującym (tryb respondenta nie jest obsługiwany). Obsługiwane są następujące tryby działania:
- Initiator-Configurator: wysyłanie danych logowania do sieci do nowego urządzenia przez zeskanowanie jego kodu QR.
- Initiator-enrollee: połącz się z siecią, skanując jej kod QR.
Android 10 obsługuje protokół klucza wstępnego (PSK) w przypadku WPA2 oraz uwierzytelnianie jednoczesne (SAE) w przypadku WPA3.
Wi-Fi Easy Connect jest obsługiwane tylko w trybie klienta (tryb SoftAP nie jest obsługiwany).
Implementacja
Aby zapewnić obsługę Wi-Fi Easy Connect, wdróż interfejs dostawcy w ramach projektu Android Open Source Project (AOSP). W zależności od wdrożonego interfejsu będzie to:
hardware/interfaces/wifi/supplicant/1.2/
lub nowszą wersję HIDLhardware/interfaces/wifi/supplicant/aidl/
w przypadku AIDL
Do obsługi DPP wymagane są:
Poprawki jądra systemu Linux obsługujące DPP:
- cfG80211
- nl80211
wpa_supplicant
z obsługą DPPSterownik Wi-Fi z obsługą DPP
Oprogramowanie Wi-Fi z obsługą DPP
Publiczne interfejsy API są dostępne w Androidzie 10 do wykorzystania przez aplikacje:
WifiManager#isEasyConnectSupported
: wysyła zapytanie do platformy w celu określenia, czy urządzenie obsługuje Easy Connect.Activity#startActivityForResult(ACTION_PROCESS_WIFI_EASY_CONNECT_URI)
: pozwala aplikacjom na integrację Łatwego połączenia Wi-Fi z procesem rejestracji lub konfiguracji.
Włącz Wi-Fi Easy Connect
Aby włączyć Wi-Fi Easy Connect na platformie Androida, uwzględnij opcję kompilacji CONFIG_DPP
w pliku konfiguracji wpa_supplicant
android.config
:
# Easy Connect (Device Provisioning Protocol - DPP) CONFIG_DPP=y
Weryfikacja
Aby sprawdzić implementację, przeprowadź te testy.
Testy jednostkowe
Uruchom polecenie DppManagerTest
, aby sprawdzić działanie flag możliwości DPP.
atest DppManagerTest
Testy VTS
Jeśli interfejs HIDL jest zaimplementowany, uruchom polecenie VtsHalWifiSupplicantV1_2TargetTest
, aby przetestować działanie dodatkowej wersji HAL w wersji 1.2.
Jeśli interfejs AIDL jest zaimplementowany, uruchom polecenie VtsHalWifiSupplicantStaIfaceTargetTest
, aby przetestować działanie dodatkowej HAL.