Test, debug e ottimizzazione del Wi-Fi

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

Test

Per testare il framework Wi-Fi, AOSP fornisce un mix di test unitari, test di integrazione (ACTS) e test CTS.

Test unitari

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

Test di Gestione Wi-Fi:

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

    atest FrameworksWifiApiTests
    

Test del servizio Wi-Fi:

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

    atest FrameworksWifiTests
    

Suite di test per le comunicazioni Android

Android Comms Test Suite (ACTS) esegue test automatizzati di stack di connettività, come Wi-Fi, Bluetooth e servizi cellulari. Lo strumento di test richiede adb e Python e può essere trovato in tools/test/connectivity/acts .

I test ACTS per Wi-FI si trovano in tools/test/connectivity/acts_tests/tests/google/wifi , con una configurazione di test di esempio nella stessa directory: example_config.json .

Prove CTS

La Compatibility Test Suite (CTS) include test per il framework Wi-Fi. Questi si trovano in cts/tests/tests/net/src/android/net/wifi . I test Wi-Fi CTS richiedono che il dispositivo sottoposto a test sia associato a un punto di accesso all'inizio del test.

Opzioni di registrazione migliorate per il debug

Android 9 ha migliorato la registrazione Wi-Fi per semplificare il debug dei problemi Wi-Fi. In Android 9 o versioni successive, i buffer ad anello del driver/firmware possono essere sempre attivi. Le segnalazioni di bug possono essere attivate automaticamente quando viene rilevato uno stato errato (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 archiviati nell'HAL anziché nel framework per risparmiare sui costi IPC.

Implementazione

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

È possibile disabilitare la registrazione del firmware impostando la risorsa config_wifi_enable_wifi_firmware_debugging su false.

Prova di integrazione (ACTS)

Il test di integrazione è disponibile in /tools/test/connectivity/acts_tests/tests/google/wifi/WifiDiagnosticsTest.py .

I dump del firmware verificati vengono mantenuti nella directory della rimozione definitiva appropriata in Flash per le build userdebug. Dumpstate raccoglie da questa directory durante la creazione di una segnalazione di bug.

Prova manuale

Esegui questo test manuale per verificare che i vecchi file nella directory della rimozione definitiva vengano eliminati.

  1. Attiva il Wi-Fi.
  2. Connettersi a una rete.
  3. Genera una segnalazione di bug .
  4. Esaminare il file zip della segnalazione di bug e verificare che esistano i registri del firmware archiviati. I registri si trovano nei seguenti percorsi:

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

Ottimizzazione della configurazione

Per controllare la potenza del segnale con cui un dispositivo si associa o si dissocia da una rete, il framework Wi-Fi utilizza le soglie RSSI di entrata e di uscita .

Le soglie di ingresso e di uscita vengono archiviate 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 sono archiviati in <root>/frameworks/base/core/res/res/values/config.xml e possono essere sovraccaricati utilizzando il file 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 nuovi overlay, ma l'utilizzo dei comandi adb fornisce tempi di test più rapidi.)

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

Ad esempio, il comando seguente 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) utilizzare il seguente comando adb:

adb shell settings delete global wifi_score_params