ใน Android 10 และ 11, Ramdisk ระยะแรกจะมีไบนารี init ระยะแรก (ซึ่งทำการติดตั้งล่วงหน้าตามที่ระบุไว้ในรายการ fstab) และไฟล์ fstab ของผู้ผลิต (เช่นเดียวกับใน Android 9 ลงไป system.img จะมีเนื้อหาของ $TARGET_ROOT_OUT)
สำหรับอุปกรณ์ที่มี boot-ramdisk (ไม่ใช่ A/B) init ระยะแรกจะเป็นไฟล์ปฏิบัติการแบบคงที่ซึ่งอยู่ที่
/initอุปกรณ์เหล่านี้จะติดตั้งsystem.imgเป็น/system, จากนั้นดำเนินการเปลี่ยนรูทเพื่อย้ายการติดตั้งที่/systemไปยัง/ระบบจะปล่อยเนื้อหาของ Ramdisk หลังจากติดตั้งเสร็จสมบูรณ์สำหรับอุปกรณ์ที่ใช้การกู้คืนเป็น Ramdisk, init ระยะแรกจะอยู่ที่
/initภายใน Ramdisk การกู้คืน อุปกรณ์เหล่านี้จะเปลี่ยนรูทเป็น/first_stage_ramdiskก่อนเพื่อนำคอมโพเนนต์การกู้คืนออกจากสภาพแวดล้อม จากนั้นดำเนินการเช่นเดียวกับอุปกรณ์ที่มี boot-ramdisk (นั่นคือ ติดตั้งsystem.imgเป็น/system, เปลี่ยนรูทเพื่อย้ายการติดตั้งนั้นไปยัง/และปล่อย เนื้อหา Ramdisk หลังจากติดตั้ง) หากandroidboot.force_normal_boot=1อยู่ในบรรทัดคำสั่งเคอร์เนล (หรือ bootconfig จาก Android 12 ขึ้นไป) อุปกรณ์จะบูตตามปกติ (เข้าสู่ Android) แทนที่จะบูตเข้าสู่โหมดการกู้คืน
หลังจาก init ระยะแรกเสร็จสิ้นแล้ว ระบบจะเรียกใช้ /system/bin/init ด้วยอาร์กิวเมนต์ selinux_setup เพื่อคอมไพล์และโหลด SELinux ลงในระบบ สุดท้าย init จะเรียกใช้ /system/bin/init อีกครั้งด้วยอาร์กิวเมนต์ second_stage เมื่อถึงจุดนี้ เฟสหลักของ init จะทำงานและดำเนินการกระบวนการบูตต่อโดยใช้สคริปต์ init.rc
ส่วนต่อไปนี้จะแสดงรายละเอียดความแตกต่างในเลย์เอาต์พาร์ติชันสำหรับอุปกรณ์ที่ไม่ใช่ A/B ก่อนและหลัง Android 10
เลย์เอาต์พาร์ติชัน (อุปกรณ์ที่ไม่ใช่ A/B)
ส่วนต่อไปนี้จะแสดงรายละเอียดความแตกต่างในเลย์เอาต์พาร์ติชันสำหรับอุปกรณ์ที่ไม่ใช่ A/B ก่อนและหลัง Android 10
boot.img
| Ramdisk (Android 8.x ลงไป) |
System as root (Android 9) |
Ramdisk (Android 10 and 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 ลงไป) |
System as root (Android 9) |
Ramdisk (Android 10 and 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
| System as root (Android 9) |
Ramdisk (Android 10 and 11) |
|---|---|
มีเคอร์เนลการบูตปกติและ Ramdisk การกู้คืน
(BOARD_USES_RECOVERY_AS_BOOT := true).Ramdisk การกู้คืน ใช้เพื่อบูตเข้าสู่การกู้คืนเท่านั้น |
มีเคอร์เนลการบูตปกติและ Ramdisk การกู้คืน
(BOARD_USES_RECOVERY_AS_BOOT := true) 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)
...