No Android 10 e 11, o ramdisk do primeiro estágio contém o binário init do primeiro estágio (que executa a montagem antecipada conforme especificado pelas entradas fstab) e os arquivos fstab do fornecedor. (Como no Android 9 e versões anteriores, system.img
contém o conteúdo de $TARGET_ROOT_OUT
.)
Para dispositivos com disco ram de inicialização (não A/B), o primeiro estágio init é um executável estático localizado em
/init
. Esses dispositivos montamsystem.img
como/system
e, em seguida, executam uma operação de switch root para mover a montagem em/system
para/
. O conteúdo do ramdisk é liberado após a conclusão da montagem.Para dispositivos que usam recuperação como disco RAM, o primeiro estágio de inicialização está localizado em
/init
dentro do disco RAM de recuperação. Esses dispositivos primeiro alternam o root para/first_stage_ramdisk
para remover os componentes de recuperação do ambiente e, em seguida, procedem da mesma forma que os dispositivos com um disco ram de inicialização (ou seja, montesystem.img
como/system
, alterne o root para mover essa montagem para/
e conteúdo livre do ramdisk após a montagem). Seandroidboot.force_normal_boot=1
estiver presente na linha de comando do kernel (ou bootconfig do Android 12 em diante), os dispositivos inicializarão normalmente (no Android) em vez de inicializarem no modo de recuperação.
Após a conclusão do primeiro estágio init, ele executa /system/bin/init
com o argumento selinux_setup
para compilar e carregar o SELinux no sistema. Finalmente, o init executa /system/bin/init
novamente com o argumento second_stage
. Neste ponto, a fase principal do init é executada e continua o processo de inicialização usando os scripts init.rc
As seções a seguir detalham as diferenças nos layouts de partição para dispositivos não A/B antes e depois do Android 10.
Layouts de partição (dispositivos não A/B)
As seções a seguir detalham as diferenças nos layouts de partição para dispositivos não A/B antes e depois do Android 10.
inicialização.img
Ramdisk (Android 8.x e inferior) | Sistema como root (Android 9) | Ramdisk (Android 10 e 11) |
---|---|---|
Contém um kernel e um ramdisk.img -/ - init.rc - init - etc -> /system/etc - system/ (mount point) - vendor/ (mount point) - odm/ (mount point) ... | Contém apenas um kernel de inicialização normal. | Contém um kernel e ramdisk.img -/ - init - vendor fstab files - system/ (mount point) - vendor/ (mount point) - odm/ (mount point) ... |
recuperação.img
Contém um kernel de recuperação e um ramdisk.img
de recuperação
sistema.img
Ramdisk (Android 8.x e inferior) | Sistema como root (Android 9) | Ramdisk (Android 10 e 11) |
---|---|---|
Contém um system.img -/ - bin/ - etc - vendor -> /vendor - ... | Contém o conteúdo mesclado de system.img -/ - init.rc - init - etc -> /system/etc - system/ - bin/ - etc/ - vendor -> /vendor - ... - vendor/ (mount point) - odm/ (mount point) ... | Contém o conteúdo mesclado de system.img -/ - init.rc - init -> /system/bin/init - etc -> /system/etc - system/ - bin/ - etc/ - vendor -> /vendor - ... - vendor/ (mount point) - odm/ (mount point) ... |
Layouts de partição (dispositivos A/B)
As seções a seguir detalham as diferenças nos layouts de partição para dispositivos A/B antes e depois do Android 10.
inicialização.img
Sistema como root (Android 9) | Ramdisk (Android 10 e 11) |
---|---|
Contém kernel de inicialização normal e ramdisk de recuperação ( BOARD_USES_RECOVERY_AS_BOOT := true ).Recovery-ramdisk é usado apenas para inicializar na recuperação. | Contém kernel de inicialização normal e ramdisk de recuperação ( BOARD_USES_RECOVERY_AS_BOOT := true ).O Recovery-ramdisk é usado para inicializar o Recovery e o 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) ... |
sistema.img
Contém o conteúdo mesclado de $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)
...