पुष्टि करना और डीबग करना

ब्लूटूथ स्टैक की पुष्टि करने और उसे डीबग करने के लिए, AOSP में दिए गए टूल और ब्लूटूथ स्पेशल इंटरेस्ट ग्रुप (एसआईजी) के टेस्ट का इस्तेमाल करें.

टेस्ट करना और पुष्टि करना

ब्लूटूथ स्टैक की जांच करने के लिए, AOSP में यूनिट टेस्ट, सीटीएस टेस्ट, और ब्लूटूथ प्रोफ़ाइल ट्यूनिंग सुइट (पीटीएस) के लिए टूल का मिक्सचर दिया गया है.

AOSP में यूनिट टेस्ट

AOSP में, डिफ़ॉल्ट ब्लूटूथ स्टैक के लिए फ़ंक्शनल और यूनिट टेस्ट शामिल हैं. ये टेस्ट, /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 में देखी जा सकती है.

प्रोफ़ाइल ट्यूनिंग सुइट

ब्लूटूथ एसआईजी, ब्लूटूथ पीटीएस उपलब्ध कराता है. यह प्रोटोकॉल और प्रोफ़ाइल इंटरऑपरेबिलिटी के लिए एक टेस्टिंग टूल है. ज़्यादा जानकारी के लिए, ब्लूटूथ प्रोफ़ाइल ट्यूनिंग सुइट की साइट देखें.

सीटीएस टेस्ट

Compatibility Test Suite (सीटीएस) में, ब्लूटूथ स्टैक के लिए टेस्ट शामिल हैं. ये टेस्ट, cts/apps/CtsVerifier/src/com/android/cts/verifier/bluetooth में मौजूद हैं.

डीबग करने के विकल्प

AOSP, किसी डिवाइस के ब्लूटूथ स्टैक को डीबग करने के अलग-अलग तरीके उपलब्ध कराता है. इनमें लॉग और गड़बड़ी की रिपोर्ट शामिल हैं. ये तरीके, उन समस्याओं के लिए काम नहीं कर सकते जिन्हें फिर से नहीं बनाया जा सकता या ऑडियो से जुड़ी समस्याओं के लिए काम नहीं कर सकते. ऑडियो से जुड़ी समस्याओं पर, प्लैटफ़ॉर्म और डिवाइस के कई हिस्सों का असर पड़ सकता है.

गड़बड़ी की रिपोर्ट की मदद से डीबग करना

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 लॉग को मैन्युअल तरीके से इकट्ठा किया जा सकता है. ये लॉग, जो RFC 1761 में दिए गए स्नूप फ़ॉर्मैट जैसे होते हैं. इन लॉग में, होस्ट कंट्रोलर इंटरफ़ेस (एचसीआई) पैकेट कैप्चर किए जाते हैं. ज़्यादातर Android डिवाइसों के लिए, लॉग data/misc/bluetooth/logs में सेव किए जाते हैं.

निजता की वजह से, हमेशा चालू रहने वाला, "इन-मेमोरी" BTSnoop सिर्फ़ गैर-निजी जानकारी और इवेंट लॉग करता है. सभी डेटा को लॉग करने के लिए, उपयोगकर्ता को ब्लूटूथ एचसीआई स्नूप चालू करना होगा. इसके लिए, यह तरीका अपनाएं:

  1. डिवाइस पर डेवलपर के लिए सेटिंग और टूल चालू करें.

  2. डेवलपर के लिए सेटिंग और टूल मेन्यू में, ब्लूटूथ एचसीआई स्नूप लॉग चालू करें टॉगल को चालू करें.

  3. लॉगिंग को लागू करने के लिए, ब्लूटूथ को रीस्टार्ट करें.