Android 10 presenta compatibilidad con el protocolo Wi-Fi Easy Connect, también conocido como protocolo de aprovisionamiento de dispositivos (DPP). Wi-Fi Easy Connect fue presentado por Wi-Fi Alliance (WFA) como una alternativa a la configuración protegida de Wi-Fi (WPS). WPS quedó obsoleto en Android 9.
Wi-Fi Easy Connect proporciona un método simple y seguro para:
- Dispositivos Wi-Fi integrados (incluidos los dispositivos sin cabeza) a una red sin ingresar una contraseña.
- Únase a redes Wi-Fi sin saber o ingresar una contraseña.
El bootstrapping y la autenticación se configuran usando un URI, que se adquiere escaneando un código QR (usando una cámara), o se configura fuera de banda, por ejemplo, usando BLE o NFC.
Wi-Fi Easy Connect usa un canal encriptado para enviar credenciales de Wi-Fi entre dispositivos y, debido a que se usan marcos de acción pública, los dispositivos pueden usar puntos de acceso existentes.
Android 10 es compatible con Wi-Fi Easy Connect solo en el modo de iniciador (el modo de respuesta no es compatible). Se admiten estos modos de funcionamiento:
- Iniciador-Configurador: Envía credenciales de red a un nuevo dispositivo escaneando su código QR.
- Iniciador-Inscrito: Únase 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 es compatible en modo cliente (el modo SoftAP no es compatible).
Implementación
Para admitir Wi-Fi Easy Connect, implemente el lenguaje de diseño de interfaz HAL suplicante (HIDL) proporcionado en el Proyecto de código abierto de Android (AOSP) en hardware/interfaces/wifi/supplicant/1.2/
o una versión posterior.
Se requiere lo siguiente para admitir DPP:
Parches del kernel de Linux para admitir DPP:
- cfg80211
- nl80211
wpa_supplicant
con soporte para DPPControlador Wi-Fi con soporte para DPP
Firmware Wi-Fi con soporte para DPP
Las API públicas están disponibles en Android 10 para que las usen las aplicaciones:
-
WifiManager#isEasyConnectSupported
: consulta el marco para determinar si el dispositivo es compatible con Wi-Fi Easy Connect. -
Activity#startActivityForResult(ACTION_PROCESS_WIFI_EASY_CONNECT_URI)
: permite que las aplicaciones integren Wi-Fi Easy Connect en su flujo de incorporación/configuración.
Habilitación de Wi-Fi Easy Connect
Para habilitar Wi-Fi Easy Connect en el marco de Android, incluya 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 su implementación, ejecute las siguientes pruebas.
Pruebas unitarias
Ejecute DppManagerTest
para verificar el comportamiento de los indicadores de capacidad para DPP.
atest DppManagerTest
Prueba de integración (ACTS)
Para ejecutar una prueba de integración, use el archivo de Android Comms Test Suite (ACTS), WifiDppTest.py
, ubicado en tools/test/connectivity/acts_tests/tests/google/wifi
.
pruebas VTS
Ejecute VtsHalWifiSupplicantV1_2Host
para probar el comportamiento del suplicante HAL v1.2.
vts-tradefed run commandAndExit vts --skip-all-system-status-check --primary-abi-only --skip-preconditions --module VtsHalWifiSupplicantV1_2Host