מכשירים המופעלים עם אנדרואיד 12 באמצעות גרסאות ליבה גבוהות מגרסה 5.4 נדרשים לשלוח עם ליבת GKI. כדי ששותפים יוכלו לגשת DebugFS
ב-userdebug builds בזמן שהם מפתחים על ליבת GKI, תצורת הליבה CONFIG_DEBUG_FS
מופעלת ב-GKI defconfig. לעולם אל תעלה DebugFS
ב-builds של משתמש עבור מכשירים המופעלים ב-Android 12.
ל-Userdebug builds יש כיסוי בדיקות טוב יותר מאשר ל-User builds ונבחנים כבדים לאורך מחזור הפיתוח. התוכנית הבאה ממזערת את ההבדל בין שני סוגי הבנייה ביחס לגישה DebugFS
, ומספקת את היתרונות האלה:
- מונעת מ-userdebug בונה תלויה בטעות ב-
DebugFS
לפונקציונליות חדשה - מבטיח שכל פונקציונליות קיימת שנשברה בגלל היעדר DebugFS ידועה בשלב מוקדם של מחזור הפיתוח
גישה ל-debugfs ב-userdebug builds מסווגות באופן הבא:
- אתחולי קבצי
DebugFS
במהלך אתחול המכשיר, כגון גישת כתיבה לקובץ ב-DebugFS
כדי להפעיל איסוף נתוני ניפוי באגים. - יצירת דיווח באגים: ה-dumpstate HAL קורא קבצי
DebugFS
כאשרDumpstateBoard()
מופעל על ידיdumpstate
. מידע זה הופך לחלק מדוח הבאגים. - בדיקה ואימות ספציפיים למכשיר.
הטבלה הבאה מתארת כיצד כל אחת משלוש הקטגוריות הללו נתמכת ב-Android 12. שים לב שהדברים הבאים חלים רק על בניית userdebug מכיוון שלא ניתן לטעון DebugFS
ב-builds של משתמש.
מקרה שימוש | בניית באגים ל-Android 12 |
---|---|
אתחול קבצי DebugFS חד פעמי, במהלך ההפעלה . גישה זו מתרחשת רק פעם אחת במהלך זמן האתחול. | Dumpstate HAL מבצע זאת במהלך אתחול HAL. כדי לאפשר את אותו הדבר, init מעלה DebugFS ב-userdebug builds לפני אתחול ה-HAL. Init קורא ל- umount() ב- DebugFS כשהמכשיר השלים את האתחול. |
יצירת דיווח באגים : ה-dumpstate HAL קורא קבצי DebugFS , שהופכים לחלק מדוח הבאג. | נעשה על ידי dumpstate HAL בתוך DumpstateBoard() כאשר מופעל על ידי dumpstate ( DumpstateDevice.cpp ). כלי ה-dumpstate (חלק ממסגרת האנדרואיד) מבטיח שה- DebugFS נטען במהלך ההפעלה. |
בדיקה ואימות ספציפיים למכשיר | אדב שורש וקליפה. הר DebugFS ממעטפת adb עם גישת שורש 1 . |
1 כדי לטעון DebugFS
מ- adb shell
עם גישת שורש, השתמש בפקודה זו:
adb shell mount -t debugfs debugfs /sys/kernel/debug
.
פעולות שותף נדרשות
שותפים חייבים לחוקק את הדברים הבאים בהתבסס על השינויים האלה במכשירי Android 12:
- הפוך את כל האתחולים בזמן האתחול של צמתי
DebugFS
לקרות במהלך אתחול HAL של מצב dump. לדוגמא כיצד לעשות זאת, ראה DNM: דוגמה לאתחול זמן אתחול של קבציDebugFS
. - אל תאפשר גישה
DebugFS
במהלך זמן ריצה. החריגים הבאים חלים:- יצירת דיווח באגים (מגיע מ-HAL של dumpstate)
- בדיקה ואימות (נגישים על ידי
adb root
shell
ודא שה-DebugFS מותקן תחילה)
מפתחים יכולים להגדיר את מאפיין ה-persistent debug persist.dbg.keep_debugfs_mounted
כדי לשמור על DebugFs
רכובים על פני אתחולים מחדש ב-userdebug ו-eng builds.
בדיקות תאימות ל-GTS מבטיחות שמערכת הקבצים DebugFS
אינה מותקנת בבתי משתמש. הצהרות Sepolicy neverallow
מבטיחות שבמכשירים המופעלים ב-Android 12 ומעלה, תהליכים לא מורשים אינם ניתנים לגישה ל- DebugFs
.