測試、調試和調整 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 通訊測試套件 (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(AIDL 或 HIDL 版本 1.2 或更高版本)時,韌體偵錯緩衝區儲存在 HAL 而不是框架中,以節省 IPC 成本。

執行

有關參考實現,請參閱供應商 HAL 中的預設實現

您可以將資源config_wifi_enable_wifi_firmware_debugging設定為 false 來停用韌體日誌記錄。

整合測試(ACTS)

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

經過驗證的韌體轉儲將保留在快閃記憶體中對應的邏輯刪除目錄中,以供使用者偵錯建置使用。建立錯誤報告時,Dumpstate 從此目錄收集。

手動測試

執行此手動測試以驗證邏輯刪除目錄中的舊檔案是否已刪除。

  1. 開啟 Wi-Fi。
  2. 連接網路。
  3. 產生錯誤報告
  4. 檢查錯誤報告 Zip 檔案並驗證已存檔的韌體日誌是否存在。日誌可在以下位置找到:

    • AIDL HAL:主錯誤報告檔案的dumpsys部分
    • HIDL HAL: /lshal-debug/android.hardware.wifi@1.x::IWifi_default.txt ::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進行重載<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