Android 10 および 11 では、第 1 ステージの RAM ディスクには、第 1 ステージの init バイナリ(fstab エントリで指定された初期マウントを実行)と、ベンダーの fstab ファイルが含まれています(Android 9 以前では、system.img には $TARGET_ROOT_OUT のコンテンツが含まれています)。
起動 RAM ディスク(非 A/B)を備えたデバイスの場合、第 1 ステージの init は、
/initにある静的な実行可能ファイルです。これらのデバイスは、system.imgを/systemとしてマウントしてから、ルート切り替え操作を実行して/systemのマウントを/に移動します。マウントが完了すると、RAM ディスクの内容は解放されます。リカバリを RAM ディスクとして使用するデバイスの場合、第 1 ステージの init はリカバリ用の RAM ディスク内の
/initにあります。これらのデバイスは、最初にルートを/first_stage_ramdiskに切り替えてリカバリ コンポーネントを環境から削除します。次に、起動 RAM ディスクを備えたデバイスと同じ手順を実行します(system.imgを/systemとしてマウントし、ルートを切り替えてそのマウントを/に移動して、マウント後に RAM ディスクの内容を解放します)。androidboot.force_normal_boot=1がカーネル コマンドライン(Android 12 以降では bootconfig)に存在する場合、デバイスはリカバリモードではなく、通常どおり(Android で)起動します。
第 1 ステージの init が終了すると、selinux_setup 引数を指定して /system/bin/init を実行し、SELinux をコンパイルしてシステムにロードします。最後に、init は second_stage 引数を指定して /system/bin/init をもう一度実行します。この時点で、init のメインフェーズにより、init.rc スクリプトを使用して起動プロセスが実行および続行されます。
以降のセクションでは、Android 10 よりも前と後の非 A/B デバイスの、パーティション レイアウトの違いについて説明します。
パーティション レイアウト(非 A/B デバイス)
以降のセクションでは、Android 10 よりも前と後の非 A/B デバイスの、パーティション レイアウトの違いについて説明します。
boot.img
| RAM ディスク (Android 8.x 以前)  | 
    System as root (Android 9)  | 
    RAM ディスク (Android 10 および 11)  | 
  
|---|---|---|
カーネルと  
ramdisk.img
  -/
    - init.rc
    - init
    - etc -> /system/etc
    - system/ (mount point)
    - vendor/ (mount point)
    - odm/ (mount point)
    ...
     | 
   通常のブートカーネルのみが含まれます。 | カーネルと  
ramdisk.img
  -/
    - init
    - vendor fstab files
    - system/ (mount point)
    - vendor/ (mount point)
    - odm/ (mount point)
    ...
     | 
  
recovery.img
リカバリ カーネルとリカバリ ramdisk.img が含まれます。
system.img
| RAM ディスク (Android 8.x 以前)  | 
    System as root (Android 9)  | 
    RAM ディスク (Android 10 および 11)  | 
  
|---|---|---|
 
system.img
  -/
    - bin/
    - etc
    - vendor -> /vendor
    - ...
    | 
   
 
system.img
  -/
    - init.rc
    - init
    - etc -> /system/etc
    - system/
      - bin/
      - etc/
      - vendor -> /vendor
      - ...
    - vendor/ (mount point)
    - odm/ (mount point)
    ...
     | 
   
 
system.img
  -/
    - init.rc
    - init -> /system/bin/init
    - etc -> /system/etc
    - system/
      - bin/
      - etc/
      - vendor -> /vendor
      - ...
    - vendor/ (mount point)
    - odm/ (mount point)
    ...
     | 
  
パーティション レイアウト(A/B デバイス)
以降のセクションでは、Android 10 よりも前と後の A/B デバイスの、パーティション レイアウトの違いについて説明します。
boot.img
| System as root (Android 9)  | 
    RAM ディスク (Android 10 および 11)  | 
  
|---|---|
通常のブートカーネルとリカバリ用 RAM ディスク(BOARD_USES_RECOVERY_AS_BOOT := true)が含まれます。リカバリ用 RAM ディスクは、リカバリを起動する場合にのみ使用します。  | 
   通常のブートカーネルとリカバリ用 RAM ディスク(BOARD_USES_RECOVERY_AS_BOOT := true)が含まれます。リカバリ用 RAM ディスクは、リカバリと 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
$TARGET_SYSTEM_OUT と $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)
    ...