Consciente de Wi-Fi

La función Wi-Fi Aware agregada en Android 8.0 permite que los dispositivos compatibles se descubran, conecten y alcancen (agregado en Android 9) entre sí directamente usando el protocolo Wi-Fi Aware sin acceso a Internet o red celular. Esta función, basada en la especificación Wi-Fi Aware de Wi-Fi Alliance (WFA) (versiones 2.0 y 3.0), permite compartir fácilmente datos de alto rendimiento entre dispositivos y aplicaciones 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 el Lenguaje de diseño de interfaz de hardware Wi-Fi (HIDL) proporcionado en el Proyecto de código abierto de Android (AOSP). HIDL reemplaza la estructura anterior de capa de abstracción de hardware (HAL) que se usaba para agilizar las implementaciones mediante la especificación de tipos y llamadas a métodos recopilados en interfaces y paquetes.

Siga Wi-Fi HIDL para emplear la función Wi-Fi Aware: hardware/interfaces/wifi/1.2 o superior. La superficie Wi-Fi Aware HAL es muy grande; el archivo hardware/interfaces/wifi/1.2/README-NAN.md describe el subconjunto que actualmente utiliza el marco.

Puede hacer referencia a la HAL Wi-Fi heredada para ver cómo se correlaciona con la nueva interfaz HIDL: hardware/libhardware_legacy/+/master/include/hardware_legacy/wifi_nan.h .

Implementación

Los fabricantes de dispositivos deben proporcionar compatibilidad con framework y HAL/firmware:

  • Marco de referencia:
    • código AOSP
    • Habilitar consciente: requiere un indicador de función y un indicador de compilación HIDL
  • Compatibilidad con Wi-Fi Aware (NAN) HAL (lo que implica compatibilidad con firmware)

Para implementar esta función, los fabricantes de dispositivos implementan Wi-Fi HIDL y habilitan dos indicadores de funciones:

  • En BoardConfig.mk o BoardConfig-common.mk ubicado en device/<oem>/<device> , agregue el siguiente indicador:

    WIFI_HIDL_FEATURE_AWARE := true
    
  • 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 Aware:

    PRODUCT_COPY_FILES +=
    frameworks/native/data/etc/android.hardware.wifi.aware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.aware.xml
    

Wi-Fi Aware incluye rango a dispositivos pares usando el protocolo IEEE 802.11mc, también conocido como Round Trip Time (RTT). Esta subfunción de Wi-Fi Aware está condicionada a que el dispositivo admita la función Wi-Fi RTT, es decir, requiere que el dispositivo admita tanto Wi-Fi Aware como Wi-Fi RTT. Para obtener más detalles, consulte Wi-Fi RTT .

De lo contrario, todo lo necesario para esta función está incluido en AOSP.

El indicador WIFI_HIDL_FEATURE_AWARE se ignora si se especifica el indicador WIFI_HAL_INTERFACE_COMBINATIONS . Para obtener más información, consulte Simultaneidad de múltiples interfaces Wi-Fi .

Aleatorización MAC

Android requiere que la dirección MAC de Wi-Fi Aware Discovery (NMI) y las interfaces de datos (NDP) sean aleatorias y no sean idénticas a la verdadera dirección MAC del dispositivo. Las direcciones MAC deben ser:

  • Aleatorizado cada vez que se habilita o se vuelve a habilitar Wi-Fi Aware.
  • Cuando Wi-Fi Aware está habilitado, la dirección MAC debe asignarse aleatoriamente a un intervalo regular configurado por el parámetro NanConfigRequest.macAddressRandomizationIntervalSec NanConfigRequest.macAddressRandomizationIntervalSec. Esto está configurado por el marco de forma predeterminada en 30 minutos.

Validación

Android proporciona un conjunto de pruebas unitarias, pruebas de integración (ACTS), pruebas de conjunto de pruebas de compatibilidad (CTS) y pruebas de verificador CTS para validar la función Wi-Fi Aware. Wi-Fi Aware también se puede probar con Vendor Test Suite (VTS) .

Pruebas unitarias

Las pruebas del paquete Wi-Fi Aware se ejecutan usando:

Pruebas de servicio:

atest com.android.server.wifi.aware

Pruebas de gerente:

atest android.net.wifi.aware

Pruebas de integración (ACTS)

El conjunto de pruebas acts/sl4a , descrito en tools/test/connectivity/acts_tests/tests/google/wifi/aware/README.md , proporciona pruebas funcionales, de rendimiento y de estrés.

Pruebas de conjunto de pruebas de compatibilidad (CTS)

Utilice las pruebas CTS para validar la función Wi-Fi Aware. CTS detecta cuando la función está habilitada e incluye automáticamente las pruebas asociadas.

Las pruebas CTS se pueden activar usando:

atest SingleDeviceTest

Pruebas del verificador CTS

Las pruebas de CTS Verifier validan el comportamiento de Wi-Fi Aware usando dos dispositivos: un dispositivo de prueba y un dispositivo en buen estado. Para ejecutar las pruebas, abra CTS Verifier y navegue a la sección titulada Pruebas de reconocimiento de Wi-Fi.