O recurso Wi-Fi Aware adicionado ao Android 8.0 permite que dispositivos compatíveis descubram, conectem e alcancem (adicionados no Android 9) uns aos outros diretamente usando o protocolo Wi-Fi Aware sem acesso à Internet ou rede celular. Esse recurso, desenvolvido com base na especificação Wi-Fi Aware da Wi-Fi Alliance (WFA) (versões 2.0 e 3.0), permite o compartilhamento fácil de dados de alto rendimento entre dispositivos e aplicativos confiáveis que estão fora da rede.
Exemplos e fonte
Para usar esse recurso, os fabricantes de dispositivos devem implementar a linguagem de design de interface de hardware Wi-Fi (HIDL) fornecida no Android Open Source Project (AOSP). HIDL substitui a estrutura anterior de HAL (Hardware Abstraction Layer) usada para simplificar implementações especificando tipos e chamadas de método coletadas em interfaces e pacotes.
Siga o Wi-Fi HIDL para empregar o recurso Wi-Fi Aware: hardware/interfaces/wifi/1.2 ou superior. A superfície do Wi-Fi Aware HAL é muito grande; o arquivo hardware/interfaces/wifi/1.2/README-NAN.md descreve o subconjunto que está atualmente em uso pelo framework.
Você pode fazer referência ao legado Wi-Fi HAL para ver como ele se correlaciona com a nova interface HIDL: hardware/libhardware_legacy/+/master/include/hardware_legacy/wifi_nan.h .
Implementação
Os fabricantes de dispositivos precisam fornecer suporte de estrutura e HAL/firmware:
- Estrutura:
- Código AOSP
- Enable Aware: Requer um sinalizador de recurso e um sinalizador de compilação HIDL
- Suporte a Wi-Fi Aware (NAN) HAL (o que implica suporte a firmware)
Para implementar esse recurso, os fabricantes de dispositivos implementam o Wi-Fi HIDL e habilitam dois sinalizadores de recursos:
Em
BoardConfig.mk
ouBoardConfig-common.mk
localizado emdevice/<oem>/<device>
, adicione o seguinte sinalizador:WIFI_HIDL_FEATURE_AWARE := true
Em
device.mk
localizado emdevice/<oem>/<device>
, modifique a variável de ambientePRODUCT_COPY_FILES
para incluir suporte para o recurso 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
O Wi-Fi Aware inclui dispositivos de alcance para peer usando o protocolo IEEE 802.11mc, também conhecido como Round Trip Time (RTT). Esse sub-recurso do Wi-Fi Aware é condicional ao dispositivo que suporta o recurso Wi-Fi RTT, ou seja, requer que o dispositivo suporte tanto o Wi-Fi Aware quanto o Wi-Fi RTT. Para obter mais detalhes, consulte Wi-Fi RTT .
Caso contrário, tudo o que é necessário para esse recurso está incluído no AOSP.
O sinalizador WIFI_HIDL_FEATURE_AWARE
será ignorado se o sinalizador WIFI_HAL_INTERFACE_COMBINATIONS
for especificado. Para obter mais informações, consulte Simultaneidade de várias interfaces Wi-Fi .
Randomização MAC
O Android exige que o endereço MAC da descoberta Wi-Fi Aware (NMI) e das interfaces de dados (NDPs) sejam aleatórios e não sejam idênticos ao verdadeiro endereço MAC do dispositivo. Os endereços MAC devem ser:
- Randomizado sempre que o Wi-Fi Aware é ativado ou reativado.
Quando o Wi-Fi Aware está habilitado, o endereço MAC deve ser randomizado em um intervalo regular configurado pelo parâmetro
NanConfigRequest.macAddressRandomizationIntervalSec
NanConfigRequest.macAddressRandomizationIntervalSec. Isso é configurado pela estrutura por padrão para ser 30 minutos.
Validação
O Android fornece um conjunto de testes de unidade, testes de integração (ACTS), testes do Compatibility Test Suite (CTS) e testes do CTS Verifier para validar o recurso Wi-Fi Aware. O Wi-Fi Aware também pode ser testado usando o Vendor Test Suite (VTS) .
Testes de unidade
Os testes do pacote Wi-Fi Aware são executados usando:
Testes de serviço:
atest com.android.server.wifi.aware
Testes do gerente:
atest android.net.wifi.aware
Testes de integração (ACTS)
O conjunto de testes acts/sl4a
, descrito em tools/test/connectivity/acts_tests/tests/google/wifi/aware/README.md
, fornece testes funcionais, de desempenho e de estresse.
Testes do Compatibility Test Suite (CTS)
Use os testes CTS para validar o recurso Wi-Fi Aware. O CTS detecta quando o recurso está habilitado e inclui automaticamente os testes associados.
Os testes CTS podem ser acionados usando:
atest SingleDeviceTest
Testes do Verificador CTS
Os testes do CTS Verifier validam o comportamento do Wi-Fi Aware usando dois dispositivos: um dispositivo de teste e um dispositivo em boas condições . Para executar os testes, abra o CTS Verifier e navegue até a seção intitulada Wi-Fi Aware Tests.