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 utilizando el protocolo Wi-Fi Direct sin acceso a Internet o a la red celular. Esta característica, basada en la especificación Wi-Fi Direct de Wi-Fi Alliance (WFA), permite compartir datos de alto rendimiento entre dispositivos y aplicaciones confiables que de otro modo estarían fuera de la red.
Ejemplos y fuente
Para utilizar esta función, los fabricantes de dispositivos deben implementar las interfaces HAL de proveedor y solicitante de Wi-Fi.
En Android 13, la interfaz Supplicant usa AIDL para la definición HAL. En Android 14 y versiones posteriores, la interfaz Vendor HAL utiliza AIDL. En Android 12 y versiones anteriores, las interfaces HAL del solicitante y del proveedor se definen mediante HIDL.
Se requieren las siguientes superficies Wi-Fi HAL para emplear la función Wi-Fi Direct:
-
hardware/interfaces/wifi/aidl
ohardware/interfaces/wifi/1.3
o superior -
hardware/interfaces/wifi/supplicant/aidl
ohardware/interfaces/wifi/supplicant/1.2
o superior
Implementación
Los fabricantes de dispositivos deben proporcionar soporte tanto de marco como de HAL/firmware:
- Estructura:
- código AOSP
- Habilitar Wi-Fi Direct: requiere una marca de función
- Compatibilidad con Wi-Fi Direct (P2P) HAL (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 el indicador de función para Wi-Fi Direct. En device.mk
ubicado en device/<oem>/<device>
, modifique 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 Wi-Fi Direct y la dirección de la interfaz sean aleatorias. Deben ser diferentes de la verdadera dirección MAC del dispositivo y deben cumplir los siguientes requisitos:
- La dirección del dispositivo Wi-Fi Direct debe ser aleatoria al crear la interfaz si no hay ningún grupo persistente guardado; de lo contrario, la dirección del dispositivo debe seguir utilizando 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 Wi-Fi Direct MAC se implementa en 'wpa_supplicant' y se controla mediante dos configuraciones, p2p_device_random_mac_addr
y p2p_interface_random_mac_addr
.
Para habilitar esta función, los fabricantes de dispositivos deben:
- Implemente la API de Wi-Fi Supplicant
ISupplicantP2pIface::setMacRandomization
. Dependiendo de la interfaz implementada esta se encuentra en:-
hardware/interface/wifi/supplicant/1.2
para HIDL -
hardware/interface/wifi/supplicant/aidl
para AIDL
-
- Establezca
config_wifi_p2p_mac_randomization_supported
en "verdadero" en una superposición personalizada del dispositivo.
Validación
Android proporciona un conjunto de pruebas unitarias, pruebas de integración (Android Connectivity Test Suite o ACTS), pruebas de Compatibility Test Suite (CTS) y pruebas CTS Verifier para validar la función Wi-Fi Direct. Wi-Fi Direct también se puede probar utilizando Vendor Test Suite (VTS) .
Pruebas unitarias
Verifique el paquete Wi-Fi Direct mediante las siguientes pruebas.
Pruebas de servicio:
atest com.android.server.wifi.p2p
Pruebas de gerente:
atest android.net.wifi.p2p
Pruebas de integración (ACTS)
El conjunto de pruebas ACTS Wi-FI Direct, ubicado en tools/test/connectivity/acts_tests/tests/google/wifi/p2p
, implementa pruebas funcionales de Wi-Fi Direct.
Pruebas del conjunto de pruebas de compatibilidad (CTS)
Utilice pruebas CTS para validar la función Wi-Fi Direct. CTS detecta cuando la función está habilitada e incluye automáticamente las pruebas asociadas.
Para activar las pruebas CTS, ejecute:
% atest android.net.wifi.p2p.cts
Pruebas del verificador CTS
Las pruebas de CTS Verifier validan el comportamiento de Wi-Fi Direct utilizando dos dispositivos: un dispositivo de prueba y un dispositivo en buen estado . Para ejecutar las pruebas, abra CTS Verifier y navegue hasta la sección titulada Pruebas de Wi-Fi Direct.