Android 10 introduce compatibilidad con el protocolo Easy Connect de Wi-Fi, también conocido como protocolo de provisión de dispositivo (DPP). Wi-Fi Easy Connect fue presentado por Wi-Fi Alliance (WFA) como una alternativa a Wi-Fi Protected Setup (WPS). WPS dejó de estar disponible en Android 9.
Wi-Fi Easy Connect proporciona un método sencillo y seguro para realizar las siguientes acciones:
- Incorporar dispositivos Wi-Fi (incluidos los dispositivos sin pantalla) a una red sin ingresar una contraseña
- Unirse a redes Wi-Fi sin saber o ingresar una contraseña
El proceso de arranque y la autenticación se configuran con un URI, que se adquiere escaneando un código QR (con una cámara) o se configura fuera de banda, por ejemplo, con BLE o NFC.
Easy Connect para Wi-Fi usa un canal encriptado para enviar credenciales de Wi-Fi entre dispositivos y, como se usan tramas de acción públicas, los dispositivos pueden usar puntos de acceso existentes.
Android 10 solo admite Wi-Fi Easy Connect en el modo de iniciador (no se admite el modo de respuesta). Se admiten los siguientes modos de operación:
- Iniciador-Configurador: Envía credenciales de red a un dispositivo nuevo escaneando su código QR.
- Iniciador-Inscrito: Únete a una red escaneando el código QR de la red.
Android 10 admite el protocolo de clave precompartida (PSK) para WPA2 y el protocolo de autenticación simultánea de iguales (SAE) para WPA3.
Wi-Fi Easy Connect solo se admite en el modo de cliente (no se admite el modo SoftAP).
Implementación
Para admitir Wi-Fi Easy Connect, implementa la interfaz de suplicante que se proporciona en el Proyecto de código abierto de Android (AOSP). Según la interfaz que se implementó, se encuentra en las siguientes ubicaciones:
hardware/interfaces/wifi/supplicant/1.2/
o una versión posterior para HIDLhardware/interfaces/wifi/supplicant/aidl/
para AIDL
Para admitir el DPP, se requiere lo siguiente:
Parches del kernel de Linux para admitir DPP:
- cfg80211
- nl80211
wpa_supplicant
con compatibilidad con DPPControlador de Wi-Fi compatible con DPP
Firmware de Wi-Fi compatible con DPP
Las APIs públicas están disponibles en Android 10 para que las usen las apps:
WifiManager#isEasyConnectSupported
: Consulta el framework para determinar si el dispositivo admite Easy Connect de Wi-Fi.Activity#startActivityForResult(ACTION_PROCESS_WIFI_EASY_CONNECT_URI)
: Permite que las apps integren Wi-Fi Easy Connect en su flujo de incorporación o configuración.
Cómo habilitar Easy Connect para Wi-Fi
Para habilitar Wi-Fi Easy Connect en el framework de Android, incluye la opción de compilación CONFIG_DPP
en el archivo de configuración wpa_supplicant
, android.config
:
# Easy Connect (Device Provisioning Protocol - DPP) CONFIG_DPP=y
Validación
Para probar tu implementación, ejecuta las siguientes pruebas.
Pruebas de unidades
Ejecuta DppManagerTest
para verificar el comportamiento de las marcas de capacidades para DPP.
atest DppManagerTest
Pruebas de VTS
Si se implementa la interfaz de HIDL, ejecuta VtsHalWifiSupplicantV1_2TargetTest
para probar el comportamiento de la HAL de supplicant v1.2.
Si se implementa la interfaz de AIDL, ejecuta VtsHalWifiSupplicantStaIfaceTargetTest
para probar el comportamiento de la HAL de supplicant.