Android 10 ve 11'de ilk aşama ramdisk'i, ilk aşama init ikilisini (fstab girişlerinde belirtildiği gibi erken bağlama işlemini gerçekleştirir) ve tedarikçi 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 ramdisk'i olan cihazlarda (A/B olmayan) ilk aşama init,
/init
adresinde bulunan statik bir yürütülebilir dosyadır. Bu cihazlar,system.img
'ü/system
olarak bağlar ve ardından/system
'teki bağlamayı/
'ye taşımak için bir kök değiştirme işlemi gerçekleştirir. Montaj tamamlandıktan sonra ramdisk'in içeriği serbest bırakılır.Kurtarma işlemini ramdisk olarak kullanan cihazlarda ilk aşama init, kurtarma ramdisk'inde
/init
adresinde bulunur. Bu cihazlar, kurtarma bileşenlerini ortamdan kaldırmak için önce kökü/first_stage_ramdisk
olarak değiştirir, ardından önyükleme ramdisk'i olan cihazlarla aynı şekilde devam eder (yani,system.img
'ü/system
olarak bağlar, bu bağlamayı/
'a taşımak için kökü değiştirir ve bağlama işleminden sonra ramdisk içeriğini serbest bırakır). Çekirdek komut satırında (veya Android 12'den itibaren bootconfig)androidboot.force_normal_boot=1
varsa cihazlar kurtarma moduna değil, normal şekilde (Android'e) önyükleme yapar.
İlk aşama başlatma tamamlandıktan sonra SELinux'u derlemek ve sisteme yüklemek için /system/bin/init
öğesini selinux_setup
bağımsız değişkeniyle birlikte yürütür. Son olarak, init, /system/bin/init
bağımsız değişkenini second_stage
bağımsız değişkeniyle tekrar yürütür. Bu noktada, init'in ana aşaması çalışır ve init.rc
komut dosyalarını kullanarak önyükleme işlemine devam eder.
Aşağıdaki bölümlerde, Android 10'dan önce ve sonra A/B olmayan cihazlarda bölüm düzenlerindeki farklılıklar ayrıntılı olarak açıklanmıştır.
Bölüm yerleşimleri (A/B olmayan cihazlar)
Aşağıdaki bölümlerde, Android 10'dan önce ve sonra A/B olmayan cihazlarda bölüm düzenlerindeki farklılıklar ayrıntılı olarak açıklanmıştır.
önyükleme.img
Ramdisk (Android 8.x ve önceki sürümler) |
Kök olarak sistem (Android 9) |
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
Kurtarma çekirdeği ve kurtarma ramdisk.img
system.img
Ramdisk (Android 8.x ve önceki sürümler) |
Kök olarak sistem (Android 9) |
Ramdisk (Android 10 ve 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) ... |
Bölüm yerleşimleri (A/B cihazlar)
Aşağıdaki bölümlerde, Android 10'dan önce ve sonra A/B cihazlar için bölüm düzenlerindeki farklılıklar ayrıntılı olarak açıklanmıştır.
boot.img
Kök olarak sistem (Android 9) |
Ramdisk (Android 10 ve 11) |
---|---|
Normal önyükleme çekirdeğini ve kurtarma-ramdisk'i (BOARD_USES_RECOVERY_AS_BOOT := true ) içerir.Kurtarma-ramdisk yalnızca kurtarma moduna önyükleme yapmak için kullanılır. |
Normal başlatma çekirdeği ve kurtarma RAM diski (BOARD_USES_RECOVERY_AS_BOOT := true ) içerir. Kurtarma RAM diski, hem kurtarma işlemini hem de Android'i başlatmak 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çeriklerini içerir.
system.img
-/
- init.rc
- init -> /system/bin/init
- etc -> /system/etc
- system/
- bin/
- etc/
- vendor -> /vendor
- ...
- vendor/ (mount point)
- odm/ (mount point)
...