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

בדף הזה מוסבר על כמה משימות שאולי תצטרכו לבצע אם אתם מגדירים גרסת 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