O recurso Tempo de retorno (RTT, na sigla em inglês) do Wi-Fi no Android 9 permite que os dispositivos compatíveis meçam a distância até outros dispositivos compatíveis, sejam eles pontos de acesso (APs, na sigla em inglês) ou outros pontos Wi-Fi Aware (se o Wi-Fi Aware for compatível com o dispositivo). Esse recurso, criado com base no protocolo IEEE 802.11mc, permite que os apps usem o reconhecimento e a precisão de local aprimorados.
Exemplos e origem
Para usar esse recurso, implemente a interface HAL do fornecedor. No Android 14 e versões mais recentes, a interface da HAL de fornecedor é definida usando AIDL. No Android 13 e versões anteriores, a interface da HAL do fornecedor é definida usando o HIDL. No Android 8.0, o HIDL substituiu a estrutura anterior da HAL, que era usada para simplificar as implementações, especificando tipos e chamadas de método coletadas em interfaces e pacotes.
Siga a interface do Wi-Fi para utilizar o recurso Wi-Fi RTT. Dependendo da interface implementada, isso pode ser:
- AIDL:
hardware/interfaces/wifi/aidl
- HIDL:
hardware/interfaces/wifi/1.0
ou mais recente.
Você pode consultar a HAL de Wi-Fi legada para ver como ela se correlaciona com as interfaces AIDL e HIDL: hardware/libhardware_legacy/+/main/include/hardware_legacy/rtt.h.
Implementação
Para implementar o Wi-Fi RTT, você precisa oferecer suporte a framework e HAL/firmware:
Estrutura:
- Código AOSP
- Ativar Wi-Fi RTT: exige uma sinalização de recurso
Suporte a HAL para Wi-Fi RTT (IEEE 802.11mc), o que implica suporte a firmware
Para implementar esse recurso, implemente a interface Wi-Fi AIDL ou HIDL e ative a flag de recurso:
No
device.mk
, localizado emdevice/<oem>/<device>
, modifique a variável de ambientePRODUCT_COPY_FILES
para incluir suporte ao 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 for necessário para esse recurso será incluído no AOSP.
Ordem aleatória de MAC
Para aumentar a privacidade, o endereço MAC usado durante as transações de Wi-Fi RTT precisa ser aleatório, ou seja, não pode 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 associado a ele para qualquer transação RTT com esse ou com outros APs.
Validação
Existem testes do conjunto de teste de compatibilidade (CTS) do Android para esse recurso. O CTS detecta quando o recurso está ativado e inclui automaticamente os testes associados. Esse recurso também pode ser testado usando o conjunto de teste de fornecedor (VTS, na sigla em inglês).
Testes de unidades
Os testes do pacote Wi-Fi RTT são executados usando:
Testes de serviço:
atest com.android.server.wifi.rtt
Testes do gerenciador:
atest android.net.wifi.rtt
CTS
Existem testes do conjunto de teste de compatibilidade (CTS) do Android para esse recurso. O CTS detecta quando o recurso está ativado e inclui automaticamente os testes associados. Um ponto de acesso compatível com Wi-Fi RTT (IEEE 802.11mc) precisa estar dentro do alcance do dispositivo em teste.
Os testes de CTS podem ser acionados usando:
atest WifiRttTest
Calibração
Para que o Wi-Fi RTT tenha uma boa performance, os intervalos retornados no protocolo 802.11mc precisam ser precisos no indicador principal de desempenho (KPI, na sigla em inglês). Para o erro de CDF de 90%, nas larguras de banda listadas, o KPI recomendado para uma estimativa de intervalo tem as seguintes tolerâncias:
- 80 MHz: 2 metros
- 40 MHz: 4 metros
- 20 MHz: 8 metros
Para garantir que a implementação do recurso funcione corretamente, é necessário fazer testes de calibração.
Para isso, compare um intervalo de informações empíricas com o intervalo estimado de RTT em distâncias cada vez maiores. Para conformidade básica, valide sua solução em um dispositivo conhecido por ser calibrado de RTT. A calibração do intervalo precisa ser testada sob as seguintes condições:
- Um grande laboratório aberto ou um corredor que não tenha muitos objetos metálicos que podem resultar em ocorrências excepcionalmente altas de vários caminhos.
- Pelo menos uma trilha ou caminho com linha de visão (LOS, na sigla em inglês) com extensão de 25 m.
- Marcadores de incrementos de 0,5 metro de uma extremidade à outra da pista.
Um local para guardar um ponto de acesso compatível com RTT em uma extremidade da faixa instalada 20 cm acima do chão e um suporte móvel para um smartphone Android (ou outro dispositivo móvel Android em teste) que possa ser movido ao longo da faixa e alinhado com os marcadores de 0,5 m, também a 20 cm acima do chão.
Registre 50 resultados de alcance em cada marcador, com a distância do ponto de acesso. As estatísticas, como média e variância do intervalo, precisam ser calculadas para cada posição do marcador.
Com base nos resultados da etapa 5, é possível traçar um gráfico para as informações empíricas (eixo x) em relação ao intervalo estimado (eixo y) e uma estimativa da linha de regressão de melhor ajuste. A calibração ideal do dispositivo vai resultar em uma linha de gradiente 1,0, com deslocamento de 0,0 m no eixo Y. Os desvios desses valores são aceitáveis se estiverem dentro do KPI da largura de banda correspondente. Se os resultados estiverem fora do KPI, o recurso do dispositivo precisará ser recalibrado para trazer os resultados para a especificação do KPI.