Android 10 introduce il supporto per il protocollo Wi-Fi Easy Connect, noto anche come protocollo di provisioning del dispositivo (DPP). Wi-Fi Easy Connect è stato introdotto da Wi-Fi Alliance (WFA) come alternativa alla Configurazione protetta Wi-Fi (WPS). La funzionalità WPS è stata ritirata in Android 9.
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.
L'inizializzazione e l'autenticazione vengono configurate utilizzando un URI, che viene acquisito tramite la scansione di un codice QR (utilizzando una fotocamera) o viene configurato out-of-band, ad esempio utilizzando 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 Wi-Fi Easy Connect solo in modalità iniziatore (la modalità di risposta non è supportata). Sono supportate le seguenti modalità di funzionamento:
- Initiator-Configurator: invia le credenziali di rete a un nuovo dispositivo scansionandone il codice QR.
- Autore dell'inizializzazione-Abbonato:partecipa a una rete scansionando il codice QR della rete.
Android 10 supporta il protocollo con chiave pre-condivisa (PSK) per WPA2 e il protocollo di autenticazione simultanea di uguali (SAE) per WPA3.
La funzionalità Wi-Fi Easy Connect è supportata solo in modalità client (la modalità SoftAP non è supportata).
Implementazione
Per supportare Wi-Fi Easy Connect, implementa l'interfaccia supplicant 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 il DPP sono necessari i seguenti requisiti:
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
In Android 10 sono disponibili API pubbliche che possono essere utilizzate dalle app:
WifiManager#isEasyConnectSupported
: esegue query sul framework per determinare se il dispositivo supporta la funzionalità Wi-Fi Easy Connect.Activity#startActivityForResult(ACTION_PROCESS_WIFI_EASY_CONNECT_URI)
: consente alle app di integrare Wi-Fi Easy Connect nel flusso di onboarding/configurazione.
Attiva Connessione facile Wi-Fi
Per attivare la funzionalità Wi-Fi Easy Connect 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 i seguenti 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 dell'HAL supplicant 1.2.
Se l'interfaccia AIDL è implementata, esegui
VtsHalWifiSupplicantStaIfaceTargetTest
per testare il comportamento dell'HAL supplicant.