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, desenvolvido com base no protocolo IEEE 802.11mc, permite que os aplicativos usem maior precisão e reconhecimento de localização.
Exemplos e fonte
Para usar esse recurso, implemente a interface HAL do fornecedor. No Android 14 e versões posteriores, a interface HAL do fornecedor é definida usando AIDL. No Android 13 e versões anteriores, a interface HAL do fornecedor é definida usando HIDL. No Android 8.0, o HIDL substituiu a estrutura anterior da Camada de Abstração de Hardware (HAL) usada para simplificar as implementações, especificando tipos e chamadas de métodos coletados em interfaces e pacotes.
Siga a interface Wi-Fi para utilizar o recurso Wi-Fi RTT. Dependendo de qual interface é implementada, isto é:
- AIDL:
hardware/interfaces/wifi/aidl
- HIDL:
hardware/interfaces/wifi/1.0
ou posterior.
Você pode consultar o HAL Wi-Fi herdado para ver como ele 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ê deve fornecer suporte de estrutura e HAL/firmware:
Estrutura:
- Código AOSP
- Habilitar Wi-Fi RTT: requer um sinalizador de recurso
Suporte Wi-Fi RTT (IEEE 802.11mc) HAL (o que implica suporte de firmware)
Para implementar esse recurso, implemente a interface Wi-Fi AIDL ou 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 este recurso está incluído no AOSP.
Randomização MAC
Para aumentar a privacidade, o endereço MAC utilizado durante as transações Wi-Fi RTT deve ser randomizado, 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, pode utilizar 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 acts/sl4a , um conjunto de testes que realiza extensos testes de integração.
Testes unitários
Os testes do pacote Wi-Fi RTT são executados usando:
Testes de serviço:
atest com.android.server.wifi.rtt
Testes de gerente:
atest android.net.wifi.rtt
Testes de integração (ACTS)
O conjunto de testes acts/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 CDF de 90%, nas larguras de banda listadas, espera-se que o KPI recomendado para uma estimativa de intervalo tenha as seguintes tolerâncias:
- 80 MHz: 2 metros
- 40MHz: 4 metros
- 20 MHz: 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 real com o alcance estimado do RTT em distâncias crescentes. Para obter conformidade básica, você deve validar sua solução em relação a um dispositivo conhecido como calibrado RTT. A calibração da faixa deve ser testada nas seguintes condições:
- Um grande laboratório aberto ou um corredor que não tenha muitos objetos metálicos pode resultar em ocorrências excepcionalmente altas de multipercurso.
- Pelo menos uma trilha/caminho de linha de visão (LOS) que se estende por 25 m.
- Marcadores com incrementos de 0,5 metros de uma extremidade à outra da pista.
- Um local para fixar um ponto de acesso compatível com RTT em uma extremidade do trilho montado 20 cm acima do chão e um suporte móvel para um telefone Android (ou outro dispositivo móvel Android em teste) que possa ser movido ao longo do trilho e alinhado com o Marcadores de 0,5m, também a 20cm do chão. Nota: Esta tarefa repetitiva pode ser executada por um pequeno robô, mas um operador humano também está bem.
- Devem ser registrados 50 resultados de variação em cada marcador, juntamente com a distância do ponto de acesso. Estatísticas, como média e variância do intervalo, devem ser calculadas para cada posição do marcador.
A partir dos resultados da etapa 5, um gráfico pode ser desenhado para a verdade básica (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,0m 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 deverá ser recalibrado para trazer os resultados dentro da especificação do KPI.