ב-Android 10 וב-Android 11, ה-ramdisk של השלב הראשון מכיל את הקובץ הבינארי של השלב הראשון (שמבצע הרכבה מוקדמת כפי שמצוין ברשומות fstab) וקבצים של ספק fstab. (כמו ב-Android 9 ובגרסאות קודמות, system.img מכיל את התוכן של $TARGET_ROOT_OUT).
במכשירים עם boot-ramdisk (לא A/B), שלב האתחול הראשון הוא קובץ הפעלה סטטי שנמצא ב-
/init. המכשירים האלה מטמיעים אתsystem.imgבתור/system, ואז מבצעים פעולת החלפה של שורש כדי להעביר את ההטמעה ב-/systemאל/. התוכן של ה-ramdisk משוחרר אחרי שההרכבה מסתיימת.במכשירים שמשתמשים בשחזור כ-ramdisk, שלב האתחול הראשון נמצא במיקום
/initבתוך ה-ramdisk של השחזור. במכשירים האלה, המערכת עוברת קודם אל/first_stage_ramdiskכדי להסיר את רכיבי השחזור מהסביבה, ואז ממשיכה כמו במכשירים עם boot-ramdisk (כלומר, היא מטמיעה אתsystem.imgבתור/system, עוברת אל root כדי להעביר את ההטמעה אל/, ומשחררת את התוכן של ramdisk אחרי ההטמעה). אםandroidboot.force_normal_boot=1מופיע בשורת הפקודה של ליבת המערכת (או ב-bootconfig מ-Android 12 ואילך), המכשירים מופעלים כרגיל (ב-Android) במקום במצב שחזור.
אחרי שסיום האתחול של השלב הראשון, הפקודה /system/bin/init מופעלת עם הארגומנט selinux_setup כדי לקמפל ולטעון את SELinux למערכת. לבסוף, הפקודה init מופעלת שוב עם הארגומנט second_stage./system/bin/init בשלב הזה, השלב הראשי של init מופעל וממשיך את תהליך האתחול באמצעות סקריפטים של init.rc.
בקטעים הבאים מפורטים ההבדלים בפריסות של מחיצות במכשירים שאינם A/B לפני ואחרי Android 10.
פריסות של מחיצות (מכשירים שלא תומכים ב-A/B)
בקטעים הבאים מפורטים ההבדלים בפריסות של מחיצות במכשירים שאינם A/B לפני ואחרי Android 10.
boot.img
| Ramdisk (Android מגרסה 8.x ומטה) |
מערכת כשורש (Android 9) |
Ramdisk (Android 10 ו-11) |
|---|---|---|
מכיל ליבה ו
ramdisk.img
-/
- init.rc
- init
- etc -> /system/etc
- system/ (mount point)
- vendor/ (mount point)
- odm/ (mount point)
...
|
מכיל רק ליבת אתחול רגילה. | מכיל ליבה ו-
ramdisk.img
-/
- init
- vendor fstab files
- system/ (mount point)
- vendor/ (mount point)
- odm/ (mount point)
...
|
recovery.img
מכיל ליבת שחזור וramdisk.img שחזור
system.img
| Ramdisk (Android מגרסה 8.x ומטה) |
מערכת כשורש (Android 9) |
Ramdisk (Android 10 ו-11) |
|---|---|---|
כולל
system.img
-/
- bin/
- etc
- vendor -> /vendor
- ...
|
מכיל את התוכן הממוזג של
system.img
-/
- init.rc
- init
- etc -> /system/etc
- system/
- bin/
- etc/
- vendor -> /vendor
- ...
- vendor/ (mount point)
- odm/ (mount point)
...
|
מכיל את התוכן הממוזג של
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 ואחריו.
boot.img
| מערכת כשורש (Android 9) |
Ramdisk (Android 10 ו-11) |
|---|---|
מכיל את ליבת האתחול הרגילה ואת ramdisk לשחזור
(BOARD_USES_RECOVERY_AS_BOOT := true).ramdisk לשחזור משמש רק לאתחול למצב שחזור. |
מכיל את ליבת האתחול הרגילה ואת recovery-ramdisk
(BOARD_USES_RECOVERY_AS_BOOT := true). recovery-ramdisk משמש לאתחול גם למצב שחזור וגם ל-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)
...