Cette page explique comment tester, déboguer et ajuster l'implémentation du Wi-Fi à l'aide des outils fournis dans AOSP.
Tests
Pour tester le framework Wi-Fi, l'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 :
- Situé à
packages/modules/Wifi/framework/tests/
Exécutez à l'aide de l'exécutable shell suivant (lisez le fichier pour plus d'options d'exécution) :
atest FrameworksWifiApiTests
Tests du service Wi-Fi :
- Situé à
packages/modules/Wifi/service/tests/wifitests/
Exécutez à l'aide de l'exécutable shell suivant (lisez le fichier pour plus d'options d'exécution) :
atest FrameworksWifiTests
Tests CTS
La suite de tests de compatibilité (CTS, Compatibility Test Suite) 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 exigent que l'appareil testé soit associé à un point d'accès au début de l'exécution du test.
Options de journalisation améliorées pour le débogage
Android 9 a amélioré la journalisation du Wi-Fi pour faciliter le débogage des problèmes de Wi-Fi. Dans Android 9 ou version ultérieure, les tampons circulaires de pilote ou de 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 versions userdebug et eng). Lorsque le HAL Wi-Fi (AIDL ou HIDL version 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 d'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 des fichiers fantômes sont supprimés.
- Activez le Wi-Fi.
- Connectez-vous à un réseau.
- Générez un rapport de bug.
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 :
- Section AIDL HAL :
dumpsys
du fichier bugreport principal - HIDL HAL :
/lshal-debug/android.hardware.wifi@1.x::IWifi_default.txt
- Section AIDL HAL :
Réglage de la configuration
Pour contrôler l'intensité du signal à laquelle un appareil s'associe à un réseau ou s'en dissocie, le framework Wi-Fi utilise les seuils RSSI entry et exit.
Les seuils d'entrée et de sortie 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 de sortie) :
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 un build avec de nouvelles couches, mais l'utilisation des 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 codebase AOSP) :
adb shell settings put global wifi_score_params \
rssi2=-85:-85:-73:-60,rssi5=-82:-82:-70:-57
Pour restaurer les valeurs des paramètres intégrés (c'est-à-dire supprimer les remplacements), utilisez la commande adb suivante :
adb shell settings delete global wifi_score_params