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 fornece uma combinação de testes unitários, testes de integração (ACTS) e testes CTS.

Testes unitários

AOSP inclui testes funcionais e de unidade para a estrutura Wi-Fi padrão: tanto para o Gerenciador de Wi-Fi (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 shell (leia o arquivo para mais opções de execução):

    atest FrameworksWifiApiTests
    

Testes de serviço Wi-Fi:

  • Localizado em packages/modules/Wifi/service/tests/wifitests/
  • Execute usando o seguinte executável shell (leia o arquivo para mais opções de execução):

    atest FrameworksWifiTests
    

Conjunto de testes de comunicação 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 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 melhorou o registro de Wi-Fi para facilitar a depuração de problemas de Wi-Fi. No Android 9 ou superior, os ring buffers de driver/firmware podem estar sempre ativados. Relatórios de bugs podem ser acionados automaticamente quando um estado incorreto é detectado (somente em compilações userdebug e eng). Quando o HAL Wi-Fi (AIDL ou HIDL versão 1.2 ou superior) é usado, os buffers de depuração de firmware são armazenados no HAL em vez da estrutura para economizar custos de IPC.

Implementação

Para obter 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 de exclusão apropriado em flash para compilações de userdebug. 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 de exclusão estão sendo excluídos.

  1. Ligue 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 os logs de firmware arquivados existem. Os logs são encontrados nos seguintes locais:

    • AIDL HAL: seção dumpsys do arquivo principal de relatório de bugs
    • HIDL HAL: /lshal-debug/android.hardware.wifi@1.x::IWifi_default.txt

Ajuste de configuração

Para controlar a intensidade do sinal na qual um dispositivo se associa ou se 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 sobrecarregáveis ​​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 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 a seguir configura novos parâmetros de limite (os valores usados ​​neste comando de amostra 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 dos parâmetros integrados (ou seja, remover as substituições), use o seguinte comando adb:

adb shell settings delete global wifi_score_params