اختبار شبكة Wi-Fi وتصحيح أخطائها وضبطها

توضّح هذه الصفحة كيفية اختبار عملية تنفيذ Wi-Fi وتصحيح أخطائها وضبطها باستخدام الأدوات المتوفّرة في مشروع AOSP.

الاختبار

لاختبار إطار عمل Wi-Fi، يوفّر مشروع AOSP مجموعة من اختبارات الوحدات واختبارات CTS.

اختبارات الوحدات

يتضمّن مشروع AOSP اختبارات وظيفية واختبارات وحدات لإطار عمل Wi-Fi التلقائي، وذلك لكل من Wi-Fi Manager (التعليمات البرمجية من جهة التطبيق) وخدمة Wi-Fi.

اختبارات "إدارة شبكة Wi-Fi":

  • يقع في packages/modules/Wifi/framework/tests/
  • يجب تشغيلها باستخدام ملف shell التنفيذي التالي (اقرأ الملف لمعرفة المزيد من خيارات التنفيذ):

    atest FrameworksWifiApiTests

اختبارات خدمة Wi-Fi:

  • يقع في packages/modules/Wifi/service/tests/wifitests/
  • يجب تشغيلها باستخدام ملف shell التنفيذي التالي (اقرأ الملف لمعرفة المزيد من خيارات التنفيذ):

    atest FrameworksWifiTests

اختبارات مجموعة أدوات اختبار التوافق (CTS)

تتضمّن مجموعة أدوات اختبار التوافق (CTS) اختبارات لإطار عمل Wi-Fi. وتقع هذه الأماكن في cts/tests/tests/net/src/android/net/wifi. تتطلّب اختبارات Wi-Fi CTS ربط الجهاز الخاضع للاختبار بنقطة وصول في بداية عملية الاختبار.

خيارات تسجيل محسّنة لتصحيح الأخطاء

في نظام التشغيل Android 9، تم تحسين تسجيل بيانات شبكة Wi-Fi لتسهيل تصحيح أخطاء شبكة Wi-Fi. في الإصدار 9 من نظام التشغيل Android أو الإصدارات الأحدث، يمكن دائمًا تفعيل المخازن المؤقتة الحلقية الخاصة ببرامج التشغيل أو البرامج الثابتة. يمكن أن يتم إرسال تقارير الأخطاء تلقائيًا عند رصد حالة غير سليمة (في إصدارات userdebug وeng فقط). عند استخدام طبقة تجريد الأجهزة (HAL) لشبكة Wi-Fi (إصدار AIDL أو HIDL 1.2 أو إصدار أحدث)، يتم تخزين مخازن تصحيح أخطاء البرامج الثابتة في طبقة HAL بدلاً من إطار العمل لتوفير تكاليف الاتصال بين العمليات (IPC).

التنفيذ

للحصول على تنفيذ مرجعي، اطّلِع على التنفيذ التلقائي في Vendor HAL.

يمكنك إيقاف تسجيل البرامج الثابتة عن طريق ضبط المورد, config_wifi_enable_wifi_firmware_debugging، على "خطأ".

الاختبار اليدوي

نفِّذ هذا الاختبار اليدوي للتأكّد من أنّه يتم حذف الملفات القديمة في دليل tombstone.

  1. فعِّل شبكة Wi-Fi.
  2. اتّصِل بإحدى الشبكات.
  3. أنشئ تقرير خطأ.
  4. افحص ملف Zip الخاص بتقرير الخطأ وتأكَّد من توفّر سجلّات البرامج الثابتة المؤرشفة. يمكن العثور على السجلّات في المواقع التالية:

    • AIDL HAL: قسم dumpsys من ملف bugreport الرئيسي
    • طبقة تجريد الأجهزة (HAL) المستندة إلى لغة تعريف الواجهة (HIDL): /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