Particiones de ramdisk

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 activan system.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). Si androidboot.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.

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.

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.

system.img
  -/
    - bin/
    - etc
    - vendor -> /vendor
    - ...
   

Contiene el contenido combinado de $TARGET_SYSTEM_OUT y $TARGET_ROOT_OUT

system.img
  -/
    - init.rc
    - init
    - etc -> /system/etc
    - system/
      - bin/
      - etc/
      - vendor -> /vendor
      - ...
    - vendor/ (mount point)
    - odm/ (mount point)
    ...
    

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)
    ...
    

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)
    ...