測試、調試和調整 Wi-Fi

本頁介紹如何使用 AOSP 中提供的工具測試、調試和調整 Wi-Fi 實施。

測試

為了測試 Wi-Fi 框架,AOSP 提供了單元測試、集成測試 (ACTS) 和 CTS 測試的組合。

單元測試

AOSP 包括默認 Wi-Fi 框架的功能和單元測試:Wi-Fi 管理器(應用端代碼)和 Wi-Fi 服務。

Wi-Fi 管理器測試:

  • 位於packages/modules/Wifi/framework/tests/
  • 使用以下 shell 可執行文件運行(閱讀文件以獲取更多執行選項):

    atest FrameworksWifiApiTests
    

Wi-Fi 服務測試:

  • 位於packages/modules/Wifi/service/tests/wifitests/
  • 使用以下 shell 可執行文件運行(閱讀文件以獲取更多執行選項):

    atest FrameworksWifiTests
    

Android 通訊測試套件

Android Comms Test Suite (ACTS) 執行連接堆棧的自動化測試,例如 Wi-Fi、藍牙和蜂窩服務。測試工具需要 adb 和 Python,可以在tools/test/connectivity/acts中找到。

Wi-FI 的 ACTS 測試位於tools/test/connectivity/acts_tests/tests/google/wifi中,在同一目錄中包含示例測試配置: example_config.json

CTS 測試

兼容性測試套件(CTS) 包括針對 Wi-Fi 框架的測試。這些位於cts/tests/tests/net/src/android/net/wifi中。 Wi-Fi CTS 測試要求在測試運行開始時將被測設備與接入點相關聯。

用於調試的增強日誌記錄選項

Android 9 改進了 Wi-Fi 日誌記錄,以便更輕鬆地調試 Wi-Fi 問題。在 Android 9 或更高版本中,驅動程序/固件環形緩衝區可以始終打開。當檢測到錯誤狀態時,可以自動觸發錯誤報告(僅在 userdebug 和 eng 構建中)。當使用 Wi-Fi HAL(1.2 或更高版本)時,固件調試緩衝區存儲在 HAL 中而不是框架中,以節省 IPC 成本。

執行

有關參考實現,請參閱供應商 HAL 中的默認實現

您可以通過將資源config_wifi_enable_wifi_firmware_debugging設置為 false 來禁用固件日誌記錄。

集成測試 (ACTS)

集成測試可以在/tools/test/connectivity/acts_tests/tests/google/wifi/WifiDiagnosticsTest.py找到。

已驗證的固件轉儲保存在閃存中相應的 tombstone 目錄中,用於 userdebug 構建。 Dumpstate 在創建錯誤報告時從該目錄收集。

手動測試

運行此手動測試以驗證tombstone 目錄中的舊文件是否正在被刪除。

  1. 打開無線網絡。
  2. 連接到網絡。
  3. 生成錯誤報告
  4. 檢查 bugreport zip 文件並確認/lshal-debug/android.hardware.wifi@1.2__IWifi_default.txt包含存檔的固件日誌。

配置調優

為了控制設備與網絡關聯或解除關聯的信號強度,Wi-Fi 框架使用進入退出RSSI 閾值。

進入退出閾值存儲為具有以下名稱的可重載配置參數(其中bad參數是指退出RSSI 閾值):

  • 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

參數存儲在<root>/frameworks/base/core/res/res/values/config.xml ,可以使用覆蓋文件<root>/device/<dev_dir>/overlay/frameworks/base/core/res/res/values/config.xml

您可以通過使用 adb 命令配置設備來測試新閾值。 (或者,您可以使用新的覆蓋創建構建,但使用 adb 命令可提供更快的測試周轉時間。)

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

例如,以下命令配置新的閾值參數(此示例命令中使用的值是 AOSP 代碼庫中配置的默認值):

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

要恢復內置參數值(即刪除覆蓋),請使用以下 adb 命令:

adb shell settings delete global wifi_score_params