יישום רישום ספקים בהיקף

אנדרואיד 11 מוסיף HAL חדש, IDumpstateDevice (גרסה 1.1). HAL זה חושף שיטות חדשות ליומני ספקים בהיקפים הדוקים יותר הכלולים בדוחות באגים סטנדרטיים, כמו גם כדי לאפשר לבניית משתמש להפעיל ולכבות את רישום הספקים (ברירת המחדל עבור בניית משתמש כבויה). זה נותן ליצרני OEM שליטה רבה יותר על מה שנכלל בסוגים מסוימים של דוחות באגים.

תכונה זו משפיעה על יצרני OEM אם הם בוחרים ליישם את ה-HAL האופציונלי הזה. SoCs עשויים להיות מושפעים, בהתאם למה שה-OEM בוחר לחשוף עם HAL זה. אין השפעה צפויה על הספקים.

מה שאתה כולל בדוחות באגים תלוי באיזה מידע אתה מוצא רלוונטי לניפוי באגים, אבל בדרך כלל יותר מפורט עדיף.

דוגמאות ומקור

ישנו מימוש ברירת מחדל של גירסת 1.0 (הוצאה משימוש) של IDumpstateDevice שמראה דוגמה לשימוש בספריית השירות dumpstate: frameworks/native/cmds/dumpstate/DumpstateUtil.h . יש גם יישום Cuttlefish של 1.1 HAL: device/google/cuttlefish/guest/monitoring/dumpstate_ext/* .

קוד המקור נמצא כאן:

יישום

כדי ליישם HAL זה, הטמע את ממשק android.hardware.dumpstate@1.1::IDumpstateDevice HAL. ישנם ערכי DumpstateMode רבים אפשריים, אך סביר להניח שלא כולם נתמכים על ידי מכשיר בודד (לדוגמה, WEAR עבור התקני מערכת הפעלה שאינם Wear).

יישום ה-dumpstate HAL הוא אופציונלי. כל המכשירים החדשים שהושקו עם Android 11 חייבים ליישם את IDumpstateDevice 1.1 אם הם מיישמים את ה-Dumpstate HAL. מכשירים שכבר הטמיעו את IDumpstateDevice 1.0 לפני אנדרואיד 11 אמורים להיות קלים יחסית לשדרוג ל-1.1, ומומלץ מאוד לעשות זאת, מכיוון שהוא מפחית מאוד את כמות המידע הפרטי הזר הכלול בדוחות באגים.

תכונה זו תלויה בשינויי הליבה ב-dumpstate הכלולים גם ב-Android 11, הממוקמים תחת frameworks/native/cmds/dumpstate .

יישום HAL זה ידרוש ככל הנראה כמה שינויים ב-SEPolicy במאפייני מערכת מסוימים, קבצים וכו' כדי שהדברים יפעלו במלואם, וידרוש תיאום עם ספקים כדי לזרוק את כל המידע הרלוונטי לדוחות באגים.

התאמה אישית

משתמש המכשיר יכול לשנות או לכבות את התחברות הספק באמצעות הגדרות מפתח. כשהוא כבוי, ייתכן dumpstateBoard_1_1 עדיין פלט מידע חיוני מינימלי כפי שנקבע על ידי ה-OEM. ביטול ההתחברות של הספק גורם IDumpstateDevice::dumpstateBoard להוסיף רק מידע חיוני לדוח באג, בעוד שהפעלתו כוללת כל מידע שה-OEM בוחר.

אתה יכול לשנות את dumpstate.cpp (שקורא לשיטות IDumpstateDevice HAL), למשל, כדי להגדיל את הזמן הקצוב שניתן להשלמת dumpstateBoard . עם זאת, ההיגיון הליבה של dumpstate.cpp אמור להישאר ללא שינוי.

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

מַתַן תוֹקֵף

יש מבחן VTS ליישום IDumpstateDevice, ויש בדיקות יחידות פונקציונליות לפונקציונליות כללית BugreportManager .

מקרה הבדיקה הידני המומלץ הוא frameworks/base/core/tests/bugreports/src/android/server/bugreports/BugreportManagerTest.java .