Android 10 introduce il supporto del protocollo Wi-Fi Easy Connect, noto anche come protocollo di provisioning dei dispositivi (DPP). La funzionalità Wi-Fi Easy Connect è stata introdotta da Wi-Fi Alliance (WFA) come alternativa alla configurazione protetta Wi-Fi (WPS). La funzionalità WPS è stata ritirata in Android 9.
La funzionalità Wi-Fi Easy Connect offre un metodo semplice e sicuro per:
- Configurare i dispositivi Wi-Fi (inclusi i dispositivi headless) in una rete senza inserire una password.
- Connettiti alle reti Wi-Fi senza conoscere o inserire una password.
Il bootstrap e l'autenticazione vengono configurati utilizzando un URI, che viene acquisito scansionando un codice QR (con una fotocamera) o configurato fuori banda, ad esempio tramite BLE o NFC.
Wi-Fi Easy Connect utilizza un canale criptato per inviare le credenziali Wi-Fi tra i dispositivi e, poiché vengono utilizzati i frame di azioni pubbliche, i dispositivi possono usare i punti di accesso esistenti.
Android 10 supporta Connessione rapida Wi-Fi solo in modalità iniziatore (la modalità risposta non è supportata). Sono supportate le seguenti modalità operative:
- Configuratore iniziatore: invia le credenziali di rete a un nuovo dispositivo scansionando il codice QR.
- Iniziatore-registrato:entra in una rete scansionando il codice QR di rete.
Android 10 supporta il protocollo a chiave precondivisa (PSK) per WPA2 e il protocollo SAE (autenticazione simultanea) per WPA3.
La connessione Wi-Fi Easy Connect è supportata solo in modalità client (la modalità SoftAP non è supportata).
Implementazione
Per supportare Connessione facile Wi-Fi, implementa l'interfaccia del dispositivo fornita nell'Android Open Source Project (AOSP). A seconda dell'interfaccia implementata, si trova all'indirizzo:
hardware/interfaces/wifi/supplicant/1.2/
o una versione successiva per HIDLhardware/interfaces/wifi/supplicant/aidl/
per AIDL
Per supportare la DPP, è necessario quanto segue:
Patch del kernel Linux per supportare DPP:
- cfg80211
- nl80211
wpa_supplicant
con supporto per DPPDriver Wi-Fi con supporto per DPP
Firmware Wi-Fi con supporto per DPP
Le API pubbliche sono disponibili in Android 10 per l'utilizzo da parte delle app:
WifiManager#isEasyConnectSupported
: interroga il framework per determinare se il dispositivo supporta Connessione rapida Wi-Fi.Activity#startActivityForResult(ACTION_PROCESS_WIFI_EASY_CONNECT_URI)
: Consente alle app di integrare Wi-Fi Easy Connect nel loro flusso di onboarding/configurazione.
Attiva Connessione facile Wi-Fi
Per attivare Connessione facile Wi-Fi nel framework Android, includi
l'opzione di compilazione
CONFIG_DPP
nel file di configurazione wpa_supplicant
,
android.config
:
# Easy Connect (Device Provisioning Protocol - DPP) CONFIG_DPP=y
Convalida
Per testare l'implementazione, esegui questi test.
Test delle unità
Esegui DppManagerTest
per verificare il comportamento dei flag di capacità per DPP.
atest DppManagerTest
Test VTS
Se l'interfaccia HIDL è implementata, esegui VtsHalWifiSupplicantV1_2TargetTest
per testare il comportamento del supplicante HAL v1.2.
Se l'interfaccia AIDL è implementata, esegui VtsHalWifiSupplicantStaIfaceTargetTest
per testare il comportamento dell'HAL del supplicante.