ใน Android 10 และ 11
แรมดิสก์ระยะแรก
มีไบนารี init ขั้นตอนแรก (ซึ่งทำการต่อเชื่อมก่อนกำหนดตามที่ระบุไว้)
ตามรายการ fstab) และไฟล์ fstab ของผู้ให้บริการ (เช่น ใน Android 9 และต่ำกว่า
system.img
ประกอบด้วยเนื้อหาของ $TARGET_ROOT_OUT
)
สำหรับอุปกรณ์ที่มี Boot-ramdisk (ไม่ใช่ A/B) ขั้นตอนแรกคือ static ไฟล์ปฏิบัติการอยู่ที่
/init
อุปกรณ์เหล่านี้จะต่อเชื่อมsystem.img
เป็น/system
จากนั้นดำเนินการเปลี่ยนรากเพื่อย้ายการต่อเชื่อมที่/system
ไปยัง/
เนื้อหาของ RAM จะแยกเป็นอิสระหลังจากต่อเชื่อมเสร็จแล้วสำหรับอุปกรณ์ที่ใช้การกู้คืนเป็น Ramdisk ขั้นตอนแรกของ init จะอยู่ที่
/init
ภายใน RAM การกู้คืน อุปกรณ์เหล่านี้จะเปลี่ยนรูทเป็น/first_stage_ramdisk
เพื่อนำคอมโพเนนต์การกู้คืนออกจากสภาพแวดล้อม จากนั้นให้ดำเนินการต่อกับอุปกรณ์ที่มี Boot-ramdisk (ซึ่งก็คือการต่อเชื่อมsystem.img
โดยใช้ชื่อ/system
เปลี่ยนรากเพื่อย้ายที่ต่อเชื่อมไปยัง/
และเพิ่มพื้นที่ว่าง เนื้อหา ramdisk หลังการต่อเชื่อม) หากandroidboot.force_normal_boot=1
คือ อยู่ในบรรทัดคำสั่งเคอร์เนล (หรือ Bootconfig จาก Android 12 ขึ้นไป) อุปกรณ์จะเปิดเครื่องตามปกติ (ใน Android) แทนที่จะเปิดเครื่องเข้าสู่ Recovery Mode
หลังจากเสร็จสิ้นระยะแรก 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 และต่ำกว่า) |
ระบบที่เป็นรูท (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) ... |
การกู้คืน.img
มีเคอร์เนลการกู้คืนและ ramdisk.img
การกู้คืน
ระบบ.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) |
---|---|
มีเคอร์เนลสำหรับการเปิดเครื่องปกติและ Recovery-ramdisk
(BOARD_USES_RECOVERY_AS_BOOT := true ).Recovery-ramdisk ใช้เพื่อเปิดเครื่องในการกู้คืนเท่านั้น |
มีเคอร์เนลสำหรับการเปิดเครื่องปกติและ Recovery-ramdisk
(BOARD_USES_RECOVERY_AS_BOOT := true ) RAM การกู้คืน ใช้เพื่อบูตเข้าสู่ทั้งการกู้คืนและ 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) ... |
ระบบ.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)
...