Android 10 introduce il supporto del protocollo Wi-Fi Easy Connect, noto anche come protocollo di provisioning dei dispositivi (DPP). Wi-Fi Easy Connect è stato introdotto da Wi-Fi Alliance (WFA) come alternativa a Configurazione protetta Wi-Fi (WPS). WPS è stata ritirata in Android 9.
Wi-Fi Easy Connect offre un metodo semplice e sicuro per:
- Eseguire l'onboarding di dispositivi Wi-Fi (inclusi i dispositivi headless) a una rete senza inserire una password.
- Connettersi alle reti Wi-Fi senza conoscere o inserire una password.
Il bootstrapping e l'autenticazione vengono configurati utilizzando un URI, che viene acquisito scansionando 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 frame di azioni pubbliche, i dispositivi possono utilizzare i punti di accesso esistenti.
Android 10 supporta Wi-Fi Easy Connect solo in modalità iniziatore (la modalità risponditore non è supportata). Sono supportate le seguenti modalità di funzionamento:
- Iniziatore-configuratore: invia le credenziali di rete a un nuovo dispositivo scansionando il relativo codice QR.
- Iniziatore-iscritto:entra in una rete scansionando il codice QR della rete.
Android 10 supporta il protocollo di chiave precondivisa (PSK) per WPA2 e il protocollo di autenticazione simultanea di pari (SAE) per WPA3.
Wi-Fi Easy Connect è supportato solo in modalità client (la modalità SoftAP non è supportata).
Implementazione
Per supportare Wi-Fi Easy Connect, implementa l'interfaccia supplicant fornita in Android Open Source Project (AOSP). A seconda dell'interfaccia implementata, si trova in:
hardware/interfaces/wifi/supplicant/1.2/
o una versione successiva per HIDLhardware/interfaces/wifi/supplicant/aidl/
per AIDL
Per supportare 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 DPP
Firmware Wi-Fi con supporto DPP
Le API pubbliche sono disponibili in Android 10 per l'utilizzo da parte delle app:
WifiManager#isEasyConnectSupported
: Esegue una query sul framework per determinare se il dispositivo supporta 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.
Attivare Wi-Fi Easy Connect
Per attivare Wi-Fi Easy Connect nel framework Android, includi l'opzione
CONFIG_DPP
di compilazione
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 funzionalità per DPP.
atest DppManagerTest
Test VTS
Se l'interfaccia HIDL è implementata, esegui
VtsHalWifiSupplicantV1_2TargetTest
per testare il comportamento di supplicant HAL v1.2.
Se l'interfaccia AIDL è implementata, esegui
VtsHalWifiSupplicantStaIfaceTargetTest
per testare il comportamento dell'HAL supplicant.