Wi-Fi directo

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 o hardware/interfaces/wifi/1.3 o superior
  • hardware/interfaces/wifi/supplicant/aidl o hardware/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.