Android 10 introduce compatibilidad con el protocolo Wi-Fi Easy Connect, también conocido como protocolo de aprovisionamiento de dispositivos (DPP). Wi-Fi Alliance (WFA) presentó Wi-Fi Easy Connect 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 simple y seguro para lo siguiente:
- Integrar dispositivos Wi-Fi (incluidos los dispositivos sin interfaz gráfica) a una red sin ingresar una contraseña
- Unirse a redes Wi-Fi sin conocer ni ingresar una contraseña
El arranque y la autenticación se configuran mediante un URI, que se adquiere escaneando un código QR (con una cámara) o se configuran fuera de banda, por ejemplo, con BLE o NFC.
Wi-Fi Easy Connect 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 admite Wi-Fi Easy Connect solo en el modo de iniciador (no se admite el modo de respondedor). 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: Escanea el código QR de la red para unirte a ella.
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 es compatible con el modo cliente (no se admite el modo SoftAP).
Implementación
Para admitir Wi-Fi Easy Connect, implementa la interfaz de solicitante proporcionada en el Proyecto de código abierto de Android (AOSP). Según la interfaz que se implementó, esto se encuentra en:
hardware/interfaces/wifi/supplicant/1.2/
o una versión posterior para HIDLhardware/interfaces/wifi/supplicant/aidl/
para AIDL
Se requiere lo siguiente para admitir el DPP:
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 con compatibilidad 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 Wi-Fi Easy Connect.Activity#startActivityForResult(ACTION_PROCESS_WIFI_EASY_CONNECT_URI)
: Permite que las apps integren Wi-Fi Easy Connect en su flujo de integració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 de DPP.
atest DppManagerTest
Pruebas de VTS
Si se implementa la interfaz HIDL, ejecuta VtsHalWifiSupplicantV1_2TargetTest
para probar el comportamiento del supplicant HAL v1.2.
Si se implementa la interfaz AIDL, ejecuta VtsHalWifiSupplicantStaIfaceTargetTest
para probar el comportamiento del HAL del solicitante.