Tester, déboguer et régler le Wi-Fi

Cette page explique comment tester, déboguer et régler l'implémentation Wi-Fi à l'aide des outils fournis dans AOSP.

Tests

Pour tester le framework Wi-Fi, AOSP fournit un mélange de tests unitaires et de tests CTS.

Tests unitaires

AOSP inclut des tests fonctionnels et unitaires pour le framework Wi-Fi par défaut, à la fois pour le gestionnaire Wi-Fi (code côté application) et pour le service Wi-Fi.

Tests du gestionnaire Wi-Fi :

  • Emplacement : packages/modules/Wifi/framework/tests/
  • Exécution à l'aide de l'exécutable shell suivant (lisez le fichier pour connaître d'autres options d'exécution) :

    atest FrameworksWifiApiTests

Tests du service Wi-Fi :

  • Emplacement : packages/modules/Wifi/service/tests/wifitests/
  • Exécution à l'aide de l'exécutable shell suivant (lisez le fichier pour connaître d'autres options d'exécution) :

    atest FrameworksWifiTests

Tests CTS

La suite de tests de compatibilité (CTS) inclut des tests pour le framework Wi-Fi. Ils se trouvent dans cts/tests/tests/net/src/android/net/wifi. Les tests CTS Wi-Fi nécessitent que l'appareil testé soit associé à un point d'accès au début de l'exécution des tests.

Options de journalisation améliorées pour le débogage

Android 9 a amélioré la journalisation Wi-Fi pour faciliter le débogage des problèmes Wi-Fi. Sous Android 9 ou version ultérieure, les tampons en anneau du pilote ou du micrologiciel peuvent toujours être activés. Les rapports de bug peuvent être déclenchés automatiquement lorsqu'un état incorrect est détecté (uniquement dans les builds userdebug et eng). Lorsque le HAL Wi-Fi (version AIDL ou HIDL 1.2 ou ultérieure) est utilisé, les tampons de débogage du micrologiciel sont stockés dans le HAL au lieu du framework pour réduire les coûts IPC.

Implémentation

Pour obtenir une implémentation de référence, consultez l' implémentation par défaut dans le HAL du fournisseur.

Vous pouvez désactiver la journalisation du micrologiciel en définissant la ressource config_wifi_enable_wifi_firmware_debugging sur "false".

Test manuel

Exécutez ce test manuel pour vérifier que les anciens fichiers du répertoire tombstone sont supprimés.

  1. Activez le Wi-Fi.
  2. Connectez-vous à un réseau.
  3. Générez un rapport de bug.
  4. Inspectez le fichier ZIP du rapport de bug et vérifiez que les journaux du micrologiciel archivés existent. Les journaux se trouvent aux emplacements suivants :

    • HAL AIDL : section dumpsys du fichier de rapport de bug principal
    • HAL HIDL : /lshal-debug/android.hardware.wifi@1.x::IWifi_default.txt

Réglage de la configuration

Pour contrôler la puissance du signal à laquelle un appareil s'associe ou se dissocie d'un réseau, le framework Wi-Fi utilise les seuils RSSI entry et exit.

Les seuils entry et exit sont stockés en tant que paramètres de configuration surchargeables avec les noms suivants (où le paramètre bad fait référence au seuil RSSI exit) :

  • 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

Les paramètres sont stockés dans <root>/frameworks/base/core/res/res/values/config.xml et peuvent être surchargés à l'aide du fichier de superposition <root>/device/<dev_dir>/overlay/frameworks/base/core/res/res/values/config.xml.

Vous pouvez tester de nouveaux seuils en configurant l'appareil à l'aide de commandes adb. (Vous pouvez également créer une build avec de nouvelles superpositions, mais l'utilisation de commandes adb permet de tester plus rapidement.)

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

Par exemple, la commande suivante configure de nouveaux paramètres de seuil (les valeurs utilisées dans cet exemple de commande sont les valeurs par défaut configurées dans la base de code AOSP) :

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

Pour rétablir les valeurs de paramètre intégrées (c'est-à-dire supprimer les remplacements), utilisez la commande adb suivante :

adb shell settings delete global wifi_score_params