En Android 10 y 11,
el ramdisk de la primera etapa
Contiene el objeto binario init de la primera etapa (que realiza la activación anticipada según lo especificado
por entradas fstab) y archivos fstab del proveedor. (Al igual que en Android 9 y versiones anteriores,
system.img
incluye el contenido de $TARGET_ROOT_OUT
).
En el caso de los dispositivos con un boot-ramdisk (no A/B), el init de la primera etapa es un ejecutable ubicado en
/init
Estos dispositivos activansystem.img
como/system
, Luego, realiza una operación de cambio de raíz para mover la activación de/system
a/
. El contenido del ramdisk se libera una vez que se completa la activación.Para los dispositivos que usan la recuperación como un ramdisk, el init de la primera etapa se encuentra en
/init
en el ramdisk de recuperación. Estos dispositivos primero cambian la raíz a/first_stage_ramdisk
para quitar los componentes de recuperación del entorno. procede de la misma manera que con los dispositivos con un disco RAM de arranque (es decir,system.img
como/system
, cambia la raíz para mover ese soporte a/
y libera contenido del ramdisk después de la activación). Siandroidboot.force_normal_boot=1
es presente en la línea de comandos del kernel (o bootconfig de Android 12 en adelante), los dispositivos se inician normalmente (en Android) en lugar de iniciarlo en el modo de recuperación.
Después de que finaliza el inicio de la primera etapa, ejecuta /system/bin/init
con el
El argumento selinux_setup
para compilar y cargar SELinux en el sistema. Finalmente,
init vuelve a ejecutar /system/bin/init
con el argumento second_stage
. En este
la fase principal de init se ejecuta y continúa el proceso de inicio mediante el
init.rc
.
En las siguientes secciones, se detallan las diferencias en los diseños de partición para dispositivos que no sean A/B dispositivos anteriores y posteriores a Android 10.
Diseños de partición (dispositivos que no son A/B)
En las siguientes secciones, se detallan las diferencias en los diseños de partición para dispositivos que no sean A/B dispositivos anteriores y posteriores a Android 10.
boot.img
Ramdisk (Android 8.x y versiones anteriores) |
Sistema como raíz (Android 9) |
Ramdisk (Android 10 y 11) |
---|---|---|
Contiene un kernel y un ramdisk.img -/ - init.rc - init - etc -> /system/etc - system/ (mount point) - vendor/ (mount point) - odm/ (mount point) ... |
Contiene solo un kernel de inicio normal. | Contiene un kernel y ramdisk.img -/ - init - vendor fstab files - system/ (mount point) - vendor/ (mount point) - odm/ (mount point) ... |
recuperación.img
Contiene un kernel de recuperación y un ramdisk.img
de recuperación.
system.img
Ramdisk (Android 8.x y versiones anteriores) |
Sistema como raíz (Android 9) |
Ramdisk (Android 10 y 11) |
---|---|---|
Contiene un system.img -/ - bin/ - etc - vendor -> /vendor - ... |
Contiene el contenido combinado de system.img -/ - init.rc - init - etc -> /system/etc - system/ - bin/ - etc/ - vendor -> /vendor - ... - vendor/ (mount point) - odm/ (mount point) ... |
Contiene el contenido combinado de system.img -/ - init.rc - init -> /system/bin/init - etc -> /system/etc - system/ - bin/ - etc/ - vendor -> /vendor - ... - vendor/ (mount point) - odm/ (mount point) ... |
Diseños de partición (dispositivos A/B)
En las siguientes secciones, se detallan las diferencias en los diseños de partición para dispositivos A/B antes y después de Android 10.
boot.img
Sistema como raíz (Android 9) |
Ramdisk (Android 10 y 11) |
---|---|
Contiene un kernel de inicio normal y el recovery-ramdisk
(BOARD_USES_RECOVERY_AS_BOOT := true ).Disco RAM de recuperación. solo se usa para iniciarse en la recuperación. |
Contiene un kernel de inicio normal y el recovery-ramdisk
(BOARD_USES_RECOVERY_AS_BOOT := true ). Disco RAM de recuperación se usa para iniciarse en Android y en la recuperación. 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 el contenido combinado de $TARGET_SYSTEM_OUT
y $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)
...