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

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

צור תצורת פלאש מותאמת אישית

הוראות אתחול מהיר מוגדרות בחפץ הנקרא 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 ).

קבע את מצב נעילת הבזק

אם אתה בונה דמון פלאש אתחול מותאם אישית (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