WLAN testen, Fehler beheben und optimieren

Auf dieser Seite wird beschrieben, wie Sie die WLAN-Implementierung mit den in AOSP bereitgestellten Tools testen, debuggen und optimieren.

Testen

Zum Testen des WLAN-Frameworks bietet AOSP eine Mischung aus Einheitentests und CTS-Tests.

Einheitentests

AOSP enthält Funktions- und Unittests für das Standard-WLAN-Framework, sowohl für den WLAN-Manager (App-seitiger Code) als auch für den WLAN-Dienst.

Tests für den WLAN-Manager:

  • Befindet sich in packages/modules/Wifi/framework/tests/
  • Führen Sie den folgenden Shell-Befehl aus (weitere Ausführungsoptionen finden Sie in der Datei):

    atest FrameworksWifiApiTests

Tests für WLAN-Dienste:

  • Befindet sich in packages/modules/Wifi/service/tests/wifitests/
  • Führen Sie den folgenden Shell-Befehl aus (weitere Ausführungsoptionen finden Sie in der Datei):

    atest FrameworksWifiTests

CTS-Tests

Die Compatibility Test Suite (CTS) enthält Tests für das WLAN-Framework. Sie befinden sich unter cts/tests/tests/net/src/android/net/wifi. Für die WLAN-CTS-Tests muss das zu testende Gerät zu Beginn des Testlaufs mit einem Access Point verbunden sein.

Erweiterte Logging-Optionen für die Fehlerbehebung

In Android 9 wurde die WLAN-Protokollierung verbessert, um die Behebung von WLAN-Problemen zu erleichtern. In Android 9 oder höher können Treiber- oder Firmware-Ringpuffer immer aktiviert sein. Fehlerberichte können automatisch ausgelöst werden, wenn ein fehlerhafter Zustand erkannt wird (nur in Userdebug- und Eng-Builds). Wenn das WLAN-HAL (AIDL oder HIDL Version 1.2 oder höher) verwendet wird, werden Firmware-Debug-Puffer im HAL anstelle des Frameworks gespeichert, um IPC-Kosten zu sparen.

Implementierung

Eine Referenzimplementierung finden Sie in der Standardimplementierung im Vendor-HAL.

Sie können die Firmware-Protokollierung deaktivieren, indem Sie die Ressource config_wifi_enable_wifi_firmware_debugging auf „false“ setzen.

Manueller Test

Führen Sie diesen manuellen Test aus, um zu prüfen, ob alte Dateien im Tombstone-Verzeichnis gelöscht werden.

  1. Aktivieren Sie die WLAN-Funktion.
  2. Stellen Sie eine Verbindung mit einem Netzwerk her.
  3. Erstellen Sie einen Fehlerbericht.
  4. Prüfen Sie die ZIP-Datei des Fehlerberichts und vergewissern Sie sich, dass die archivierten Firmware-Logs vorhanden sind. Die Protokolle befinden sich an den folgenden Speicherorten:

    • AIDL-HAL: dumpsys-Abschnitt der Hauptfehlerberichtsdatei
    • HIDL-HAL: /lshal-debug/android.hardware.wifi@1.x::IWifi_default.txt

Konfiguration optimieren

Um die Signalstärke zu steuern, bei der ein Gerät sich mit einem Netzwerk verbindet oder die Verbindung zu einem Netzwerk trennt, verwendet das WLAN-Framework die RSSI-Schwellenwerte entry (Eintritt) und exit (Austritt).

Die Grenzwerte für entry (Eintritt) und exit (Austritt) werden als überschreibbare Konfigurationsparameter mit den folgenden Namen gespeichert (wobei sich der Parameter bad auf den RSSI-Grenzwert für exit bezieht):

  • 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

Die Parameter werden in <root>/frameworks/base/core/res/res/values/config.xml gespeichert und können mit der Overlay-Datei <root>/device/<dev_dir>/overlay/frameworks/base/core/res/res/values/config.xml überschrieben werden.

Sie können neue Grenzwerte testen, indem Sie das Gerät mit ADB-Befehlen konfigurieren. Alternativ können Sie einen Build mit neuen Overlays erstellen. Die Verwendung von ADB-Befehlen ermöglicht jedoch einen schnelleren Testdurchlauf.

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

Mit dem folgenden Befehl werden beispielsweise neue Schwellenwertparameter konfiguriert. Die in diesem Beispielbefehl verwendeten Werte sind die konfigurierten Standardwerte in der AOSP-Codebasis:

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

Verwenden Sie den folgenden ADB-Befehl, um die integrierten Parameterwerte wiederherzustellen (d.h. die Überschreibungen zu entfernen):

adb shell settings delete global wifi_score_params