בדיקה, ניפוי באגים וכוונון של 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. בבדיקות CTS של Wi-Fi, המכשיר שנבדק צריך להיות משויך לנקודת גישה בתחילת הרצת הבדיקה.

אפשרויות רישות משופר לצורך ניפוי באגים

רישום Wi-Fi משופר ב-Android 9 מאפשר לך לנפות באגים בבעיות Wi-Fi. ב-Android מגרסה 9 ואילך, מאגרי הטבעות של מנהלי ההתקנים או הקושחה יכולים להיות תמיד מופעלים. אפשר להפעיל דוחות באגים באופן אוטומטי כשמזוהה מצב שגוי (רק בגרסאות build של userdebug ו-eng). כשמשתמשים ב-HAL של Wi-Fi‏ (AIDL או HIDL בגרסה 1.2 ואילך), מאגרי ניפוי הבאגים של הקושחה מאוחסנים ב-HAL במקום במסגרת, כדי לחסוך בעלויות ה-IPC.

הטמעה

להטמעה לדוגמה, אפשר לעיין בהטמעת ברירת המחדל ב-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. (לחלופין, אפשר ליצור build עם שכבות-על חדשות אבל באמצעות פקודות 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