Partitions Ramdisk

Sur Android 10 et 11, le premier étage du ramdisk contient le binaire d'initialisation de la première étape (qui effectue un installation anticipée par entrées fstab) et les fichiers fstab du fournisseur. (Comme dans Android 9 et versions antérieures, system.img inclut le contenu de $TARGET_ROOT_OUT.)

  • Pour les appareils équipés d'un disque RAM de démarrage (autre que A/B), l'initialisation de première étape est une configuration Exécutable situé à l'emplacement /init. Ces appareils installent system.img en tant que /system, Ensuite, effectuez une opération racine de commutateur pour déplacer le montage de /system vers /. Le contenu du disque RAM est libéré une fois l'installation terminée.

  • Pour les appareils qui utilisent la récupération en tant que ramdisk, le premier niveau d'initialisation /init dans le disque ramdisk de récupération. Ces appareils basculent d'abord en racine /first_stage_ramdisk pour supprimer les composants de récupération de l'environnement ; procédez de la même manière que pour les périphériques disposant d'un disque de démarrage (c'est-à-dire system.img en tant que /system, basculez vers la racine pour déplacer ce montage sur /, et libérez contenu ramdisk après l'installation). Si androidboot.force_normal_boot=1 correspond à présentes dans la ligne de commande du noyau (ou dans le fichier bootconfig d'Android 12 et versions ultérieures), les appareils démarrent normalement (sous Android) au lieu de démarrer en mode récupération.

Une fois la première étape d'initialisation terminée, /system/bin/init exécute la commande L'argument selinux_setup pour compiler et charger SELinux sur le système Enfin, init exécute à nouveau /system/bin/init avec l'argument second_stage. À cette adresse la phase principale d'init s'exécute et poursuit le processus de démarrage init.rc scripts.

Les sections suivantes détaillent les différences de disposition des partitions pour les disques non-A/B avant et après Android 10.

Dispositions de partitions (appareils non-A/B)

Les sections suivantes détaillent les différences de disposition des partitions pour les disques non-A/B avant et après Android 10.

démarrage.img

Ramdisk
(Android 8.x ou version antérieure)
Système en tant que racine
(Android 9)
Ramdisk
(Android 10 et 11).

Contient un noyau et un ramdisk.img.

ramdisk.img
  -/
    - init.rc
    - init
    - etc -> /system/etc
    - system/ (mount point)
    - vendor/ (mount point)
    - odm/ (mount point)
    ...
    
Ne contient qu'un noyau de démarrage normal.

Contient un noyau et ramdisk.img.

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

récupération.img

Contient un noyau de récupération et un ramdisk.img de récupération

système.img

Ramdisk
(Android 8.x ou version antérieure)
Système en tant que racine
(Android 9)
Ramdisk
(Android 10 et 11).

Contient un system.img.

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

Contient le contenu fusionné de $TARGET_SYSTEM_OUT et $TARGET_ROOT_OUT

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

Contient le contenu fusionné de $TARGET_SYSTEM_OUT et $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)
    ...
    

Dispositions de partitions (périphériques A/B)

Les sections suivantes détaillent les différences de disposition des partitions pour les appareils A/B versions antérieures et ultérieures à Android 10.

démarrage.img

Système en tant que racine
(Android 9)
Ramdisk
(Android 10 et 11).
Contient un noyau de démarrage normal et un disque de récupération ramdisk (BOARD_USES_RECOVERY_AS_BOOT := true).

Recovery-ramdisk est utilisé uniquement pour démarrer lors de la récupération.
Contient un noyau de démarrage normal et un disque de récupération ramdisk (BOARD_USES_RECOVERY_AS_BOOT := true).

Recovery-ramdisk est utilisé pour démarrer à la fois dans la récupération et sur 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)
    ...
    

système.img

Contient le contenu fusionné de $TARGET_SYSTEM_OUT et $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)
    ...