การทดสอบ การดีบัก และการปรับแต่ง Wi-Fi

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

การทดสอบ

เพื่อทดสอบเฟรมเวิร์ก Wi-Fi AOSP จัดให้มีการทดสอบหน่วย การทดสอบการรวม (ACTS) และการทดสอบ CTS ผสมกัน

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

AOSP รวมการทดสอบการทำงานและการทดสอบหน่วยสำหรับเฟรมเวิร์ก Wi-Fi เริ่มต้น: ทั้งสำหรับ Wi-Fi Manager (โค้ดฝั่งแอป) และบริการ Wi-Fi

การทดสอบตัวจัดการ Wi-Fi:

  • ตั้งอยู่ใน packages/modules/Wifi/framework/tests/
  • รันโดยใช้เชลล์ที่ปฏิบัติการได้ต่อไปนี้ (อ่านไฟล์เพื่อดูตัวเลือกการดำเนินการเพิ่มเติม):

    atest FrameworksWifiApiTests
    

การทดสอบบริการ Wi-Fi:

  • ตั้งอยู่ใน packages/modules/Wifi/service/tests/wifitests/
  • รันโดยใช้เชลล์ที่ปฏิบัติการได้ต่อไปนี้ (อ่านไฟล์เพื่อดูตัวเลือกการดำเนินการเพิ่มเติม):

    atest FrameworksWifiTests
    

ชุดทดสอบการสื่อสาร Android

ชุดทดสอบ Android Comms (ACTS) ทำการทดสอบสแต็กการเชื่อมต่อ เช่น Wi-Fi บลูทูธ และบริการเซลลูลาร์โดยอัตโนมัติ เครื่องมือทดสอบต้องใช้ adb และ Python และสามารถพบได้ใน tools/test/connectivity/acts

การทดสอบ ACTS สำหรับ Wi-Fi มีอยู่ใน tools/test/connectivity/acts_tests/tests/google/wifi โดยมีตัวอย่างการกำหนดค่าการทดสอบในไดเรกทอรีเดียวกัน: example_config.json

การทดสอบซีทีเอส

ชุดทดสอบความเข้ากันได้ (CTS) ประกอบด้วยการทดสอบกรอบงาน Wi-Fi สิ่งเหล่านี้อยู่ใน cts/tests/tests/net/src/android/net/wifi การทดสอบ Wi-Fi CTS กำหนดให้อุปกรณ์อยู่ระหว่างการทดสอบต้องเชื่อมโยงกับจุดเข้าใช้งานเมื่อเริ่มการทดสอบ

ตัวเลือกการบันทึกขั้นสูงสำหรับการดีบัก

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

การนำไปปฏิบัติ

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

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

การทดสอบบูรณาการ (ACTS)

การทดสอบการรวมระบบสามารถพบได้ที่ /tools/test/connectivity/acts_tests/tests/google/wifi/WifiDiagnosticsTest.py

การถ่ายโอนข้อมูลเฟิร์มแวร์ที่ได้รับการยืนยันจะยังคงอยู่ในไดเร็กทอรี tombstone ที่เหมาะสมในรูปแบบ flash สำหรับ build userdebug Dumpstate รวบรวมจากไดเร็กทอรีนี้เมื่อสร้างรายงานข้อบกพร่อง

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

รันการทดสอบด้วยตนเองนี้เพื่อตรวจสอบว่าไฟล์เก่าใน ไดเร็กทอรี 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