การตรวจสอบและการดีบัก

หากต้องการตรวจสอบและแก้ไขจุดบกพร่อง Bluetooth Stack ให้ใช้เครื่องมือที่มีให้ในการทดสอบ AOSP และ Bluetooth Special Interest Group (SIG)

การทดสอบและตรวจสอบ

ในการทดสอบสแต็ค Bluetooth นั้น AOSP ได้จัดเตรียมการทดสอบหน่วย การทดสอบ CTS และเครื่องมือต่างๆ สำหรับ Bluetooth Profile Tuning Suite

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

AOSP มีการทดสอบการทำงานและการทดสอบหน่วยสำหรับสแต็ก Bluetooth เริ่มต้น การทดสอบเหล่านี้อยู่ใน /packages/modules/Bluetooth/system/test/ หากต้องการรันการทดสอบ AOSP ให้ทำดังต่อไปนี้:

  1. หยุดรันไทม์ของ Android:
    adb shell stop
  2. จากไดเร็กทอรีการทดสอบ ให้รันไฟล์เรียกทำงานของเชลล์และรวมตัวเลือกต่างๆ หากคุณต้องการรันชุดทดสอบหรือชุดทดสอบเฉพาะ:
    ./run_unit_tests.sh TEST_GROUP_NAME TEST_NAME OPTIONS
  3. เมื่อการทดสอบเสร็จสิ้น ให้เปิดใช้งานรันไทม์ของ Android อีกครั้ง:
    adb shell start

รายชื่อการทดสอบสามารถพบได้ใน /packages/modules/Bluetooth/system/test/README.md

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

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

การทดสอบ ACTS สำหรับ Bluetooth และ Bluetooth Low Energy มีอยู่ใน tools/test/connectivity/acts_tests/tests/google/bt/ และ tools/test/connectivity/acts_tests/tests/google/ble/ ตามลำดับ

ชุดปรับแต่งโปรไฟล์

Bluetooth SIG มี Bluetooth Profile Tuning Suite (PTS) ซึ่งเป็นเครื่องมือทดสอบสำหรับการทำงานร่วมกันของโปรโตคอลและโปรไฟล์ สำหรับข้อมูลเพิ่มเติม โปรดดูที่ไซต์ Bluetooth Profile Tuning Suite

AOSP มีเครื่องมือเพิ่มเติมเพื่อเสริม Bluetooth PTS เครื่องมือเหล่านี้อยู่ใน tools/test/connectivity/acts_tests/tests/google/bt/pts/

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

ชุดทดสอบความเข้ากันได้ (CTS) รวมถึงการทดสอบสแต็ก Bluetooth สิ่งเหล่านี้อยู่ใน cts/apps/CtsVerifier/src/com/android/cts/verifier/bluetooth

ตัวเลือกการแก้ไขข้อบกพร่อง

AOSP จัดเตรียมวิธีการต่างๆ ในการแก้ไขจุดบกพร่อง Bluetooth Stack ของอุปกรณ์ รวมถึงบันทึกและรายงานจุดบกพร่อง วิธีการเหล่านี้อาจไม่ได้ผลสำหรับปัญหาที่ไม่สามารถทำซ้ำได้หรือปัญหาด้านเสียง ซึ่งอาจได้รับผลกระทบจากหลายส่วนของแพลตฟอร์มและอุปกรณ์

การดีบักด้วยรายงานข้อผิดพลาด

หากต้องการตรวจสอบสถานะบริการ Bluetooth โดยใช้ dumpsys ให้ใช้คำสั่งต่อไปนี้:

adb shell dumpsys bluetooth_manager

โดยดีฟอลต์ ข้อความบันทึกทั้งหมดจะเป็นระดับการติดตาม 2 หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับระดับการบันทึกและเปลี่ยนระดับการบันทึกสำหรับโปรไฟล์ที่แตกต่างกัน โปรดดูใน system/bt/conf/bt_stack.conf

หากต้องการแยกบันทึกการสอดแนมออกจากรายงานข้อบกพร่อง ให้ใช้สคริปต์ btsnooz

  1. รับ btsnooz.py
  2. แยกเวอร์ชันข้อความของรายงานข้อบกพร่อง
  3. เรียกใช้ btsnooz.py ในเวอร์ชันข้อความของรายงานข้อบกพร่อง:
    btsnooz.py BUG_REPORT.txt > BTSNOOP.log

การดีบักด้วยบันทึก

ใน Android 4.4 และใหม่กว่า คุณสามารถรวบรวมบันทึก BTSnoop ได้ด้วยตนเอง ซึ่งคล้ายกับรูปแบบ Snoop ใน RFC 1761 บันทึกเหล่านี้จับแพ็กเก็ต Host Controller Interface (HCI) สำหรับอุปกรณ์ Android ส่วนใหญ่ บันทึกจะถูกจัดเก็บไว้ใน data/misc/bluetooth/logs

ด้วยเหตุผลด้านความเป็นส่วนตัว BTSnoop "ในหน่วยความจำ" ที่เปิดตลอดเวลาจะบันทึกเฉพาะข้อมูลและกิจกรรมที่ไม่ใช่ข้อมูลส่วนบุคคลเท่านั้น หากต้องการบันทึกข้อมูลทั้งหมด ผู้ใช้จำเป็นต้องเปิดใช้งานการสอดแนม Bluetooth HCI โดยทำดังต่อไปนี้:

  1. เปิดใช้ งานตัวเลือกนักพัฒนา บนอุปกรณ์
  2. ในเมนู ตัวเลือกสำหรับนักพัฒนา ให้เปิดใช้งานการสลับ บันทึกการสอดแนมเปิดใช้งาน Bluetooth HCI
  3. รีสตาร์ท Bluetooth เพื่อให้การบันทึกมีผล