In Android 10 e 11,
il ramdisk di primo stadio
contiene il file binario init della prima fase (che esegue il montaggio anticipato come specificato
da voci fstab) e file fstab del fornitore. (Come in Android 9 e versioni precedenti,
system.img
include i contenuti di $TARGET_ROOT_OUT
.
Per i dispositivi con un disco di avvio (non A/B), l'init della prima fase è un eseguibile posizionato all'indirizzo
/init
. Questi dispositivi montanosystem.img
come/system
, quindi esegui un'operazione di cambio root per spostare il montaggio in/system
in/
. I contenuti del ramdisk vengono liberati al termine del montaggio.Per i dispositivi che utilizzano il ripristino come ramdisk, l'init della prima fase si trova nella
/init
all'interno del ramdisk di ripristino. Questi dispositivi eseguono prima il passaggio alla root/first_stage_ramdisk
per rimuovere i componenti di ripristino dall'ambiente, procedi allo stesso modo dei dispositivi con un boot-ramdisk (ossia,system.img
come/system
, cambia root per spostare il supporto in/
e libera contenuti del ramdisk dopo il montaggio). Seandroidboot.force_normal_boot=1
è presenti nella riga di comando del kernel (o bootconfig da Android Dalla versione 12 in poi), i dispositivi si avviano normalmente (in Android) anziché avviare la modalità Recovery.
Al termine dell'inizio della prima fase, esegue /system/bin/init
con
Argomento selinux_setup
per compilare e caricare SELinux sul sistema. Infine,
init esegue nuovamente /system/bin/init
con l'argomento second_stage
. In questo momento
punto, la fase principale dell'init viene eseguita e continua il processo di avvio utilizzando
init.rc
script.
Le seguenti sezioni descrivono in dettaglio le differenze nei layout di partizione per le unità non A/B prima e dopo Android 10.
Layout di partizione (dispositivi non A/B)
Le seguenti sezioni descrivono in dettaglio le differenze nei layout di partizione per le unità non A/B prima e dopo Android 10.
boot.img
Ramdisk (Android 8.x e versioni precedenti) |
Sistema come root (Android 9) |
Ramdisk (Android 10 e 11) |
---|---|---|
Contiene un kernel e un ramdisk.img -/ - init.rc - init - etc -> /system/etc - system/ (mount point) - vendor/ (mount point) - odm/ (mount point) ... |
Contiene solo un kernel di avvio normale. | Contiene un kernel e ramdisk.img -/ - init - vendor fstab files - system/ (mount point) - vendor/ (mount point) - odm/ (mount point) ... |
ripristino.img
Contiene un kernel di recupero e un ramdisk.img
di recupero
system.img
Ramdisk (Android 8.x e versioni precedenti) |
Sistema come root (Android 9) |
Ramdisk (Android 10 e 11) |
---|---|---|
Contiene un valore system.img -/ - bin/ - etc - vendor -> /vendor - ... |
Contiene i contenuti uniti di system.img -/ - init.rc - init - etc -> /system/etc - system/ - bin/ - etc/ - vendor -> /vendor - ... - vendor/ (mount point) - odm/ (mount point) ... |
Contiene i contenuti uniti di system.img -/ - init.rc - init -> /system/bin/init - etc -> /system/etc - system/ - bin/ - etc/ - vendor -> /vendor - ... - vendor/ (mount point) - odm/ (mount point) ... |
Layout di partizione (dispositivi A/B)
Le seguenti sezioni descrivono in dettaglio le differenze nei layout di partizione per i dispositivi A/B prima e dopo Android 10.
boot.img
Sistema come root (Android 9) |
Ramdisk (Android 10 e 11) |
---|---|
Contiene un kernel di avvio normale e un ramdisk di ripristino
(BOARD_USES_RECOVERY_AS_BOOT := true ).Rramdisk di ripristino è usato solo per avviare il ripristino. |
Contiene un kernel di avvio normale e un ramdisk di ripristino
(BOARD_USES_RECOVERY_AS_BOOT := true ) ramdisk di ripristino sia per il ripristino che per 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
Contiene i contenuti uniti di $TARGET_SYSTEM_OUT
e $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)
...