Esta página descreve como testar, depurar e ajustar a implementação de Wi-Fi usando as ferramentas fornecidas no AOSP.
Testes
Para testar o framework de Wi-Fi, o AOSP oferece uma combinação de testes de unidade e CTS.
Testes de unidades
O AOSP inclui testes funcionais e de unidade para o framework de Wi-Fi padrão: tanto para o gerenciador de Wi-Fi (código do lado do app) quanto para o serviço de Wi-Fi.
Testes do Gerenciador de Wi-Fi:
- Localizado em
packages/modules/Wifi/framework/tests/
Execute usando o seguinte executável shell (leia o arquivo para ver mais opções de execução):
atest FrameworksWifiApiTests
Testes do serviço de Wi-Fi:
- Localizado em
packages/modules/Wifi/service/tests/wifitests/
Execute usando o seguinte executável shell (leia o arquivo para ver mais opções de execução):
atest FrameworksWifiTests
Testes CTS
O conjunto de teste de compatibilidade (CTS) inclui testes para o
framework de Wi-Fi. Eles estão localizados em
cts/tests/tests/net/src/android/net/wifi
. Os testes de Wi-Fi CTS exigem que o
dispositivo em teste esteja associado a um ponto de acesso no início da execução
do teste.
Opções de registro aprimoradas para depuração
O Android 9 aprimorou a geração de registros de Wi-Fi para facilitar a depuração de problemas. No Android 9 ou versões mais recentes, os buffers de anel do driver ou do firmware sempre podem estar ativados. Os relatórios de bugs podem ser acionados automaticamente quando um estado inadequado é detectado (somente em builds userdebug e eng). Quando a HAL de Wi-Fi (AIDL ou HIDL versão 1.2 ou mais recente) é usada, os buffers de depuração do firmware são armazenados na HAL em vez do framework para economizar nos custos de IPC.
Implementação
Para conferir uma implementação de referência, consulte a implementação padrão na HAL do fornecedor.
Para desativar a geração de registros de firmware, defina o recurso
config_wifi_enable_wifi_firmware_debugging
como falso.
Teste manual
Execute este teste manual para verificar se os arquivos antigos no diretório de tombstone estão sendo excluídos.
- Ative o Wi-Fi.
- Conecte-se a uma rede.
- Gere um relatório do bug.
Inspecione o arquivo ZIP do relatório do bug e verifique se os registros de firmware arquivados existem. Os registros são encontrados nos seguintes locais:
- HAL da AIDL: seção
dumpsys
do arquivo principal do relatório de bugs - HAL de HIDL:
/lshal-debug/android.hardware.wifi@1.x::IWifi_default.txt
- HAL da AIDL: seção
Ajuste de configuração
Para controlar a intensidade do sinal em que um dispositivo se associa ou se separa de uma rede, o framework de Wi-Fi usa os limites RSSI de entrada e saída.
Os limites de entrada e saída são armazenados como parâmetros de configuração
sobrecarregados com os seguintes nomes (em que o parâmetro bad
se refere ao
limite de RSSI de saída):
config_wifi_framework_wifi_score_bad_rssi_threshold_5GHz
config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz
config_wifi_framework_wifi_score_bad_rssi_threshold_24GHz
config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz
Os parâmetros são armazenados em
<root>/frameworks/base/core/res/res/values/config.xml
e podem ficar sobrecarregados
ao usar o arquivo de sobreposição
<root>/device/<dev_dir>/overlay/frameworks/base/core/res/res/values/config.xml
.
Você pode testar novos limites configurando o dispositivo com comandos adb. Você também pode criar um build com novas sobreposições, mas o uso de comandos adb oferece um retorno de teste mais rápido.
adb shell settings put global wifi_score_params \
[rssi2|rssi5]=<bad>:<entry>:<low>:<good>
Por exemplo, o comando abaixo configura novos parâmetros de limite. Os valores usados neste exemplo de comando são os padrões configurados na base de código do AOSP:
adb shell settings put global wifi_score_params \
rssi2=-85:-85:-73:-60,rssi5=-82:-82:-70:-57
Para restaurar os valores de parâmetros integrados (ou seja, remover as substituições), use este comando adb:
adb shell settings delete global wifi_score_params