O Android 10 introduz compatibilidade com o protocolo Wi-Fi Easy Connect, também conhecido como protocolo de provisionamento de dispositivo (DPP). O Wi-Fi Easy Connect foi apresentado pela Wi-Fi Alliance (WFA) como uma alternativa à Configuração protegida do Wi-Fi (WPS). O WPS foi descontinuado no Android 9.
O Wi-Fi Easy Connect oferece um método simples e seguro para:
- Integrar dispositivos Wi-Fi (incluindo dispositivos sem tela) a uma rede sem inserir uma senha.
- Conectar-se a redes Wi-Fi sem saber ou inserir uma senha.
A inicialização e a autenticação são configuradas usando um URI, que é adquirido ao ler um QR code (usando uma câmera) ou é configurado fora da banda, por exemplo, usando BLE ou NFC.
O Wi-Fi Easy Connect usa um canal criptografado para enviar credenciais de Wi-Fi entre dispositivos. Como são usados frames de ação pública, os dispositivos podem usar pontos de acesso atuais.
O Android 10 é compatível com o Wi-Fi Easy Connect apenas no modo iniciador (o modo de resposta não é compatível). Estes modos de operação são compatíveis:
- Iniciador-configurador:envie credenciais de rede para um novo dispositivo lendo o QR code dele.
- Iniciador-inscrito:entre em uma rede lendo o QR code dela.
O Android 10 oferece suporte ao protocolo de chave pré-compartilhada (PSK) para WPA2 e ao protocolo de autenticação simultânea de igualdade (SAE) para WPA3.
O Wi-Fi Easy Connect só é compatível com o modo cliente. O modo SoftAP não é compatível.
Implementação
Para oferecer suporte ao Wi-Fi Easy Connect, implemente a interface de suplicante fornecida no Android Open Source Project (AOSP). Dependendo da interface implementada, isso fica em:
hardware/interfaces/wifi/supplicant/1.2/
ou uma versão mais recente para HIDLhardware/interfaces/wifi/supplicant/aidl/
para AIDL
Os seguintes requisitos são necessários para oferecer suporte à DPP:
Patches do kernel do Linux para oferecer suporte ao DPP:
- cfg80211
- nl80211
wpa_supplicant
com suporte a DPPDriver de Wi-Fi com suporte para DPP
Firmware Wi-Fi com suporte a DPP
As APIs públicas estão disponíveis no Android 10 para uso por apps:
WifiManager#isEasyConnectSupported
: consulta o framework para determinar se o dispositivo é compatível com o Wi-Fi Easy Connect.Activity#startActivityForResult(ACTION_PROCESS_WIFI_EASY_CONNECT_URI)
: permite que os apps integrem o Wi-Fi Easy Connect ao fluxo de integração/configuração.
Ativar o Wi-Fi Easy Connect
Para ativar o Wi-Fi Easy Connect no framework do Android, inclua a opção de compilação
CONFIG_DPP
no arquivo de configuração
wpa_supplicant
, android.config
:
# Easy Connect (Device Provisioning Protocol - DPP) CONFIG_DPP=y
Validação
Para testar sua implementação, execute os testes a seguir.
Testes de unidade
Execute
DppManagerTest
para verificar o comportamento das flags de recursos para a DPP.
atest DppManagerTest
Testes VTS
Se a interface HIDL for implementada, execute
VtsHalWifiSupplicantV1_2TargetTest
para testar o comportamento da HAL v1.2 do suplicante.
Se a interface AIDL for implementada, execute
VtsHalWifiSupplicantStaIfaceTargetTest
para testar o comportamento da HAL do suplicante.