O recurso Wi-Fi Round Trip Time (RTT) no Android 9 permite que dispositivos compatíveis meçam a distância de outros dispositivos compatíveis: sejam eles pontos de acesso (APs) ou pares Wi-Fi Aware (se o Wi-Fi Aware for compatível no dispositivo). Esse recurso, construído com base no protocolo IEEE 802.11mc, permite que os aplicativos usem precisão e reconhecimento de localização aprimorados.
Exemplos e fonte
Para usar esse recurso, implemente a linguagem de design de interface de hardware Wi-Fi (HIDL) fornecida no Android Open Source Project (AOSP). No Android 8.0, 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 RTT: hardware/interfaces/wifi/1.0
ou posterior.
Você pode consultar o legado Wi-Fi HAL para ver como ele se correlaciona com a nova interface HIDL: hardware/libhardware_legacy/+/master/include/hardware_legacy/rtt.h .
Implementação
Para implementar o Wi-Fi RTT, você deve fornecer suporte à estrutura e HAL/firmware:
Estrutura:
- Código AOSP
- Ativar Wi-Fi RTT: requer um sinalizador de recurso
Suporte a Wi-Fi RTT (IEEE 802.11mc) HAL (o que implica suporte a firmware)
Para implementar este recurso, implemente o Wi-Fi HIDL e ative o sinalizador de recurso:
Em
device.mk
localizado emdevice/<oem>/<device>
, modifique a variável de ambientePRODUCT_COPY_FILES
para incluir suporte para o recurso Wi-Fi RTT:PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.wifi.rtt.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.rtt.xml
Caso contrário, tudo o que é necessário para esse recurso está incluído no AOSP.
Randomização MAC
Para aumentar a privacidade, o endereço MAC usado durante as transações Wi-Fi RTT deve ser aleatório, ou seja, não deve corresponder ao endereço MAC nativo da interface Wi-Fi. No entanto, como exceção, quando um dispositivo está associado a um AP, ele pode usar o endereço MAC ao qual está associado para quaisquer transações RTT com esse AP ou com outros APs.
Validação
Existem testes do Android Compatibility Test Suite (CTS) para esse recurso. O CTS detecta quando o recurso está habilitado e inclui automaticamente os testes associados. Esse recurso também pode ser testado usando o Vendor Test Suite (VTS) e o act/sl4a , um conjunto de testes que realiza extensos testes de integração.
Testes de unidade
Os testes do pacote Wi-Fi RTT são executados usando:
Testes de serviço:
atest com.android.server.wifi.rtt
Testes do gerente:
atest android.net.wifi.rtt
Testes de integração (ACTS)
O conjunto de testes actos/sl4a, descrito em /tools/test/connectivity/acts_tests/tests/google/wifi/rtt/README.md
, fornece testes funcionais, de desempenho e de estresse.
CTS
Existem testes do Android Compatibility Test Suite (CTS) para esse recurso. O CTS detecta quando o recurso está habilitado e inclui automaticamente os testes associados. Um ponto de acesso que suporte Wi-Fi RTT (IEEE 802.11mc) deve estar dentro do alcance do dispositivo em teste.
Os testes CTS podem ser acionados usando:
atest WifiRttTest
Calibração
Para que o Wi-Fi RTT tenha um bom desempenho, os intervalos retornados no protocolo 802.11mc são idealmente precisos dentro do Key Performance Indicator (KPI). Para o erro de CDF de 90%, nas larguras de banda listadas, espera-se que o KPI recomendado para uma estimativa de intervalo tenha as seguintes tolerâncias:
- 80MHz: 2 metros
- 40MHz: 4 metros
- 20MHz: 8 metros
Para garantir que a implementação do recurso esteja funcionando corretamente, são necessários testes de calibração.
Isso pode ser alcançado comparando um alcance de verdade do solo com o alcance estimado do RTT em distâncias crescentes. Para conformidade básica, você deve validar sua solução em relação a um dispositivo conhecido por ser calibrado com RTT. A calibração da faixa deve ser testada sob as seguintes condições:
- Um grande laboratório aberto ou um corredor que não tenha muitos objetos de metal que podem resultar em ocorrências incomumente altas de multi-caminho.
- Pelo menos uma pista/caminho de linha de visão (LOS) estendendo-se por 25m.
- Marcadores de incrementos de 0,5 metros de uma extremidade da pista à outra.
- Um local para fixar um ponto de acesso compatível com RTT em uma extremidade do trilho montado 20 cm acima do piso e um suporte móvel para um telefone Android (ou outro dispositivo móvel Android em teste) que pode ser movido ao longo do trilho e alinhado com o Marcadores de 0,5m, também a 20cm acima do chão. Nota: Esta tarefa repetitiva pode ser realizada por um pequeno robô, mas um operador humano também está bem.
- 50 resultados de alcance devem ser registrados em cada marcador, juntamente com a distância do ponto de acesso. Estatísticas, como média de intervalo e variância, devem ser calculadas para cada posição do marcador.
A partir dos resultados na etapa 5, um gráfico pode ser desenhado para a verdade do terreno (eixo x) em relação ao intervalo estimado (eixo y) e uma linha de regressão de melhor ajuste estimada. A calibração ideal do dispositivo resultará em uma linha de gradiente 1,0, com deslocamento de 0,0 m no eixo y. Desvios desses valores são aceitáveis se estiverem dentro do KPI para a largura de banda correspondente. Se os resultados estiverem fora do KPI, o recurso do dispositivo deve ser recalibrado para trazer os resultados dentro da especificação do KPI.