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 -/ - 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
램디스크 (Android 8.x 이하) |
System as root (Android 9) |
램디스크 (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) |
램디스크 (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)
...