آزمایش، اشکال‌زدایی، و تنظیم Wi-Fi

این صفحه نحوه آزمایش، اشکال‌زدایی، و تنظیم پیاده‌سازی Wi-Fi را بااستفاده از ابزارهای ارائه‌شده در AOSP شرح می‌دهد.

آزمایش

برای آزمایش چارچوب Wi-Fi،‏ AOSP ترکیبی از آزمایش‌های واحد و آزمایش‌های CTS را ارائه می‌دهد.

آزمون‌های واحد

‫AOSP شامل آزمایش‌های واحد و عملکردی برای چارچوب Wi-Fi پیش‌فرض است: هم برای «مدیر Wi-Fi» (کد سمت برنامه) و هم برای «سرویس Wi-Fi».

آزمایش‌های «مدیر Wi-Fi»:

  • واقع در packages/modules/Wifi/framework/tests/
  • اجرا بااستفاده از پوسته اجراشدنی زیر (برای گزینه‌های اجرای بیشتر، فایل را بخوانید):

    atest FrameworksWifiApiTests

آزمایش‌های «سرویس Wi-Fi»:

  • واقع در packages/modules/Wifi/service/tests/wifitests/
  • اجرا بااستفاده از پوسته اجراشدنی زیر (برای گزینه‌های اجرای بیشتر، فایل را بخوانید):

    atest FrameworksWifiTests

آزمایش‌های CTS

مجموعه آزمایشی سازگاری (CTS) شامل آزمایش‌هایی برای چارچوب Wi-Fi است. این موارد در cts/tests/tests/net/src/android/net/wifi قرار دارند. آزمایش‌های Wi-Fi CTS نیازمند این است که دستگاه تحت آزمایش در ابتدای اجرای آزمایش با «نقطه دسترسی» مرتبط باشد.

گزینه‌های گزارش‌گیری بهبودیافته برای اشکال‌زدایی

Android 9 ثبت Wi-Fi را بهبود بخشیده است تا اشکال‌زدایی مشکلات Wi-Fi آسان‌تر شود. در Android نسخه ۹ یا بالاتر، میان‌گیرهای حلقه‌ای میان‌افزار یا درایور می‌توانند همیشه روشن باشند. گزارش‌های اشکال می‌تواند به‌طور خودکار وقتی وضعیت بدی تشخیص داده می‌شود راه‌اندازی شود (فقط در ساخت‌های userdebug و eng). وقتی از Wi-Fi HAL (نسخه AIDL یا HIDL 1.2 یا بالاتر) استفاده می‌شود، میان‌افزار اشکال‌زدایی بافرها به‌جای چارچوب در HAL ذخیره می‌شود تا هزینه‌های IPC کاهش یابد.

پیاده‌سازی

برای پیاده‌سازی مرجع، به پیاده‌سازی پیش‌فرض در Vendor HAL مراجعه کنید.

با تنظیم منبع، config_wifi_enable_wifi_firmware_debugging، روی false می‌توانید ثبت گزارش سفت‌افزار را غیرفعال کنید.

آزمایش دستی

این آزمایش دستی را اجرا کنید تا مطمئن شوید فایل‌های قدیمی در دایرکتوری سنگ قبر حذف می‌شوند.

  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