בדיקה, ניפוי באגים וכוונון של Wi-Fi

בדף הזה מוסבר איך לבדוק, לנפות באגים ולכוונן את ההטמעה של Wi-Fi באמצעות הכלים שזמינים ב-AOSP.

בדיקה

כדי לבדוק את מסגרת ה-Wi-Fi, ‏ AOSP מספקת שילוב של בדיקות יחידה ובדיקות CTS.

בדיקות יחידה

‫AOSP כולל בדיקות פונקציונליות ובדיקות יחידה למסגרת ה-Wi-Fi שמוגדרת כברירת מחדל: גם ל-Wi-Fi Manager (קוד בצד האפליקציה) וגם ל-Wi-Fi Service.

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

הטמעה

לדוגמה להטמעה, אפשר לעיין בהטמעה שמוגדרת כברירת מחדל ב-Vendor HAL.

כדי להשבית את רישום הקושחה ביומן, צריך להגדיר את המשאב, config_wifi_enable_wifi_firmware_debugging, לערך false.

בדיקה ידנית

מריצים את הבדיקה הידנית הזו כדי לוודא שקבצים ישנים בספריית ה-tombstone נמחקים.

  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