No Android 10 e 11,
o ramdisk da primeira etapa
contém o binário de inicialização da primeira etapa (que realiza a montagem antecipada conforme especificado
pelas entradas do fstab) e os arquivos do 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 um boot-ramdisk (não A/B), a inicialização da primeira etapa é um executável estático localizado em
/init
. Esses dispositivos montamsystem.img
como/system
e, em seguida, executam uma operação de raiz de alternância para mover a montagem em/system
para/
. O conteúdo do ramdisk é liberado após a conclusão da montagem.Para dispositivos que usam a recuperação como um ramdisk, a inicialização do primeiro estágio está localizada em
/init
no ramdisk de recuperação. Esses dispositivos primeiro mudam a raiz para/first_stage_ramdisk
para remover os componentes de recuperação do ambiente e depois seguem o mesmo caminho que os dispositivos com um boot-ramdisk, ou seja, montamsystem.img
como/system
, mudam a raiz para mover essa montagem para/
e liberam o conteúdo 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 serão inicializados normalmente (no Android) em vez de inicializar no modo de recuperação.
Após a conclusão da inicialização do primeiro estágio, ela executa /system/bin/init
com o
argumento selinux_setup
para compilar e carregar o SELinux no sistema. Por fim,
o init executa /system/bin/init
novamente com o argumento second_stage
. Nesse
ponto, a fase principal da inicialização é 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 abaixo detalham as diferenças nos layouts de partição para dispositivos não A/B antes e depois do Android 10.
boot.img
Ramdisk (Android 8.x e versões anteriores) |
Sistema como raiz (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) ... |
recovery.img
Contém um kernel de recuperação e um ramdisk.img
de recuperação.
system.img
Ramdisk (Android 8.x e versões anteriores) |
Sistema como raiz (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.
boot.img
Sistema como raiz (Android 9) |
Ramdisk (Android 10 e 11) |
---|---|
Contém o kernel de inicialização normal e o recovery-ramdisk
(BOARD_USES_RECOVERY_AS_BOOT := true ).Recovery-ramdisk é usado apenas para inicializar a recuperação. |
Contém kernel de inicialização normal e ramdisk de recuperação
(BOARD_USES_RECOVERY_AS_BOOT := true ). O ramdisk de recuperação é usado para inicializar na recuperação e no 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
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)
...