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 una combinazione di test di unità e CTS.

Test delle unità

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

Test di Gestione Wi-Fi:

  • Si trova presso packages/modules/Wifi/framework/tests/
  • Esegui utilizzando la seguente shell eseguibile (leggi il file per ulteriori opzioni di esecuzione):

    atest FrameworksWifiApiTests
    

Test del servizio Wi-Fi:

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

    atest FrameworksWifiTests
    

Test CTS

La Compatibility Test Suite (CTS) include test per il framework Wi-Fi. Si trovano in cts/tests/tests/net/src/android/net/wifi. I test CTS Wi-Fi richiedono che il dispositivo in 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 il logging del Wi-Fi per semplificare il debug dei problemi relativi al Wi-Fi. In Android 9 o versioni successive, gli anelli di buffer del driver o del firmware possono essere sempre attivi. I report di bug possono essere attivati automaticamente quando viene rilevato uno stato non valido (solo nelle build userdebug ed eng). Quando viene utilizzato l'HAL Wi-Fi (AIDL o HIDL versione 1.2 o successiva), i buffer di debug del firmware vengono memorizzati nell'HAL anziché nel framework per risparmiare sui costi IPC.

Implementazione

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

Puoi disattivare il logging 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 delle tombstone vengano eliminati.

  1. Attiva il Wi-Fi.
  2. Collegarti a una rete.
  3. Genera una segnalazione di bug.
  4. Controlla il file ZIP del report di 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 a cui un dispositivo si associa o si dissocia da una rete, il framework Wi-Fi utilizza le soglie RSSI di entrata e uscita.

Le soglie di entrata e uscita vengono memorizzate come parametri di configurazione sovraccaricabili con i seguenti nomi (dove il parametro bad si riferisce alla soglie di 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 sono 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 tramite i comandi ADB. In alternativa, puoi creare una build con nuovi overlay, 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 nel 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