פיתוח מכשירים בהתאמה אישית

בדף הזה מוסברות כמה משימות שאולי תצטרכו לבצע אם אתם מגדירים build למכשיר שלכם.

יצירת הגדרות מותאמות אישית של Flash

הוראות Fastboot מוגדרות בארטיפקט שנקרא fastboot-info.txt. אם יוצרים כמה יעדים, יהיו כמה קובצי fastboot-info.txt בתיקייה $OUT_DIR. בנוסף, $ANDROID_PRODUCT_OUT מציין את היעד העדכני ביותר שיצרתם. בדף הזה מפורטות המשימות ש-fastboot צריך לבצע, ואפשר ליצור אותו מחדש באמצעות m fastboot_info. אפשר להוסיף לוגיקה מותאמת אישית להבהוב על ידי שינוי הקובץ fastboot-info.txt.

קובץ fastboot-info.txt תומך בפקודות הבאות:

  • flash %s: מפעיל הבזקה של מחיצה נתונה. הארגומנטים האופציונליים כוללים את --slot-other,filename_path, and‎--apply-vbmeta.
  • update-super: עדכון של מחיצת העל.
  • if-wipe: מריץ באופן מותנה רכיב אחר אם צוין ניקוי.
  • erase %s: מוחק מחיצה נתונה (אפשר להשתמש בה רק בשילוב עם if-wipe -> למשל, if-wipe erase cache).

קביעת מצב נעילת הפלאש

אם אתם יוצרים flashboot daemon (flashbootd) בהתאמה אישית למכשיר, אתם צריכים להיות מסוגלים לקבל את תוכנת האתחול ואת מצב הנעילה של תוכנת האתחול. ‫getFlashLockState() @SystemApi מעביר את מצב תוכנת האתחול, וממשק ה-API של מערכת PersistentDataBlockManager.getFlashLockState() מחזיר את סטטוס הנעילה של תוכנת האתחול במכשירים תואמים.

הערך שמוחזר מצבים רפואיים
FLASH_LOCK_UNKNOWN מוחזר רק על ידי מכשירים שמשדרגים ל-Android מגרסה 7.x ומעלה שלא תמכו בעבר בשינויים בתוכנת האתחול שנדרשים כדי לקבל את סטטוס נעילת ההפעלה אם הם תמכו ביכולת נעילה/ביטול נעילה של ההפעלה.
  • מכשירים חדשים עם Android מגרסה 7.x ואילך צריכים להיות במצב FLASH_LOCK_LOCKED או FLASH_LOCK_UNLOCKED.
  • מכשירים שמשדרגים ל-Android 7.x ומעלה ולא תומכים בהפעלה של אפשרות הביטול/ההפעלה של ההבהוב צריכים להחזיר מצב FLASH_LOCK_LOCKED.
FLASH_LOCK_LOCKED מוחזר על ידי כל מכשיר שלא תומך בהפעלה של נעילה או ביטול נעילה (כלומר, המכשיר תמיד נעול), או כל מכשיר שתומך בהפעלה של נעילה או ביטול נעילה ונמצא במצב נעול.
FLASH_LOCK_UNLOCKED מוחזר מכל מכשיר שתומך בהפעלה של נעילה או ביטול נעילה ושהוא במצב לא נעול.

היצרנים צריכים לבדוק את הערכים שמוחזרים על ידי מכשירים עם תוכנות אתחול נעולות ולא נעולות. לדוגמה, ב-AOSP יש הטמעה לדוגמה שמחזירה ערך על סמך מאפיין האתחול ro.boot.flash.locked. קוד לדוגמה נמצא בספריות הבאות:

  • frameworks/base/services/core/java/com/android/server/PersistentDataBlockService.java
  • frameworks/base/core/java/android/service/persistentdata/PersistentDataBlockManager.java