램디스크 파티션

Android 10과 11에서는 1단계 램디스크에 fstab 항목에 의해 지정된 대로 초기 마운트를 실행하는 1단계 init 바이너리와 공급업체 fstab 파일이 포함되어 있습니다. Android 9 이하에서와 마찬가지로 system.img에는 $TARGET_ROOT_OUT의 콘텐츠가 포함되어 있습니다.

  • 부팅 램디스크가 있고 A/B 이외의 기기인 경우 1단계 init은 /init에 있는 정적 실행 파일입니다. 이러한 기기는 system.img/system으로 마운트한 다음 루트를 전환하는 작업을 실행하여 /system의 마운트를 /로 이동합니다. 마운트가 완료되면 램디스크 콘텐츠는 해제됩니다.

  • 램디스크로 복구를 사용하는 기기의 경우 1단계 init은 복구 램디스크 내의 /init에 있습니다. 이러한 기기는 먼저 루트를 /first_stage_ramdisk로 전환하여 환경에서 복구 구성요소를 삭제한 후 부팅 램디스크를 사용하는 기기와 동일하게 진행합니다. 즉, system.img/system으로 마운트하여 루트를 전환함으로써 해당 마운트를 /로 이동하고 마운트 후 램디스크 콘텐츠를 해제합니다. 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

램디스크
(Android 8.x 이하)
System as root
(Android 9)
램디스크
(Android 10 및 11)

커널과 ramdisk.img를 포함합니다.

ramdisk.img
  -/
    - init.rc
    - init
    - etc -> /system/etc
    - system/ (mount point)
    - vendor/ (mount point)
    - odm/ (mount point)
    ...
    
일반 부팅 커널만 포함합니다.

커널과 ramdisk.img를 포함합니다.

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

recovery.img

복구 커널과 복구 ramdisk.img를 포함합니다.

system.img

램디스크
(Android 8.x 이하)
System as root
(Android 9)
램디스크
(Android 10 및 11)

system.img를 포함합니다.

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

$TARGET_SYSTEM_OUT$TARGET_ROOT_OUT의 병합된 콘텐츠를 포함합니다.

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

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

파티션 레이아웃(A/B 기기)

다음 섹션에서는 Android 10 이전과 이후, A/B 기기의 파티션 레이아웃 차이를 설명합니다.

boot.img

System as root
(Android 9)
램디스크
(Android 10 및 11)
일반 부팅 커널과 복구 램디스크를 포함합니다(BOARD_USES_RECOVERY_AS_BOOT := true).

복구 램디스크는 복구 모드로 부팅하는 데에만 사용됩니다.
일반 부팅 커널과 복구 램디스크를 포함합니다(BOARD_USES_RECOVERY_AS_BOOT := true).

복구 램디스크는 복구 모드 및 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)
    ...