Wi-Fi Easy Connect

O Android 10 oferece suporte ao protocolo Wi-Fi Easy Connect, também conhecido como protocolo de provisionamento de dispositivo (DPP, na sigla em inglês). O Wi-Fi Easy Connect foi introduzido pela Wi-Fi Alliance (WFA) como uma alternativa ao Wi-Fi Protected Setup (WPS). O WPS foi descontinuado no Android 9.

O Wi-Fi Easy Connect oferece um método simples e seguro para:

  • Dispositivos Wi-Fi integrados (incluindo dispositivos sem cabeça) a uma rede sem inserir uma senha.
  • Conectar-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 fazendo a 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 frames de ação públicos são usados, os dispositivos podem usar pontos de acesso existentes.

O Android 10 oferece suporte ao Wi-Fi Easy Connect apenas no modo de iniciador. O modo de resposta não é compatível. Há suporte para os seguintes modos de operação:

  • Initiator-Configurator:envie credenciais de rede para um novo dispositivo lendo o código QR dele.
  • Iniciador-inscrito:participe de uma rede lendo o QR code dela.

O Android 10 oferece suporte ao protocolo de chave pré-compartilhada (PSK, na sigla em inglês) para WPA2 e ao protocolo de autenticação simultânea de igualdade (SAE, na sigla em inglês) para WPA3.

O Wi-Fi Easy Connect só tem suporte no modo de cliente. O modo SoftAP não é compatível.

Implementação

Para oferecer suporte ao Wi-Fi Easy Connect, implemente a interface do solicitante fornecida no Android Open Source Project (AOSP). Dependendo da interface que foi implementada, isso fica em:

Os seguintes requisitos são necessários para oferecer suporte ao DPP:

  • Patches do kernel do Linux para compatibilidade com DPP:

    • cfg80211
    • nl80211
  • wpa_supplicant com suporte a DPP

  • Driver de Wi-Fi com suporte a DPP

  • Firmware Wi-Fi com suporte a DPP

As APIs públicas estão disponíveis no Android 10 para uso por apps:

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 a implementação, execute os seguintes testes.

Testes de unidade

Execute 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.