La función Wi-Fi Direct, también conocida como Wi-Fi P2P, permite que los dispositivos compatibles se descubran y se conecten entre sí directamente mediante el protocolo Wi-Fi Direct 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 de HAL del proveedor y solicitante de Wi-Fi.
En Android 13, la interfaz de Supplicant usa AIDL para la definición de 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 del solicitante y del proveedor se definen con HIDL.
Se requieren las siguientes plataformas de HAL de Wi-Fi para usar la función Wi-Fi Direct:
hardware/interfaces/wifi/aidl
ohardware/interfaces/wifi/1.3
o versiones posterioreshardware/interfaces/wifi/supplicant/aidl
ohardware/interfaces/wifi/supplicant/1.2
o versiones posteriores
Implementación
Los fabricantes de dispositivos deben proporcionar compatibilidad con el framework y la HAL o el firmware:
- Framework:
- Código del AOSP
- Habilita Wi-Fi Direct: Requiere una marca de función
- Compatibilidad con 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 Wi-Fi HIDL o AIDL 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 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 AOSP.
Aleatorización de MAC
Android requiere que la dirección del dispositivo y la dirección de la interfaz de Wi-Fi Direct sean aleatorias. 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 cuando se crea 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 ser aleatoria 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 parámetros de configuración, 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
ISupplicantP2pIface::setMacRandomization
de Wi-Fi Supplicant. Según la interfaz implementada, se encuentra en lo siguiente:hardware/interface/wifi/supplicant/1.2
para HIDLhardware/interface/wifi/supplicant/aidl
para AIDL
- Establece
config_wifi_p2p_mac_randomization_supported
en "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 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.p2p
Pruebas del administrador:
atest android.net.wifi.p2p
Pruebas del conjunto de pruebas de compatibilidad (CTS)
Usa pruebas de CTS para validar la función Wi-Fi Direct. CTS detecta cuándo se habilita la función y, luego, incluye automáticamente las pruebas asociadas.
Para activar las pruebas de CTS, ejecuta lo siguiente:
% atest android.net.wifi.p2p.cts
Pruebas 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.