בדף הזה מוסבר איך לבדוק, לנפות באגים ולבצע שינויים בהטמעת ה-Wi-Fi באמצעות הכלים שכלולים ב-AOSP.
בדיקה
כדי לבדוק את מסגרת ה-Wi-Fi, AOSP מספק שילוב של בדיקות יחידה ובדיקות CTS.
בדיקות יחידה (unit testing)
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 ואילך, מאגר הנתונים הזמני של מנהל ההתקנים או הקושחה תמיד יכול לפעול. אפשר להפעיל דוחות באגים באופן אוטומטי כשמזוהה מצב שגוי (רק ב-userdebug וב-eng builds). כשמשתמשים ב-HAL של Wi-Fi (AIDL או HIDL בגרסה 1.2 ואילך), מאגרי ניפוי הבאגים של הקושחה מאוחסנים ב-HAL במקום במסגרת, כדי לחסוך בעלויות ה-IPC.
הטמעה
להטמעה לדוגמה, אפשר לעיין בהטמעת ברירת המחדל ב-HAL של הספק.
אפשר להשבית את רישום הקושחה ביומן על ידי הגדרת המשאב config_wifi_enable_wifi_firmware_debugging
כ-False.
בדיקה ידנית
מריצים את הבדיקה הידנית הזו כדי לוודא שקבצים ישנים בספריית tombstone נמחקים.
- מפעילים Wi-Fi.
- מתחברים לרשת.
- יוצרים דוח באגים.
בודקים את קובץ ה-Zip של דוח הבאג ומוודאים שיומני הקושחה בארכיון קיימים. היומנים נמצאים במיקומים הבאים:
- AIDL HAL: הקטע
dumpsys
בקובץ הראשי של דוח הבאג - HIDL HAL:
/lshal-debug/android.hardware.wifi@1.x::IWifi_default.txt
- AIDL HAL: הקטע
שינוי ההגדרות
כדי לשלוט בעוצמת האות שבה מכשיר משויך לרשת או מנותק ממנה, מסגרת ה-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