O Android 10 apresenta suporte para o protocolo Wi-Fi Easy Connect, também conhecido como protocolo de provisionamento de dispositivos (DPP). O Wi-Fi Easy Connect foi introduzido pela Wi-Fi Alliance (WFA) como uma alternativa ao Wi-Fi Protected Setup (WPS). WPS foi descontinuado no Android 9.
O Wi-Fi Easy Connect oferece um método simples e seguro para:
- Integre dispositivos Wi-Fi (incluindo dispositivos headless) a uma rede sem inserir uma senha.
- Junte-se a redes Wi-Fi sem saber ou inserir uma senha.
O bootstrapping e a autenticação são configurados usando um URI, que é adquirido pela leitura de um código QR (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 e, como são usados frames de ação pública, os dispositivos podem usar pontos de acesso existentes.
O Android 10 oferece suporte ao Wi-Fi Easy Connect apenas no modo iniciador (o modo de resposta não é compatível). Estes modos de operação são suportados:
- Iniciador-Configurador: Envie credenciais de rede para um novo dispositivo digitalizando seu código QR.
- Iniciador-Inscrito: Junte-se a uma rede digitalizando o código QR da rede.
O Android 10 oferece suporte ao protocolo de chave pré-compartilhada (PSK) para WPA2 e ao protocolo de autenticação simultânea de iguais (SAE) para WPA3.
O Wi-Fi Easy Connect é compatível apenas no modo cliente (o modo SoftAP não é compatível).
Implementação
Para oferecer suporte ao Wi-Fi Easy Connect, implemente a interface suplicante fornecida no Android Open Source Project (AOSP). Dependendo da interface que foi implementada, está em:
-
hardware/interfaces/wifi/supplicant/1.2/
ou uma versão posterior para HIDL -
hardware/interfaces/wifi/supplicant/aidl/
para AIDL
Os itens a seguir são necessários para oferecer suporte ao DPP:
Patches do kernel Linux para suporte ao DPP:
- cfg80211
- nl80211
wpa_supplicant
com suporte para DPPDriver Wi-Fi com suporte para DPP
Firmware Wi-Fi com suporte para DPP
APIs públicas estão disponíveis no Android 10 para uso por aplicativos:
-
WifiManager#isEasyConnectSupported
: consulta a estrutura para determinar se o dispositivo oferece suporte ao Wi-Fi Easy Connect. -
Activity#startActivityForResult(ACTION_PROCESS_WIFI_EASY_CONNECT_URI)
: permite que os aplicativos integrem o Wi-Fi Easy Connect em seu fluxo de integração/configuração.
Ativando o Wi-Fi Easy Connect
Para ativar o Wi-Fi Easy Connect na estrutura 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 unitários
Execute DppManagerTest
para verificar o comportamento dos sinalizadores de capacidade do DPP.
atest DppManagerTest
Teste de integração (ACTS)
Para executar um teste de integração, use o arquivo Android Comms Test Suite (ACTS), WifiDppTest.py
, localizado em tools/test/connectivity/acts_tests/tests/google/wifi
.
Testes VTS
Se a interface HIDL for implementada, execute VtsHalWifiSupplicantV1_2TargetTest
para testar o comportamento do suplicante HAL v1.2.
Se a interface AIDL for implementada, execute VtsHalWifiSupplicantStaIfaceTargetTest
para testar o comportamento do HAL suplicante.