Android 10 wprowadza obsługę protokołu Wi-Fi Easy Connect, znanego też jako protokół udostępniania urządzeń (DPP). Wi-Fi Easy Connect została wprowadzona przez stowarzyszenie Wi-Fi Alliance (WFA) jako alternatywa dla bezpiecznej konfiguracji Wi-Fi (WPS). WPS został wycofany w Androidzie 9.
Wi-Fi Easy Connect zapewnia prostą i bezpieczną metodę:
- Wprowadzanie urządzeń Wi-Fi (w tym urządzeń bez ekranu) do sieci bez podawania hasła.
- łączyć się z sieciami Wi-Fi bez znajomości hasła i bez jego wpisywania;
Konfiguracja początkowa i uwierzytelnianie są konfigurowane za pomocą identyfikatora URI, który jest uzyskiwany przez zeskanowanie kodu QR (za pomocą aparatu) lub konfigurowany poza pasmem, np. za pomocą BLE lub NFC.
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 Wi-Fi Easy Connect tylko w trybie inicjatora (tryb respondenta nie jest obsługiwany). Obsługiwane są te tryby działania:
- Urządzenie inicjujące konfigurację: wysyła dane logowania do sieci na nowe urządzenie, skanując jego kod QR.
- Inicjator-uczestnik: dołączanie do sieci przez zeskanowanie kodu QR sieci.
Android 10 obsługuje protokół klucza wstępnego (PSK) w przypadku WPA2 oraz protokół jednoczesnego uwierzytelniania równorzędnego (SAE) w przypadku WPA3.
Wi-Fi Easy Connect jest obsługiwane tylko w trybie klienta (tryb SoftAP nie jest obsługiwany).
Implementacja
Aby obsługiwać Wi-Fi Easy Connect, zaimplementuj interfejs klienta udostępniony w ramach Projektu Android Open Source (AOSP). W zależności od wdrożonego interfejsu jest to:
hardware/interfaces/wifi/supplicant/1.2/
lub nowsza wersja HIDLhardware/interfaces/wifi/supplicant/aidl/
w przypadku AIDL
Aby obsługiwać DPP, musisz spełnić te wymagania:
Patche do jądra Linuksa obsługujące DPP:
- cfg80211
- nl80211
wpa_supplicant
z obsługą DPPSterownik Wi-Fi z obsługą DPP
Oprogramowanie układowe Wi-Fi z obsługą DPP
W Androidzie 10 dostępne są te publiczne interfejsy API, z których mogą korzystać aplikacje:
WifiManager#isEasyConnectSupported
: wysyła do platformy zapytanie, aby określić, czy urządzenie obsługuje Wi-Fi Easy Connect.Activity#startActivityForResult(ACTION_PROCESS_WIFI_EASY_CONNECT_URI)
: umożliwia aplikacjom zintegrowanie Wi-Fi Easy Connect z procesem wprowadzania lub konfiguracji.
Włączanie funkcji Wi-Fi Easy Connect
Aby włączyć Wi-Fi Easy Connect w ramach Androida, w pliku konfiguracyjnym wpa_supplicant
uwzględnij opcję kompilacji CONFIG_DPP
:android.config
# Easy Connect (Device Provisioning Protocol - DPP) CONFIG_DPP=y
Weryfikacja
Aby przetestować wdrożenie, przeprowadź te testy.
Testy jednostkowe
Uruchom DppManagerTest
, aby sprawdzić zachowanie flag funkcji w przypadku DPP.
atest DppManagerTest
Testy VTS
Jeśli interfejs HIDL jest zaimplementowany, uruchom
VtsHalWifiSupplicantV1_2TargetTest
aby przetestować działanie modułu HAL supplicant w wersji 1.2.
Jeśli interfejs AIDL jest zaimplementowany, uruchom
VtsHalWifiSupplicantStaIfaceTargetTest
aby przetestować działanie interfejsu HAL klienta.