ทดสอบ แก้ไขข้อบกพร่อง และปรับแต่ง Wi-Fi

หน้านี้อธิบายวิธีทดสอบ แก้ไขข้อบกพร่อง และปรับแต่งการใช้งาน Wi-Fi โดยใช้ เครื่องมือที่มีให้ใน AOSP

การทดสอบ

AOSP มีทั้งการทดสอบ 1 หน่วยและการทดสอบ CTS ในการทดสอบเฟรมเวิร์ก Wi-Fi

การทดสอบ 1 หน่วย

AOSP มีการทดสอบการทำงานและการทดสอบ 1 หน่วยสำหรับเฟรมเวิร์ก 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 การทดสอบ CTS ของ Wi-Fi ต้องใช้ อุปกรณ์ต่ำกว่าการทดสอบที่จะเชื่อมโยงกับจุดเข้าใช้งานเมื่อเริ่มการทดสอบ วิ่งได้

ตัวเลือกการบันทึกขั้นสูงสำหรับการแก้ไขข้อบกพร่อง

Android 9 ปรับปรุงการบันทึก Wi-Fi เพื่อให้สามารถ ดีบักปัญหา Wi-Fi ใน Android 9 ขึ้นไป บัฟเฟอร์ริงของไดรเวอร์หรือเฟิร์มแวร์จะเปิดได้ตลอดเวลา สามารถรายงานข้อบกพร่องโดยอัตโนมัติ ทริกเกอร์เมื่อตรวจพบสถานะที่ไม่ถูกต้อง (เฉพาะในเวอร์ชันแก้ไขข้อบกพร่องของผู้ใช้และวิศวกรเท่านั้น) เมื่อใช้ Wi-Fi HAL (AIDL หรือ HIDL เวอร์ชัน 1.2 ขึ้นไป) เฟิร์มแวร์ ระบบจะจัดเก็บบัฟเฟอร์การแก้ไขข้อบกพร่องไว้ใน HAL แทนเฟรมเวิร์กเพื่อประหยัดค่าใช้จ่าย IPC

การใช้งาน

สำหรับการติดตั้งใช้งานข้อมูลอ้างอิง โปรดดู การใช้งานเริ่มต้น ใน HAL ของผู้ให้บริการ

คุณปิดใช้การบันทึกเฟิร์มแวร์ได้โดยตั้งค่าทรัพยากร config_wifi_enable_wifi_firmware_debugging เป็น "เท็จ"

การทดสอบด้วยตนเอง

ทำการทดสอบด้วยตนเองนี้เพื่อยืนยันว่าไฟล์เก่าใน ไดเรกทอรี tombstone จะถูกลบ

  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