In Android 10 und 11 enthält die Ramdisk der ersten Phase die Init-Binärdatei der ersten Phase (die das frühe Mounten gemäß den fstab-Einträgen ausführt) und die fstab-Dateien des Anbieters. Wie in Android 9 und niedriger enthält system.img den Inhalt von $TARGET_ROOT_OUT.
- Bei Geräten mit einer Boot-Ramdisk (nicht A/B) ist die erste Phase von „init“ eine statische ausführbare Datei unter - /init. Bei diesen Geräten wird- system.imgals- /systembereitgestellt. Anschließend wird ein Switch-Root-Vorgang ausgeführt, um die Bereitstellung von- /systemnach- /zu verschieben. Der Inhalt der Ramdisk wird nach dem Mounten freigegeben.
- Bei Geräten, bei denen die Wiederherstellung als Ramdisk verwendet wird, befindet sich die erste Phase von „init“ unter - /initin der Wiederherstellungs-Ramdisk. Diese Geräte wechseln zuerst den Root zu- /first_stage_ramdisk, um die Wiederherstellungskomponenten aus der Umgebung zu entfernen. Anschließend wird wie bei Geräten mit einer Boot-Ramdisk vorgegangen:- system.imgwird als- /systembereitgestellt, der Root wird gewechselt, um die Bereitstellung zu- /zu verschieben, und die Ramdisk-Inhalte werden nach der Bereitstellung freigegeben. Wenn- androidboot.force_normal_boot=1in der Kernel-Befehlszeile (oder in der Bootkonfiguration ab Android 12) vorhanden ist, werden Geräte normal (in Android) statt im Wiederherstellungsmodus gestartet.
Nachdem die Initialisierung der ersten Phase abgeschlossen ist, wird /system/bin/init mit dem Argument selinux_setup ausgeführt, um SELinux zu kompilieren und in das System zu laden. Schließlich wird /system/bin/init mit dem Argument second_stage noch einmal ausgeführt. An diesem Punkt wird die Hauptphase von init ausgeführt und der Bootvorgang mit den init.rc-Skripts fortgesetzt.
In den folgenden Abschnitten werden die Unterschiede bei den Partitionslayouts für Geräte ohne A/B-Partitionierung vor und nach Android 10 beschrieben.
Partitionslayouts (Nicht-A/B-Geräte)
In den folgenden Abschnitten werden die Unterschiede bei den Partitionslayouts für Geräte ohne A/B-Partitionierung vor und nach Android 10 beschrieben.
boot.img
| Ramdisk (Android 8.x und niedriger) | System als Root (Android 9) | Ramdisk (Android 10 und 11) | 
|---|---|---|
| Enthält einen Kernel und ein  
ramdisk.img
  -/
    - init.rc
    - init
    - etc -> /system/etc
    - system/ (mount point)
    - vendor/ (mount point)
    - odm/ (mount point)
    ...
     | Enthält nur einen normalen Boot-Kernel. | Enthält einen Kernel und  
ramdisk.img
  -/
    - init
    - vendor fstab files
    - system/ (mount point)
    - vendor/ (mount point)
    - odm/ (mount point)
    ...
     | 
recovery.img
Enthält einen Wiederherstellungskernel und eine Wiederherstellungs-ramdisk.img
system.img
| Ramdisk (Android 8.x und niedriger) | System als Root (Android 9) | Ramdisk (Android 10 und 11) | 
|---|---|---|
| Enthält ein  
system.img
  -/
    - bin/
    - etc
    - vendor -> /vendor
    - ...
    | Enthält die zusammengeführten Inhalte von  
system.img
  -/
    - init.rc
    - init
    - etc -> /system/etc
    - system/
      - bin/
      - etc/
      - vendor -> /vendor
      - ...
    - vendor/ (mount point)
    - odm/ (mount point)
    ...
     | Enthält die zusammengeführten Inhalte von  
system.img
  -/
    - init.rc
    - init -> /system/bin/init
    - etc -> /system/etc
    - system/
      - bin/
      - etc/
      - vendor -> /vendor
      - ...
    - vendor/ (mount point)
    - odm/ (mount point)
    ...
     | 
Partitionslayouts (A/B-Geräte)
In den folgenden Abschnitten werden die Unterschiede bei den Partitionslayouts für A/B-Geräte vor und nach Android 10 beschrieben.
boot.img
| System als Root (Android 9) | Ramdisk (Android 10 und 11) | 
|---|---|
| Enthält den normalen Boot-Kernel und die Recovery-Ramdisk ( BOARD_USES_RECOVERY_AS_BOOT := true).Die Recovery-Ramdisk wird nur zum Booten in den Wiederherstellungsmodus verwendet. | Enthält den normalen Boot-Kernel und die Recovery-Ramdisk ( BOARD_USES_RECOVERY_AS_BOOT := true).Die Recovery-Ramdisk wird verwendet, um sowohl in den Recovery-Modus als auch in Android zu booten. 
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
Enthält die zusammengeführten Inhalte von $TARGET_SYSTEM_OUT und $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)
    ...
