Testar, depurar e ajustar o Wi-Fi

Esta página descreve como testar, depurar e ajustar a implementação de Wi-Fi usando das ferramentas fornecidas no AOSP.

Teste

Para testar o framework Wi-Fi, o AOSP oferece uma combinação de testes de unidade e CTS.

Testes de unidade

O AOSP inclui testes funcionais e de unidade para o framework de Wi-Fi padrão: ambos para o Gerenciador de Wi-Fi (código do lado do app) e o serviço de Wi-Fi.

Testes do Wi-Fi Manager:

  • Localizado em packages/modules/Wifi/framework/tests/
  • Execute usando o executável de shell a seguir (leia o arquivo para conferir 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 executável de shell a seguir (leia o arquivo para conferir mais opções de execução):

    atest FrameworksWifiTests

Testes CTS

O conjunto de teste de compatibilidade (CTS) inclui testes para o framework Wi-Fi. Eles estão localizados em cts/tests/tests/net/src/android/net/wifi: Os testes de Wi-Fi CTS exigem dispositivo em teste seja associado a um ponto de acesso no início do teste correr.

Opções de registro aprimoradas para depuração

O Android 9 melhorou a geração de registros de Wi-Fi para facilitar a depuração de problemas de Wi-Fi. No Android 9 ou versões mais recentes, os buffers de anel de drivers ou firmware podem estar sempre ativados. Os relatórios de bugs podem gerar será acionado quando um estado inválido for detectado (somente em builds userdebug e eng). Quando a HAL de Wi-Fi (AIDL ou HIDL versão 1.2 ou superior) é usada, os buffers de depuração são armazenados na HAL em vez de no framework para economizar nos custos de IPC.

Implementação

Para uma implementação de referência, consulte a implementação padrão na HAL do fornecedor.

É possível desativar a geração de registros de firmware configurando o recurso config_wifi_enable_wifi_firmware_debugging, para falso.

Teste manual

Execute este teste manual para verificar se os arquivos antigos no tombstone directory estão sendo excluídos.

  1. Ative o Wi-Fi.
  2. Conecte-se a uma rede.
  3. Gere um relatório do bug.
  4. 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 do AIDL: seção dumpsys do arquivo principal de bugreport
    • HAL do HIDL: /lshal-debug/android.hardware.wifi@1.x::IWifi_default.txt

Ajustes de configuração

Para controlar a intensidade do sinal em que um dispositivo se associa ou se desconecta de uma rede, o framework do Wi-Fi usa os limites de 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 (em que o parâmetro bad se refere ao limite de RSSI 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 com comandos adb. Como alternativa, é possível criar um build com novas sobreposições, mas o uso de comandos adb oferece 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 no repositório 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 o método este comando adb:

adb shell settings delete global wifi_score_params