Testare, eseguire il debug e ottimizzare il Wi-Fi

Questa pagina descrive come testare, eseguire il debug e ottimizzare l'implementazione del Wi-Fi utilizzando gli strumenti forniti in AOSP.

Test

Per testare il framework Wi-Fi, AOSP fornisce un mix di test delle unità e test CTS.

Test delle unità

AOSP include test funzionali e delle unità per il framework Wi-Fi predefinito: sia per Wi-Fi Manager (codice lato app) sia per il servizio Wi-Fi.

Test di Wi-Fi Manager:

  • Situato a packages/modules/Wifi/framework/tests/
  • Esegui utilizzando il seguente eseguibile della shell (leggi il file per altre opzioni di esecuzione):

    atest FrameworksWifiApiTests

Test del servizio Wi-Fi:

  • Situato a packages/modules/Wifi/service/tests/wifitests/
  • Esegui utilizzando il seguente eseguibile della shell (leggi il file per altre opzioni di esecuzione):

    atest FrameworksWifiTests

Test CTS

La suite di test di compatibilità (CTS) include test per il framework Wi-Fi. Questi si trovano in cts/tests/tests/net/src/android/net/wifi. I test CTS Wi-Fi richiedono che il dispositivo in fase di test sia associato a un punto di accesso all'inizio dell'esecuzione del test.

Opzioni di logging avanzate per il debug

Android 9 ha migliorato la registrazione del Wi-Fi per semplificare il debug dei problemi relativi al Wi-Fi. In Android 9 o versioni successive, i buffer circolari dei driver o del firmware possono essere sempre attivi. I report sui bug possono essere attivati automaticamente quando viene rilevato uno stato anomalo (solo nelle build userdebug e eng). Quando viene utilizzato l'HAL Wi-Fi (versione AIDL o HIDL 1.2 o successive), i buffer di debug del firmware vengono archiviati nell'HAL anziché nel framework per ridurre i costi IPC.

Implementazione

Per un'implementazione di riferimento, consulta l'implementazione predefinita nell'HAL del fornitore.

Puoi disattivare la registrazione del firmware impostando la risorsa config_wifi_enable_wifi_firmware_debugging su false.

Test manuale

Esegui questo test manuale per verificare che i vecchi file nella directory tombstone vengano eliminati.

  1. Attiva il Wi-Fi.
  2. Connettiti a una rete.
  3. Genera una segnalazione di bug.
  4. Ispeziona il file ZIP del report sui bug e verifica che i log del firmware archiviati esistano. I log si trovano nelle seguenti posizioni:

    • AIDL HAL: sezione dumpsys del file principale della segnalazione di bug
    • HIDL HAL: /lshal-debug/android.hardware.wifi@1.x::IWifi_default.txt

Ottimizzazione della configurazione

Per controllare l'intensità del segnale in corrispondenza della quale un dispositivo si associa o si dissocia da una rete, il framework Wi-Fi utilizza le soglie RSSI di ingresso e uscita.

Le soglie di ingresso e uscita vengono memorizzate come parametri di configurazione sovraccaricabili con i seguenti nomi (dove il parametro bad si riferisce alla soglia RSSI di uscita):

  • 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

I parametri vengono memorizzati in <root>/frameworks/base/core/res/res/values/config.xml e possono essere sovraccaricati utilizzando il file di overlay <root>/device/<dev_dir>/overlay/frameworks/base/core/res/res/values/config.xml.

Puoi testare nuove soglie configurando il dispositivo utilizzando i comandi adb. In alternativa, puoi creare una build con nuove sovrapposizioni, ma l'utilizzo dei comandi adb consente di eseguire i test più rapidamente.

adb shell settings put global wifi_score_params \
                             [rssi2|rssi5]=<bad>:<entry>:<low>:<good>

Ad esempio, il seguente comando configura nuovi parametri di soglia (i valori utilizzati in questo comando di esempio sono i valori predefiniti configurati nella codebase AOSP):

adb shell settings put global wifi_score_params \
                       rssi2=-85:-85:-73:-60,rssi5=-82:-82:-70:-57

Per ripristinare i valori dei parametri integrati (ovvero rimuovere le sostituzioni), utilizza il seguente comando adb:

adb shell settings delete global wifi_score_params