بررسی و رفع اشکال

برای تأیید و اشکال‌زدایی پشته بلوتوث، از ابزارهای ارائه شده در AOSP و آزمایش‌های گروه ویژه علاقه‌مندان به بلوتوث (SIG) استفاده کنید.

آزمایش و تأیید

برای آزمایش پشته بلوتوث، AOSP ترکیبی از تست‌های واحد، تست‌های CTS و ابزارهایی برای Bluetooth Profile Tuning Suite (PTS) ارائه می‌دهد.

تست‌های واحد در AOSP

AOSP شامل تست‌های عملکردی و واحد برای پشته پیش‌فرض بلوتوث است. این تست‌ها در /packages/modules/Bluetooth/system/test/ قرار دارند. برای اجرای تست‌های AOSP، موارد زیر را انجام دهید:

  1. متوقف کردن زمان اجرای اندروید:

    adb shell stop
  2. از دایرکتوری test، فایل اجرایی shell را اجرا کنید و اگر می‌خواهید یک تست خاص یا مجموعه تست را اجرا کنید، گزینه‌های زیر را اضافه کنید:

    ./run_unit_tests.sh TEST_GROUP_NAME TEST_NAME OPTIONS
  3. وقتی آزمایش‌ها تمام شد، دوباره زمان اجرای اندروید را فعال کنید:

    adb shell start

فهرست نام‌های تست را می‌توانید در /packages/modules/Bluetooth/system/test/README.md پیدا کنید.

مجموعه تنظیم پروفایل

گروه ویژه بلوتوث، ابزار بلوتوث PTS را ارائه می‌دهد که ابزاری برای آزمایش قابلیت همکاری پروتکل و پروفایل است. برای اطلاعات بیشتر، به سایت Bluetooth Profile Tuning Suite مراجعه کنید.

آزمایش‌های CTS

مجموعه تست سازگاری (CTS) شامل تست‌هایی برای پشته بلوتوث است. این تست‌ها در cts/apps/CtsVerifier/src/com/android/cts/verifier/bluetooth قرار دارند.

گزینه‌های اشکال‌زدایی

AOSP روش‌های مختلفی برای اشکال‌زدایی پشته بلوتوث دستگاه ارائه می‌دهد، از جمله گزارش‌های لاگ و باگ. این روش‌ها ممکن است برای مشکلاتی که قابل بازتولید نیستند یا برای مشکلات صوتی که می‌توانند تحت تأثیر بخش‌های مختلف پلتفرم و دستگاه قرار گیرند، کار نکنند.

اشکال‌زدایی با گزارش‌های اشکال

برای بررسی وضعیت سرویس بلوتوث با استفاده از dumpsys ، از دستور زیر استفاده کنید:

adb shell dumpsys bluetooth_manager

به طور پیش‌فرض، همه پیام‌های لاگ از نوع trace level 2 هستند. برای کسب اطلاعات بیشتر در مورد سطوح لاگ‌گیری و تغییر سطوح لاگ‌گیری برای پروفایل‌های مختلف، به system/bt/conf/bt_stack.conf مراجعه کنید.

برای استخراج لاگ‌های snoop از گزارش باگ، از اسکریپت btsnooz استفاده کنید.

  1. فایل btsnooz.py را دریافت کنید.

  2. نسخه متنی گزارش اشکال را استخراج کنید.

  3. btsnooz.py را روی نسخه متنی گزارش اشکال اجرا کنید:

    btsnooz.py BUG_REPORT.txt > BTSNOOP.log

اشکال‌زدایی با لاگ‌ها

در اندروید ۴.۴ و بالاتر، می‌توانید گزارش‌های BTSnoop را به صورت دستی جمع‌آوری کنید، که شبیه به فرمت snoop در RFC 1761 است. این گزارش‌ها، بسته‌های رابط کنترل‌کننده میزبان (HCI) را ضبط می‌کنند. برای اکثر دستگاه‌های اندروید، گزارش‌ها در data/misc/bluetooth/logs ذخیره می‌شوند.

به دلایل حفظ حریم خصوصی، BTSnoop همیشه فعال و "در حافظه" فقط اطلاعات و رویدادهای غیرشخصی را ثبت می‌کند. برای ثبت تمام داده‌ها، کاربر باید Bluetooth HCI snoop را با انجام موارد زیر فعال کند:

  1. گزینه‌های توسعه‌دهنده (Developer options) را در دستگاه فعال کنید.

  2. در منوی گزینه‌های توسعه‌دهندگان ، گزینه‌ی فعال کردن Bluetooth HCI snoop log را فعال کنید.

  3. برای اعمال شدن ثبت وقایع، بلوتوث را مجدداً راه‌اندازی کنید.