מחיצות של Ramdisk

בגרסאות 10 ו-11 של Android, שלב ה-ramdisk בשלב הראשון מכיל את הבינארי הראשון מסוג אתחול (שמבצע טעינה מוקדמת כפי שצוין) לפי רשומות fstab) וקובצי fstab של הספק. (כמו ב-Android 9 ומטה, system.img מכיל את התוכן של $TARGET_ROOT_OUT.)

  • במכשירים עם רדיסק אתחול (לא A/B), אתחול השלב הראשון הוא סטטי קובץ ההפעלה נמצא ב-/init. המכשירים האלה טוענים את system.img בתור /system, ואז לבצע פעולת שורש של מתג כדי להעביר את הטעינה ב-/system אל /. התוכן של הרדיסק משוחרר לאחר השלמת הטעינה.

  • במכשירים שבהם נעשה שימוש בשחזור כ-ramdisk, אתחול השלב הראשון ממוקם ב- /init בתוך ברדיסק השחזור. המכשירים האלה עוברים קודם לרמה הבסיסית (root) אל /first_stage_ramdisk כדי להסיר את רכיבי השחזור מהסביבה, לאחר מכן ממשיכים בדיוק כמו מכשירים עם רדיסק אתחול (כלומר, מתקינים system.img בתור /system, צריך להחליף ברמה הבסיסית (root) כדי להעביר את הטעינה הזו אל /, ובחינם תוכן של ramdisk לאחר הטעינה). אם androidboot.force_normal_boot=1 הוא קיימת בשורת הפקודה בליבה (kernel) (או startconfig מ-Android 12 ואילך), המכשירים מופעלים כרגיל (ל-Android) במקום לאתחל במצב שחזור.

אחרי שהשלב הראשון מסתיים, הוא מבצע את הפעולה /system/bin/init עם הארגומנט selinux_setup כדי להדר ולטעון את SELinux במערכת. לבסוף, init יריץ שוב את /system/bin/init עם הארגומנט second_stage. בשעה הזו השלב הראשי של אתחול ריצות וממשיך את תהליך האתחול באמצעות init.rc סקריפטים.

הקטעים הבאים מפרטים את ההבדלים בפריסות המחיצות של השותפים שאינם A/B מכשירים לפני ואחרי Android 10.

פריסות מחיצות (מכשירים שהם לא מסוג A/B)

הקטעים הבאים מפרטים את ההבדלים בפריסות המחיצות של השותפים שאינם A/B מכשירים לפני ואחרי Android 10.

https://support.google.com

Ramdisk
(Android 8.x ומטה)
מערכת בתור הרמה הבסיסית (root)
(Android 9)
Ramdisk
(Android 10 ו- 11)

הוא מכיל ליבה וramdisk.img.

ramdisk.img
  -/
    - init.rc
    - init
    - etc -> /system/etc
    - system/ (mount point)
    - vendor/ (mount point)
    - odm/ (mount point)
    ...
    
מכיל ליבה (kernel) רגילה של אתחול בלבד.

הוא מכיל ליבה ו-ramdisk.img.

ramdisk.img
  -/
    - init
    - vendor fstab files
    - system/ (mount point)
    - vendor/ (mount point)
    - odm/ (mount point)
    ...
    

שחזור.img

מכיל ליבה (kernel) לשחזור ו-ramdisk.img לשחזור

system.img

Ramdisk
(Android 8.x ומטה)
מערכת בתור הרמה הבסיסית (root)
(Android 9)
Ramdisk
(Android 10 ו- 11)

מכיל system.img.

system.img
  -/
    - bin/
    - etc
    - vendor -> /vendor
    - ...
   

מכיל את התוכן שמוזג של $TARGET_SYSTEM_OUT וגם $TARGET_ROOT_OUT.

system.img
  -/
    - init.rc
    - init
    - etc -> /system/etc
    - system/
      - bin/
      - etc/
      - vendor -> /vendor
      - ...
    - vendor/ (mount point)
    - odm/ (mount point)
    ...
    

מכיל את התוכן שמוזג של $TARGET_SYSTEM_OUT וגם $TARGET_ROOT_OUT.

system.img
  -/
    - init.rc
    - init -> /system/bin/init
    - etc -> /system/etc
    - system/
      - bin/
      - etc/
      - vendor -> /vendor
      - ...
    - vendor/ (mount point)
    - odm/ (mount point)
    ...
    

פריסות מחיצות (מכשירי A/B)

הקטעים הבאים מפרטים את ההבדלים בפריסות המחיצות של מכשירי A/B לפני ואחרי Android 10.

https://support.google.com

מערכת בתור הרמה הבסיסית (root)
(Android 9)
Ramdisk
(Android 10 ו- 11)
מכילה ליבה (kernel) רגילה של אתחול ו-Ramdisk התאוששות (BOARD_USES_RECOVERY_AS_BOOT := true).

רדיסק שחזור משמשת רק לאתחול לצורך שחזור.
מכילה ליבה (kernel) רגילה של אתחול ו-Ramdisk התאוששות (BOARD_USES_RECOVERY_AS_BOOT := true).

רדיסק לשחזור משמשת לאתחול גם בשחזור וגם ב-Android.
ramdisk.img
  -/
    - init -> /system/bin/init
    - first_stage_ramdisk
       - vendor fstab files
    - etc -> /system/etc
    - system/ (mount point)
    - vendor/ (mount point)
    - odm/ (mount point)
    ...
    

system.img

מכיל את התוכן שמוזג של $TARGET_SYSTEM_OUT ו-$TARGET_ROOT_OUT.

system.img
  -/
    - init.rc
    - init -> /system/bin/init
    - etc -> /system/etc
    - system/
      - bin/
      - etc/
      - vendor -> /vendor
      - ...
    - vendor/ (mount point)
    - odm/ (mount point)
    ...