W Androidzie 10 wprowadzono obsługę protokołu Wi-Fi Easy Connect, znanego również jako protokół udostępniania urządzeń (DPP). Wi-Fi Easy Connect zostało wprowadzone przez stowarzyszenie Wi-Fi Alliance (WFA) jako alternatywa dla Wi-Fi Protected Setup (WPS). Funkcja WPS została wycofana w systemie Android 9.
Wi-Fi Easy Connect zapewnia prostą i bezpieczną metodę:
- Podłącz urządzenia Wi-Fi (w tym urządzenia bezgłowe) do sieci bez podawania hasła.
- Dołącz do sieci Wi-Fi bez znajomości i wprowadzania hasła.
Bootstrapping i uwierzytelnianie konfiguruje się za pomocą identyfikatora URI, który jest uzyskiwany poprzez zeskanowanie kodu QR (za pomocą aparatu) lub konfiguruje się poza pasmem, na przykład za pomocą BLE lub NFC.
Wi-Fi Easy Connect wykorzystuje szyfrowany kanał do przesyłania danych uwierzytelniających Wi-Fi między urządzeniami, a ponieważ używane są publiczne ramki akcji, 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ą następujące tryby pracy:
- Inicjator-Konfigurator: Wyślij dane uwierzytelniające sieci do nowego urządzenia, skanując jego kod QR.
- Inicjator-rejestrujący: Dołącz do sieci, skanując sieciowy kod QR.
Android 10 obsługuje protokół klucza wstępnego (PSK) dla WPA2 i protokół jednoczesnego uwierzytelniania równości (SAE) dla WPA3.
Wi-Fi Easy Connect jest obsługiwane tylko w trybie klienta (tryb SoftAP nie jest obsługiwany).
Realizacja
Aby obsługiwać Wi-Fi Easy Connect, zaimplementuj interfejs suplikanta dostarczony w projekcie Android Open Source Project (AOSP). W zależności od zaimplementowanego interfejsu jest to:
-
hardware/interfaces/wifi/supplicant/1.2/
lub nowsza wersja dla HIDL -
hardware/interfaces/wifi/supplicant/aidl/
dla AIDL
Do obsługi programu DPP wymagane są:
Poprawki jądra Linuksa obsługujące DPP:
- cfg80211
- nl80211
wpa_supplicant
z obsługą DPPSterownik Wi-Fi z obsługą DPP
Oprogramowanie sprzętowe Wi-Fi z obsługą DPP
Publiczne interfejsy API są dostępne w systemie Android 10 i mogą być używane przez aplikacje:
-
WifiManager#isEasyConnectSupported
: wysyła zapytanie do struktury, aby określić, czy urządzenie obsługuje funkcję Wi-Fi Easy Connect. -
Activity#startActivityForResult(ACTION_PROCESS_WIFI_EASY_CONNECT_URI)
: umożliwia aplikacjom integrację Wi-Fi Easy Connect z procesem wdrażania/konfiguracji.
Włączanie łatwego połączenia Wi-Fi
Aby włączyć Wi-Fi Easy Connect w środowisku Android, dołącz opcję kompilacji CONFIG_DPP
w pliku konfiguracyjnym wpa_supplicant
, android.config
:
# Easy Connect (Device Provisioning Protocol - DPP) CONFIG_DPP=y
Walidacja
Aby przetestować implementację, uruchom następujące testy.
Testy jednostkowe
Uruchom DppManagerTest
, aby sprawdzić zachowanie flag możliwości programu DPP.
atest DppManagerTest
Test integracyjny (ACTS)
Aby uruchomić test integracji, użyj pliku Android Comms Test Suite (ACTS), WifiDppTest.py
znajdującego się w tools/test/connectivity/acts_tests/tests/google/wifi
.
Testy VTS
Jeśli zaimplementowano interfejs HIDL, uruchom VtsHalWifiSupplicantV1_2TargetTest
aby przetestować zachowanie suplikanta HAL v1.2.
Jeśli zaimplementowano interfejs AIDL, uruchom VtsHalWifiSupplicantStaIfaceTargetTest
aby przetestować zachowanie suplikanta HAL.