Android 10 wprowadza obsługę protokołu Wi-Fi Easy Connect, znanego też jako protokół provisioning urządzenia (DPP). Wi-Fi Easy Connect zostało wprowadzone przez Wi-Fi Alliance (WFA) jako alternatywa dla bezpiecznej konfiguracji Wi-Fi (WPS). Protokół WPS został wycofany w Androidzie 9.
Wi-Fi Easy Connect to prosta i bezpieczna metoda:
- urządzenia z wbudowanym Wi-Fi (w tym urządzenia bez obudowy) z dostępem do sieci bez podawania hasła;
- łączyć się z sieciami Wi-Fi bez znajomości lub wpisywania hasła;
Inicjowanie i uwierzytelnianie są konfigurowane za pomocą identyfikatora URI, który można uzyskać, skanując kod QR (za pomocą aparatu) lub skonfigurować poza pasmem, na przykład za pomocą BLE lub NFC.
Wi-Fi Easy Connect używa szyfrowanego kanału do wysyłania danych logowania do Wi-Fi między urządzeniami. Ponieważ używane są publiczne ramki działań, urządzenia mogą korzystać z istniejących punktów dostępu.
Android 10 obsługuje Wi-Fi Easy Connect tylko w trybie inicjatora (tryb odpowiedzi nie jest obsługiwany). Obsługiwane są te tryby działania:
- Inicjator-konfigurator: wysyłanie danych logowania do sieci na nowe urządzenie przez zeskanowanie kodu QR.
- Inicjator – osoba zarejestrowana: dołącz do sieci, skanując kod QR sieci.
Android 10 obsługuje protokół klucza wstępnego (PSK) w przypadku WPA2 oraz protokół SAE (Simultaneous Authentication of Equals) w przypadku WPA3.
Łatwe łączenie Wi-Fi jest obsługiwane tylko w trybie klienta (tryb SoftAP nie jest obsługiwany).
Implementacja
Aby obsługiwać Wi-Fi Easy Connect, zaimplementuj interfejs supplicanta udostępniony w ramach Projektu Android Open Source (AOSP). W zależności od zaimplementowanego interfejsu jest to:
hardware/interfaces/wifi/supplicant/1.2/
lub nowsza wersja w przypadku HIDLhardware/interfaces/wifi/supplicant/aidl/
w przypadku AIDL
Aby obsługiwać DPP, musisz:
Aktualizacje jądra Linux do obsługi DPP:
- cfg80211
- nl80211
wpa_supplicant
z obsługą DPPSterownik Wi-Fi z obsługą DPP
oprogramowanie układowe Wi-Fi z obsługą DPP,
Interfejsy API dostępne publicznie są dostępne w Androidzie 10 do użytku w aplikacjach:
WifiManager#isEasyConnectSupported
: wysyła zapytanie do frameworku, aby określić, czy urządzenie obsługuje Wi-Fi Easy Connect.Activity#startActivityForResult(ACTION_PROCESS_WIFI_EASY_CONNECT_URI)
: Pozwala aplikacjom zintegrować Wi-Fi Easy Connect z procesem rejestracji lub konfiguracji.
Włączanie funkcji Wi-Fi Easy Connect
Aby włączyć Wi-Fi Easy Connect w ramach Androida, dodaj opcję kompilacji CONFIG_DPP
w pliku konfiguracyjnym wpa_supplicant
: android.config
.
# Easy Connect (Device Provisioning Protocol - DPP) CONFIG_DPP=y
Weryfikacja
Aby przetestować implementację, uruchom te testy.
Testy jednostkowe
Uruchom DppManagerTest
, aby sprawdzić działanie flag możliwości w przypadku DPP.
atest DppManagerTest
Testy VTS
Jeśli interfejs HIDL jest zaimplementowany, uruchom VtsHalWifiSupplicantV1_2TargetTest
, aby przetestować działanie supplicanta HAL w wersji 1.2.
Jeśli interfejs AIDL jest zaimplementowany, uruchom VtsHalWifiSupplicantStaIfaceTargetTest
, aby przetestować działanie interfejsu HAL klienta.