Android 10 wprowadza obsługę protokołu Wi-Fi Easy Connect, znanego też jako protokół obsługi administracyjnej urządzenia (DPP). Protokół Wi-Fi Easy Connect został wprowadzony przez Wi-Fi Alliance (WFA) jako alternatywa dla protokołu Wi-Fi Protected Setup (WPS). Protokół WPS został wycofany w Androidzie 9.
Protokół Wi-Fi Easy Connect zapewnia bezpieczną metodę:
- dołączania urządzeń Wi-Fi (w tym urządzeń bez ekranu) do sieci bez wpisywania hasła;
- dołączania do sieci Wi-Fi bez znajomości hasła i bez jego wpisywania.
Konfiguracja początkowa i uwierzytelnianie są konfigurowane za pomocą URI, który jest uzyskiwany przez zeskanowanie kodu QR (za pomocą aparatu) lub konfigurowany poza pasmem, np. za pomocą BLE lub NFC.
Protokół Wi-Fi Easy Connect używa zaszyfrowanego kanału do przesyłania danych logowania do Wi-Fi między urządzeniami. Ponieważ używane są publiczne ramki działania, urządzenia mogą korzystać z istniejących punktów dostępu.
Android 10 obsługuje protokół Wi-Fi Easy Connect tylko w trybie inicjatora (tryb respondenta nie jest obsługiwany). Obsługiwane są te tryby działania:
- Inicjator-konfigurator: wysyła dane logowania do sieci na nowe urządzenie, skanując jego kod QR.
- Inicjator-uczestnik: dołącza do sieci, skanując kod QR sieci.
Android 10 obsługuje protokół klucza wstępnie udostępnionego (PSK) w przypadku WPA2 oraz protokół jednoczesnego uwierzytelniania równych (SAE) w przypadku WPA3.
Protokół Wi-Fi Easy Connect jest obsługiwany tylko w trybie klienta (tryb SoftAP nie jest obsługiwany).
Implementacja
Aby obsługiwać protokół Wi-Fi Easy Connect, zaimplementuj interfejs supplicanta udostępniony w projekcie Android Open Source Project (AOSP). W zależności od zaimplementowanego interfejsu znajduje się on w:
hardware/interfaces/wifi/supplicant/1.2/lub nowszej wersji w przypadku HIDL;hardware/interfaces/wifi/supplicant/aidl/w przypadku AIDL.
Aby obsługiwać protokół DPP, musisz mieć:
łatki jądra Linuksa obsługujące protokół DPP:
- cfg80211
- nl80211
wpa_supplicantz obsługą protokołu DPP;sterownik Wi-Fi z obsługą protokołu DPP;
oprogramowanie układowe Wi-Fi z obsługą protokołu DPP.
W Androidzie 10 są dostępne publiczne interfejsy API, z których mogą korzystać aplikacje:
WifiManager#isEasyConnectSupported: wysyła zapytanie do frameworka, aby sprawdzić, czy urządzenie obsługuje protokół Wi-Fi Easy Connect.Activity#startActivityForResult(ACTION_PROCESS_WIFI_EASY_CONNECT_URI): umożliwia aplikacjom zintegrowanie protokołu Wi-Fi Easy Connect z procesem wdrażania lub konfiguracji.
Włączanie protokołu Wi-Fi Easy Connect
Aby włączyć protokół Wi-Fi Easy Connect w frameworku Androida, dodaj
CONFIG_DPP opcję
kompilacji do wpa_supplicant pliku konfiguracyjnego,
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 protokołu DPP.
atest DppManagerTestTesty VTS
Jeśli zaimplementowany jest interfejs HIDL, uruchom
VtsHalWifiSupplicantV1_2TargetTest
aby przetestować działanie HAL supplicanta w wersji 1.2.
Jeśli zaimplementowany jest interfejs AIDL, uruchom
VtsHalWifiSupplicantStaIfaceTargetTest
aby przetestować działanie HAL supplicanta.