測試、偵錯及調整 Wi-Fi

本頁說明如何使用 AOSP 提供的工具,測試、偵錯及調整 Wi-Fi 實作項目。

測試

如要測試 Wi-Fi 架構,AOSP 提供單元測試和 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

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。

手動測試

執行這項手動測試,確認系統會刪除墓碑目錄中的舊檔案。

  1. 開啟 Wi-Fi。
  2. 連線至網路。
  3. 產生錯誤報告
  4. 檢查錯誤報告 ZIP 檔案,確認封存的韌體記錄存在。記錄檔位於下列位置:

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