La función Wi-Fi Aware agregada en Android 8.0 permite que los dispositivos compatibles descubran, se conecten y alcancen (agregado en Android 9) entre sí directamente utilizando el protocolo Wi-Fi Aware sin acceso a Internet o red celular. Esta función, basada en la especificación Wi-Fi Alliance (WFA) Wi-Fi Aware (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 utilizar 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) utilizada para optimizar las implementaciones al especificar tipos y llamadas a métodos recopilados en interfaces y paquetes.
Siga el HIDL de Wi-Fi para emplear la función de reconocimiento de Wi-Fi: hardware / interfaces / wifi / 1.2 o superior. La superficie de Wi-Fi Aware HAL es muy grande; el archivo hardware / interfaces / wifi / 1.2 / README-NAN.md describe el subconjunto que está actualmente en uso por el marco.
Puede consultar 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 soporte tanto para el marco como para HAL / firmware:
- Marco de referencia:
- Código AOSP
- Habilitar Aware: Requiere una marca de función y una marca de compilación HIDL
- Compatibilidad con Wi-Fi Aware (NAN) HAL (que implica compatibilidad con firmware)
Para implementar esta función, los fabricantes de dispositivos implementan Wi-Fi HIDL y habilitan dos marcas de funciones:
En
BoardConfig.mk
oBoardConfig-common.mk
ubicados endevice/<oem>/<device>
, agregue la siguiente marca:WIFI_HIDL_FEATURE_AWARE := true
En
device.mk
ubicado endevice/<oem>/<device>
, modifique la variable de entornoPRODUCT_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 dispositivos de alcance que utilizan el protocolo IEEE 802.11mc, también conocido como Round Trip Time (RTT). Esta subfunción de Wi-Fi Aware depende de que el dispositivo admita la función Wi-Fi RTT, es decir, requiere que el dispositivo sea compatible con Wi-Fi Aware y 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 Concurrencia de múltiples interfaces de Wi-Fi .
Aleatorización MAC
Android requiere que la dirección MAC del descubrimiento de Wi-Fi Aware (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 cuando se habilita o vuelve a habilitar Wi-Fi Aware.
Cuando Wi-Fi Aware está habilitado, la dirección MAC debe ser aleatoria en 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 Compatibility Test Suite (CTS) y pruebas CTS Verifier para validar la función Wi-Fi Aware. Wi-Fi Aware también se puede probar utilizando Vendor Test Suite (VTS) .
Pruebas unitarias
Las pruebas del paquete Wi-Fi Aware se ejecutan mediante:
Pruebas de servicio:
atest com.android.server.wifi.aware
Pruebas de administrador:
atest android.net.wifi.aware
Pruebas de integración (ACTS)
El acts/sl4a
pruebas acts/sl4a
, descrito en tools/test/connectivity/acts/tests/google/wifi/aware/README.md
, proporciona pruebas funcionales, de rendimiento y de estrés.
Pruebas de Compatibility Test Suite (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 mediante:
atest SingleDeviceTest
Pruebas de verificador CTS
Las pruebas de CTS Verifier validan el comportamiento de Wi-Fi Aware utilizando dos dispositivos: un dispositivo de prueba y un dispositivo bueno conocido . Para ejecutar las pruebas, abra CTS Verifier y navegue hasta la sección titulada Pruebas compatibles con Wi-Fi.