Di Android 10 dan 11,
ramdisk tahap pertama
berisi biner init tahap pertama (yang melakukan pemasangan awal seperti yang ditentukan
oleh entri fstab) dan file fstab vendor. (Seperti pada Android 9 dan yang lebih rendah,
system.img
berisi konten $TARGET_ROOT_OUT
.)
Untuk perangkat dengan boot-ramdisk (non-A/B), init tahap pertama adalah yang dapat dieksekusi yang berada di
/init
. Perangkat ini memasangsystem.img
sebagai/system
, lalu melakukan operasi root tombol untuk memindahkan pemasangan di/system
ke/
. Isi ramdisk akan dikosongkan setelah pemasangan selesai.Untuk perangkat yang menggunakan pemulihan sebagai {i>ramdisk<i}, init tahap pertama terletak di
/init
dalam ramdisk pemulihan. Perangkat ini pertama-tama mengalihkan root ke/first_stage_ramdisk
untuk menghapus komponen pemulihan dari lingkungan, lalu melanjutkan seperti perangkat dengan boot-ramdisk (yaitu, memasangsystem.img
sebagai/system
, mengalihkan root untuk memindahkan pemasangan tersebut ke/
, dan menghapus konten ramdisk setelah pemasangan). Jikaandroidboot.force_normal_boot=1
ada di command line kernel (atau bootconfig dari Android 12 dan seterusnya), perangkat akan melakukan booting secara normal (ke Android) bukan melakukan booting ke mode pemulihan.
Setelah init tahap pertama selesai, instance akan dieksekusi dengan /system/bin/init
selinux_setup
untuk mengompilasi dan memuat SELinux ke sistem. Terakhir,
init mengeksekusi /system/bin/init
lagi dengan argumen second_stage
. Di
fase utama dari init berjalan dan melanjutkan proses {i>booting<i} menggunakan
Skrip init.rc
.
Bagian berikut menjelaskan perbedaan tata letak partisi untuk perangkat non-A/B sebelum dan sesudah Android 10.
Tata letak partisi (perangkat non-A/B)
Bagian berikut menjelaskan perbedaan dalam tata letak partisi untuk non-A/B perangkat sebelum dan setelah Android 10.
boot.img
Ramdisk (Android 8.x dan yang lebih lama) |
Sistem sebagai root (Android 9) |
Ramdisk (Android 10 dan 11) |
---|---|---|
Berisi kernel dan ramdisk.img -/ - init.rc - init - etc -> /system/etc - system/ (mount point) - vendor/ (mount point) - odm/ (mount point) ... |
Hanya berisi kernel boot normal. | Berisi kernel dan ramdisk.img -/ - init - vendor fstab files - system/ (mount point) - vendor/ (mount point) - odm/ (mount point) ... |
recovery.img
Berisi kernel pemulihan dan ramdisk.img
pemulihan
system.img
Ramdisk (Android 8.x dan yang lebih lama) |
Sistem sebagai root (Android 9) |
Ramdisk (Android 10 dan 11) |
---|---|---|
Berisi system.img -/ - bin/ - etc - vendor -> /vendor - ... |
Berisi konten gabungan system.img -/ - init.rc - init - etc -> /system/etc - system/ - bin/ - etc/ - vendor -> /vendor - ... - vendor/ (mount point) - odm/ (mount point) ... |
Berisi konten gabungan system.img -/ - init.rc - init -> /system/bin/init - etc -> /system/etc - system/ - bin/ - etc/ - vendor -> /vendor - ... - vendor/ (mount point) - odm/ (mount point) ... |
Tata letak partisi (perangkat A/B)
Bagian berikut menjelaskan perbedaan dalam tata letak partisi untuk perangkat A/B sebelum dan setelah Android 10.
boot.img
Sistem sebagai root (Android 9) |
Ramdisk (Android 10 dan 11) |
---|---|
Berisi kernel booting normal dan recovery-ramdisk
(BOARD_USES_RECOVERY_AS_BOOT := true ).Recovery-ramdisk hanya digunakan untuk melakukan booting ke mode pemulihan. |
Berisi boot kernel normal dan ramdisk pemulihan
(BOARD_USES_RECOVERY_AS_BOOT := true ). RAMdisk pemulihan digunakan untuk mem-{i>booting<i} ke pemulihan dan 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
Berisi konten gabungan $TARGET_SYSTEM_OUT
dan $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)
...