Esta página descreve como testar, depurar e ajustar a implementação de Wi-Fi usando as ferramentas fornecidas no AOSP.
Teste
Para testar a estrutura Wi-Fi, o AOSP oferece uma combinação de testes de unidade, testes de integração (ACTS) e testes CTS.
Testes de unidade
O AOSP inclui testes funcionais e unitários para a estrutura Wi-Fi padrão: tanto para o Wi-Fi Manager (código do lado do aplicativo) quanto para o serviço Wi-Fi.
Testes do Gerenciador de Wi-Fi:
- Localizado em
packages/modules/Wifi/framework/tests/
Execute usando o seguinte executável de shell (leia o arquivo para obter mais opções de execução):
atest FrameworksWifiApiTests
Testes do serviço Wi-Fi:
- Localizado em
packages/modules/Wifi/service/tests/wifitests/
Execute usando o seguinte executável de shell (leia o arquivo para obter mais opções de execução):
atest FrameworksWifiTests
Pacote de teste de comunicações do Android
O Android Comms Test Suite (ACTS) realiza testes automatizados de pilhas de conectividade, como Wi-Fi, Bluetooth e serviços de celular. A ferramenta de teste requer adb e Python e pode ser encontrada em tools/test/connectivity/acts
.
Os testes ACTS para Wi-FI são encontrados em tools/test/connectivity/acts_tests/tests/google/wifi
, com um exemplo de configuração de teste no mesmo diretório: example_config.json
.
Testes CTS
O Compatibility Test Suite (CTS) inclui testes para a estrutura 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 seja 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 melhora o registro de Wi-Fi para facilitar a depuração de problemas de Wi-Fi. No Android 9 ou superior, os buffers de anel de driver/firmware podem estar sempre ativados. Relatórios de bugs podem ser acionados automaticamente quando um estado ruim é detectado (somente em builds userdebug e eng). Quando o Wi-Fi HAL (versão 1.2 ou superior) é usado, os buffers de depuração do firmware são armazenados no HAL em vez da estrutura para economizar custos de IPC.
Implementação
Para uma implementação de referência, consulte a implementação padrão no HAL do fornecedor.
Você pode desabilitar o log de firmware definindo o recurso, config_wifi_enable_wifi_firmware_debugging
, como false.
Teste de integração (ACTS)
O teste de integração pode ser encontrado em /tools/test/connectivity/acts_tests/tests/google/wifi/WifiDiagnosticsTest.py
.
Os dumps de firmware verificados são mantidos no diretório tombstone apropriado em flash para compilações de userdebug. O Dumpstate coleta deste diretório ao criar um relatório de bug.
Teste manual
Execute este teste manual para verificar se os arquivos antigos no diretório tombstone estão sendo excluídos.
- Ative o Wi-Fi.
- Conectar a uma rede.
- Gere um relatório de bug .
- Inspecione o arquivo zip do relatório de bug e verifique se
/lshal-debug/android.hardware.wifi@1.2__IWifi_default.txt
contém os logs de firmware arquivados.
Ajuste de configuração
Para controlar a intensidade do sinal em que um dispositivo se associa ou desassocia de uma rede, a estrutura 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 (onde o parâmetro bad
se refere ao limite 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 ser sobrecarregados usando 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 usando comandos adb. (Como alternativa, você pode criar uma compilação com novas sobreposições, mas o uso de comandos adb fornece uma resposta de teste mais rápida.)
adb shell settings put global wifi_score_params \
[rssi2|rssi5]=<bad>:<entry>:<low>:<good>
Por exemplo, o comando a seguir configura novos parâmetros de limite (os valores usados neste comando de exemplo são os padrões configurados na base de código 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 internos (ou seja, remover as substituições), use o seguinte comando adb:
adb shell settings delete global wifi_score_params