Dans Android 10 et 11, le ramdisk de première étape contient le binaire init de première étape (qui effectue le montage précoce spécifié par les entrées fstab) et les fichiers fstab du fournisseur. (Comme dans Android 9 et versions antérieures, system.img contient le contenu de $TARGET_ROOT_OUT.)
Pour les appareils avec un boot-ramdisk (non-A/B), l'initialisation de la première étape est un exécutable statique situé à
/init. Ces appareils montentsystem.imgen tant que/system, puis effectuent une opération de changement de racine pour déplacer le montage de/systemvers/. Le contenu du ramdisk est libéré une fois le montage terminé.Pour les appareils qui utilisent la récupération en tant que ramdisk, l'initialisation de la première étape se trouve à l'emplacement
/initdans le ramdisk de récupération. Ces appareils basculent d'abord vers la racine/first_stage_ramdiskpour supprimer les composants de récupération de l'environnement, puis procèdent de la même manière que les appareils avec un boot-ramdisk (c'est-à-dire en montantsystem.imgen tant que/system, en basculant vers la racine pour déplacer ce montage vers/et en libérant le contenu du ramdisk après le montage). Siandroidboot.force_normal_boot=1est présent dans la ligne de commande du kernel (ou dans la configuration de démarrage à partir d'Android 12), les appareils démarrent normalement (dans Android) au lieu de démarrer en mode récupération.
Une fois l'initialisation de la première étape terminée, /system/bin/init est exécuté avec 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. À ce stade, la phase principale d'init s'exécute et poursuit le processus de démarrage à l'aide des scripts init.rc.
Les sections suivantes détaillent les différences de mise en page des partitions pour les appareils non A/B avant et après Android 10.
Disposition des partitions (appareils non A/B)
Les sections suivantes détaillent les différences de mise en page des partitions pour les appareils non A/B avant et après Android 10.
boot.img
| Ramdisk (Android 8.x et versions antérieures)  | 
    Système en tant que racine (Android 9)  | 
    Ramdisk (Android 10 et 11)  | 
  
|---|---|---|
Contient un noyau et un  
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
  -/
    - init
    - vendor fstab files
    - system/ (mount point)
    - vendor/ (mount point)
    - odm/ (mount point)
    ...
     | 
  
recovery.img
Contient un noyau de récupération et un ramdisk.img de récupération
system.img
| Ramdisk (Android 8.x et versions antérieures)  | 
    Système en tant que racine (Android 9)  | 
    Ramdisk (Android 10 et 11)  | 
  
|---|---|---|
Contient un  
system.img
  -/
    - bin/
    - etc
    - vendor -> /vendor
    - ...
    | 
   Contient le contenu fusionné de  
system.img
  -/
    - init.rc
    - init
    - etc -> /system/etc
    - system/
      - bin/
      - etc/
      - vendor -> /vendor
      - ...
    - vendor/ (mount point)
    - odm/ (mount point)
    ...
     | 
   Contient le contenu fusionné de  
system.img
  -/
    - init.rc
    - init -> /system/bin/init
    - etc -> /system/etc
    - system/
      - bin/
      - etc/
      - vendor -> /vendor
      - ...
    - vendor/ (mount point)
    - odm/ (mount point)
    ...
     | 
  
Mises en page de partition (appareils A/B)
Les sections suivantes détaillent les différences de mise en page des partitions pour les appareils A/B avant et après Android 10.
boot.img
| Système en tant que racine (Android 9)  | 
    Ramdisk (Android 10 et 11)  | 
  
|---|---|
Contient le noyau de démarrage normal et le ramdisk de récupération (BOARD_USES_RECOVERY_AS_BOOT := true).Le ramdisk de récupération n'est utilisé que pour démarrer en mode Récupération.  | 
   Contient le noyau de démarrage normal et le ramdisk de récupération (BOARD_USES_RECOVERY_AS_BOOT := true). Le ramdisk de récupération est utilisé pour démarrer à la fois en mode récupération et en mode 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
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)
    ...