Teste, depuração e ajuste de Wi-Fi

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.

  1. Ative o Wi-Fi.
  2. Conectar a uma rede.
  3. Gere um relatório de bug .
  4. 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