Partições do ramdisk

No Android 10 e 11, o ramdisk da primeira etapa contém o binário init de primeiro estágio, que realiza a montagem antecipada conforme especificado. por entradas fstab) e arquivos fstab do fornecedor. Como no Android 9 e versões anteriores, system.img tem o conteúdo de $TARGET_ROOT_OUT.

  • Para dispositivos com ramdisk de inicialização (não A/B), o init de primeiro estágio é um localizado em /init. Esses dispositivos ativam system.img como /system, Em seguida, execute 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 a recuperação como ramdisk, o init de primeiro estágio está localizado em /init no ramdisk de recuperação. Esses dispositivos primeiro mudam do raiz para /first_stage_ramdisk para remover os componentes de recuperação do ambiente; proceda da mesma forma que os dispositivos com um ramdisk de inicialização (ou seja, system.img como /system, alterne a raiz para mover essa montagem para / e libere conteúdo do ramdisk após a montagem). Se androidboot.force_normal_boot=1 for presentes na linha de comando do kernel (ou bootconfig do Android 12 em diante), os dispositivos são inicializados normalmente (no Android). em vez de inicializar no modo de recuperação.

Depois que o init do primeiro estágio é concluído, ele executa /system/bin/init com o selinux_setup para compilar e carregar o SELinux no sistema. Por fim, O init executa /system/bin/init novamente com o argumento second_stage. Neste a fase principal do init é executada e continua o processo de inicialização usando o init.rc.

As seções a seguir detalham as diferenças nos layouts de partições para 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ções para não A/B antes e depois do Android 10.

inicialização.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.

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.

ramdisk.img
  -/
    - init
    - vendor fstab files
    - system/ (mount point)
    - vendor/ (mount point)
    - odm/ (mount point)
    ...
    

imagem.recuperação

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.

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

Contém o conteúdo mesclado de $TARGET_SYSTEM_OUT e $TARGET_ROOT_OUT.

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

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

Recuperação-ramdisk é usada apenas para inicializar na recuperação.
Contém kernel de inicialização normal e ramdisk de recuperação (BOARD_USES_RECOVERY_AS_BOOT := true).

Recuperação do ramdisk é usada 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)
    ...