测试、调试和调整 Wi-Fi

本页介绍了如何使用 ASOP 中提供的工具测试、调试和调整 WLAN 实现。

测试

为了测试 Wi-Fi 框架,AOSP 提供了一系列单元测试和 CTS 测试。

单元测试

AOSP 包括针对默认 WLAN 框架的功能测试和单元测试:这两项测试均适用于 WLAN Manager(应用端代码)和 WLAN 服务。

WLAN 管理器测试:

  • 位于 packages/modules/Wifi/framework/tests/
  • 使用以下 shell 可执行文件运行(有关更多执行选项,请参阅文件):

    atest FrameworksWifiApiTests
    

WLAN 服务测试:

  • 位于 packages/modules/Wifi/service/tests/wifitests/
  • 使用以下 shell 可执行文件运行(有关更多执行选项,请参阅文件):

    atest FrameworksWifiTests
    

CTS 测试

兼容性测试套件 (CTS) 包括针对 Wi-Fi 框架的测试。这些测试位于以下位置:cts/tests/tests/net/src/android/net/wifi。WLAN CTS 测试要求在测试开始运行时将被测设备与接入点相关联。

针对调试的增强型日志记录选项

Android 9 改进了 Wi-Fi 日志记录功能,以便更轻松地调试 Wi-Fi 问题。在 Android 9 或更高版本中,驱动程序/固件环形缓冲区可以始终处于开启状态。检测到错误状态时,可以自动触发错误报告(仅限 userdebug build 和 eng build)。如果您使用的是 Wi-Fi HAL(AIDL 或 HIDL 1.2 版或更高版本),则固件调试缓冲区存储在 HAL 中而不是框架内,以节省 IPC 开销。

实现

有关参考实现,请参阅供应商 HAL 中的默认实现

将资源 config_wifi_enable_wifi_firmware_debugging 设置为 false 可以停用固件日志记录。

手动测试

运行以下手动测试,以验证 tombstone 目录中的旧文件是否已被删除。

  1. 开启 WLAN。
  2. 连接到网络。
  3. 生成错误报告
  4. 检查 bug 报告 ZIP 文件,并验证已归档的固件日志是否存在。日志位于以下位置:

    • AIDL HAL:主 bug 报告文件的 dumpsys 部分
    • HIDL HAL:/lshal-debug/android.hardware.wifi@1.x::IWifi_default.txt

配置调整

为了控制设备在与网络建立关联和取消关联时采用的信号强度,Wi-Fi 框架使用了“entry”和“exit”RSSI 阈值。

系统会将“entry”和“exit”阈值存储为可重载的配置参数,并使用以下名称(其中 bad 参数是指“exit”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 命令配置设备,对新的阈值进行测试。(或者,您也可以使用新的覆盖文件创建一个 build,但使用 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

如需恢复内置的参数值(即取消替换),请使用以下 abd 命令:

adb shell settings delete global wifi_score_params