La función Wi-Fi directo, también conocida como Wi-Fi P2P, permite que los dispositivos compatibles se descubran y se conecten entre sí directamente con el protocolo Wi-Fi directo sin acceso a Internet ni a la red móvil. Esta función, basada en la especificación de Wi-Fi Direct de la Wi-Fi Alliance (WFA), permite compartir datos de alta capacidad de procesamiento entre dispositivos y apps confiables que de otro modo estarían fuera de la red.
Ejemplos y fuente
Para usar esta función, los fabricantes de dispositivos deben implementar las interfaces HAL de proveedor y suplicante de Wi-Fi.
En Android 13, la interfaz de Supplicant usa AIDL para la definición de la HAL. En Android 14 y versiones posteriores, la interfaz de la HAL del proveedor usa AIDL. En Android 12 y versiones anteriores, las interfaces de la HAL de Supplicant y del proveedor se definen con HIDL.
Se requieren las siguientes superficies de HAL de Wi-Fi para emplear la función de Wi-Fi Direct:
hardware/interfaces/wifi/aidlohardware/interfaces/wifi/1.3o versiones posterioreshardware/interfaces/wifi/supplicant/aidlohardware/interfaces/wifi/supplicant/1.2o versiones posteriores
Implementación
Los fabricantes de dispositivos deben proporcionar compatibilidad con el framework y con la HAL o el firmware:
- Framework:
- Código del AOSP
- Habilita Wi-Fi Direct: Requiere una marca de función
- Compatibilidad con la HAL de Wi-Fi Direct (P2P) (lo que implica compatibilidad con el firmware)
Para implementar esta función, los fabricantes de dispositivos implementan las interfaces HIDL o AIDL de Wi-Fi y habilitan la marca de función para Wi-Fi Direct. En device.mk, ubicado en device/<oem>/<device>, modifica la variable de entorno PRODUCT_COPY_FILES para incluir la compatibilidad con la función Wi-Fi Direct:
PRODUCT_COPY_FILES +=
frameworks/native/data/etc/android.hardware.wifi.direct.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.direct.xml
Todos los demás requisitos para admitir Wi-Fi Direct se incluyen en el AOSP.
Aleatorización de MAC
Android requiere que la dirección del dispositivo y la dirección de la interfaz de Wi-Fi Direct se aleatoricen. Deben ser diferentes de la dirección MAC real del dispositivo y cumplir con los siguientes requisitos:
- La dirección del dispositivo Wi-Fi Direct debe ser aleatoria en la creación de la interfaz si no hay un grupo persistente guardado. De lo contrario, la dirección del dispositivo debe seguir usando la última dirección MAC generada.
- La dirección de la interfaz Wi-Fi Direct, también conocida como dirección de grupo, debe aleatorizarse cada vez que se establece una conexión.
La aleatorización de MAC de Wi-Fi Direct se implementa en "wpa_supplicant" y se controla con dos configuraciones, p2p_device_random_mac_addr y p2p_interface_random_mac_addr.
Para habilitar esta función, los fabricantes de dispositivos deben hacer lo siguiente:
- Implementa la API de suplicante de Wi-Fi
ISupplicantP2pIface::setMacRandomization. Según la interfaz implementada, se encuentra en lo siguiente:hardware/interface/wifi/supplicant/1.2para HIDLhardware/interface/wifi/supplicant/aidlpara AIDL
- Establece
config_wifi_p2p_mac_randomization_supportedcomo "true" en una superposición personalizada del dispositivo.
Validación
Android proporciona un conjunto de pruebas de unidades, pruebas del Conjunto de pruebas de compatibilidad (CTS) y pruebas del Verificador del CTS para validar la función de Wi-Fi Direct. Wi-Fi Direct también se puede probar con el conjunto de pruebas de proveedores (VTS).
Pruebas de unidades
Verifica el paquete de Wi-Fi Direct con las siguientes pruebas.
Pruebas de servicio:
atest com.android.server.wifi.p2pPruebas de administrador:
atest android.net.wifi.p2pPruebas del Conjunto de pruebas de compatibilidad (CTS)
Usa las pruebas de CTS para validar la función de Wi-Fi Direct. El CTS detecta cuando la función está habilitada y, automáticamente, incluye las pruebas asociadas.
Para activar las pruebas de CTS, ejecuta el siguiente comando:
atest android.net.wifi.p2p.ctsPruebas del verificador del CTS
Las pruebas del verificador del CTS validan el comportamiento de Wi-Fi Direct con dos dispositivos: un dispositivo de prueba y un dispositivo conocido como bueno. Para ejecutar las pruebas, abre CTS Verifier y navega a la sección titulada Wi-Fi Direct Tests.