O Android 10 introduz a compatibilidade com o Wi-Fi Easy Protocolo Connect, também conhecido como protocolo de provisionamento de dispositivo (DPP). Wi-Fi Easy Connect foi introduzido pela Wi-Fi Alliance (WFA) como uma alternativa Wi-Fi Protected Setup (WPS). O uso do WPS foi descontinuado no Android 9.
O Wi-Fi Easy Connect oferece um método simples e seguro para:
- Integrar dispositivos Wi-Fi (inclusive dispositivos headless) a uma rede sem digitar uma senha.
- Conecte-se a redes Wi-Fi sem saber ou digitar uma senha.
O bootstrap e a autenticação são configurados usando um URI, que é adquirido lendo um QR code (usando uma câmera) ou estiver configurado fora de banda, como BLE ou NFC.
O Wi-Fi Easy Connect usa um canal criptografado para enviar credenciais de Wi-Fi entre e, como os frames de ação públicos são usados, os dispositivos podem usar pontos de acesso.
O Android 10 oferece suporte ao Wi-Fi Easy Connect apenas em modo iniciador (o modo de resposta é não tem suporte). Há suporte para os seguintes modos de operação:
- Initiator-Configurator:envia as credenciais de rede para um novo dispositivo. lendo o QR code.
- Iniciador-inscrito:entre em uma rede lendo o QR code da rede.
O Android 10 oferece suporte ao protocolo de chave pré-compartilhada (PSK, na sigla em inglês) para WPA2 e para o protocolo de autenticação simultânea de igual (SAE) para WPA3.
O Wi-Fi Easy Connect só é suportado no modo de cliente (o modo SoftAP não é compatíveis).
Implementação
Para oferecer suporte ao Wi-Fi Easy Connect, implemente a interface suplicante. fornecidos no Android Open Source Project (AOSP). Dependendo da interface que foi implementada, isso fica em:
hardware/interfaces/wifi/supplicant/1.2/
ou uma versão posterior para HIDLhardware/interfaces/wifi/supplicant/aidl/
para AIDL
Os itens a seguir são necessários para a compatibilidade com o DPP:
Patches do kernel do Linux para compatibilidade com DPP:
- (cfg80211)
- nl80211
wpa_supplicant
com suporte para DPPDriver de Wi-Fi compatível com DPP
Firmware de Wi-Fi compatível com DPP
As APIs públicas estão disponíveis no Android 10 para uso aplicativos:
WifiManager#isEasyConnectSupported
: Consulta o framework para determinar se o dispositivo oferece suporte ao Wi-Fi Easy Conecte-se.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 na estrutura do Android, inclua o
Compilação de CONFIG_DPP
no arquivo de configuração wpa_supplicant
,
android.config
:
# Easy Connect (Device Provisioning Protocol - DPP) CONFIG_DPP=y
Validação
Para testar a implementação, execute os testes a seguir.
Testes de unidade
Executar
DppManagerTest
para verificar o comportamento das flags de capacidade do DPP.
atest DppManagerTest
Testes VTS
Se a interface HIDL estiver implementada, execute
VtsHalWifiSupplicantV1_2TargetTest
para testar o comportamento da HAL v1.2 suplicante.
Se a interface AIDL estiver implementada, execute
VtsHalWifiSupplicantStaIfaceTargetTest
para testar o comportamento da HAL suplicante.