Android 10 ve 11'de, ilk aşama ramdiski, ilk aşama init ikili dosyasını (fstab girişleri tarafından belirtildiği gibi erken montajı gerçekleştirir) ve satıcı fstab dosyalarını içerir. (Android 9 ve önceki sürümlerde olduğu gibi system.img
, $TARGET_ROOT_OUT
içeriğini içerir.)
Önyükleme ramdiski (A/B olmayan) aygıtlar için, ilk aşama init,
/init
konumunda bulunan statik bir yürütülebilir dosyadır. Bu aygıtlarsystem.img
dosyasını/system
olarak bağlar, ardından/system
konumundaki bağlantıyı/
konumuna taşımak için bir anahtar kök işlemi gerçekleştirir. Ramdiskin içeriği montaj tamamlandıktan sonra serbest bırakılır.Kurtarmayı ramdisk olarak kullanan aygıtlar için, ilk aşama init, kurtarma ramdiski içindeki
/init
konumunda bulunur. Bu aygıtlar önce kurtarma bileşenlerini ortamdan kaldırmak için kökü/first_stage_ramdisk
olarak değiştirir, ardından önyükleme-ramdisk'i olan aygıtlarla aynı işlemi sürdürür (yani,system.img
/system
olarak bağlayın, bu bağlantıyı/
ye taşımak için kökü değiştirin ve montajdan sonra ücretsiz ramdisk içeriği). Çekirdek komut satırında (veya Android 12'den itibaren bootconfig)androidboot.force_normal_boot=1
mevcutsa, cihazlar kurtarma moduna önyükleme yapmak yerine normal şekilde (Android'e) önyükleme yapar.
İlk aşama init tamamlandıktan sonra, SELinux'u derlemek ve sisteme yüklemek için /system/bin/init
selinux_setup
argümanıyla çalıştırır. Son olarak init, /system/bin/init
second_stage
argümanıyla yeniden çalıştırır. Bu noktada init'in ana aşaması init.rc
betiklerini kullanarak önyükleme işlemini çalıştırır ve devam ettirir.
Aşağıdaki bölümlerde, Android 10'dan önceki ve sonraki A/B olmayan cihazlar için bölüm düzenlerindeki farklılıklar ayrıntılı olarak verilmektedir.
Bölüm düzenleri (A/B olmayan cihazlar)
Aşağıdaki bölümlerde, Android 10'dan önceki ve sonraki A/B olmayan cihazlar için bölüm düzenlerindeki farklılıklar ayrıntılı olarak verilmektedir.
boot.img
Ramdisk (Android 8.x ve altı) | Kök olarak sistem (Android9) | Ramdisk (Android 10 ve 11) |
---|---|---|
Bir çekirdek ve bir ramdisk.img -/ - init.rc - init - etc -> /system/etc - system/ (mount point) - vendor/ (mount point) - odm/ (mount point) ... | Yalnızca normal bir önyükleme çekirdeği içerir. | Bir çekirdek ve ramdisk.img -/ - init - vendor fstab files - system/ (mount point) - vendor/ (mount point) - odm/ (mount point) ... |
Recovery.img
Bir kurtarma çekirdeği ve bir kurtarma ramdisk.img
içerir
sistem.img
Ramdisk (Android 8.x ve altı) | Kök olarak sistem (Android9) | Ramdisk (Android 10 ve 11) |
---|---|---|
Bir 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) ... |
Bölüm düzenleri (A/B cihazları)
Aşağıdaki bölümlerde, Android 10'dan önceki ve sonraki A/B cihazları için bölüm düzenlerindeki farklılıklar ayrıntılı olarak verilmektedir.
boot.img
Kök olarak sistem (Android9) | Ramdisk (Android 10 ve 11) |
---|---|
Normal önyükleme çekirdeğini ve kurtarma ramdiskini içerir ( BOARD_USES_RECOVERY_AS_BOOT := true ).Recovery-ramdisk yalnızca kurtarma işlemine önyükleme yapmak için kullanılır. | Normal önyükleme çekirdeğini ve kurtarma ramdiskini içerir ( BOARD_USES_RECOVERY_AS_BOOT := true ).Recovery-ramdisk, hem kurtarmaya hem de Android'e önyükleme yapmak için kullanılır. ramdisk.img -/ - init -> /system/bin/init - first_stage_ramdisk - vendor fstab files - etc -> /system/etc - system/ (mount point) - vendor/ (mount point) - odm/ (mount point) ... |
sistem.img
$TARGET_SYSTEM_OUT
ve $TARGET_ROOT_OUT
öğelerinin birleştirilmiş içeriğini içerir.
system.img
-/
- init.rc
- init -> /system/bin/init
- etc -> /system/etc
- system/
- bin/
- etc/
- vendor -> /vendor
- ...
- vendor/ (mount point)
- odm/ (mount point)
...