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í usando el protocolo Wi-Fi directo sin acceso a Internet o a la red móvil. Esta función, compilada según la especificación de Wi-Fi directo de Wi-Fi Alliance (WFA), permite compartir datos de alta capacidad de procesamiento entre dispositivos y apps de confianza 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 de Wi-Fi y del solicitante.
En Android 13, la interfaz del solicitante usa el AIDL para la definición de HAL. En Android 14 y versiones posteriores, la interfaz de la HAL del proveedor usa el AIDL. En Android 12 y versiones anteriores, las interfaces de HAL solicitante y proveedor se definen con HIDL.
Se requieren las siguientes superficies de HAL de Wi-Fi para emplear la función Wi-Fi Direct:
hardware/interfaces/wifi/aidl
ohardware/interfaces/wifi/1.3
o una versión posteriorhardware/interfaces/wifi/supplicant/aidl
ohardware/interfaces/wifi/supplicant/1.2
o una versión posterior
Implementación
Los fabricantes de dispositivos deben proporcionar compatibilidad con el framework y con HAL/firmware:
- Marco de trabajo:
- Código del AOSP
- Habilitar Wi-Fi directo: Requiere una marca de función.
- Compatibilidad con HAL para Wi-Fi directo (P2P), lo que implica compatibilidad con 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 directo. 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 directo:
```
PRODUCT_COPY_FILES +=
frameworks/native/data/etc/android.hardware.wifi.direct.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.direct.xml
```
AOSP incluye todos los demás requisitos de compatibilidad con Wi-Fi directo.
Aleatorización de MAC
Android requiere que la dirección del dispositivo y la dirección de la interfaz de Wi-Fi directo sean aleatorias. Deben ser diferentes de la dirección MAC verdadera del dispositivo y deben cumplir los siguientes requisitos:
- La dirección del dispositivo con Wi-Fi directo debe ser aleatoria durante 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 de Wi-Fi directo, 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 directo 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
ISupplicantP2pIface::setMacRandomization
del solicitante de Wi-Fi. Según la interfaz implementada, esto se encuentra en las siguientes ubicaciones:hardware/interface/wifi/supplicant/1.2
para HIDLhardware/interface/wifi/supplicant/aidl
para AIDL
- Configura
config_wifi_p2p_mac_randomization_supported
como "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 de CTS para validar la función Wi-Fi directo. También se puede probar Wi-Fi directo con el Conjunto de pruebas de proveedores (VTS).
Pruebas de unidades
Verifica el paquete de Wi-Fi directo mediante 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 del CTS para validar la función Wi-Fi directo. El CTS detecta cuándo la función está habilitada y, luego, incluye automáticamente las pruebas asociadas.
Para activar las pruebas del 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 directo con dos dispositivos: un dispositivo de prueba y uno bueno conocido. Para ejecutar las pruebas, abre el verificador del CTS y navega a la sección titulada Pruebas de Wi-Fi directo.