Android 10 및 11에서 1단계 램디스크에는 1단계 init 바이너리(fstab 항목에 지정된 대로 초기 마운트를 수행함) 및 공급업체 fstab 파일이 포함되어 있습니다. (Android 9 이하에서와 마찬가지로 system.img
에는 $TARGET_ROOT_OUT
의 내용이 포함되어 있습니다.)
부팅 램디스크(비 A/B)가 있는 기기의 경우 1단계 init는
/init
에 있는 정적 실행 파일입니다. 이러한 장치는system.img
를/system
으로 마운트한 다음 루트 전환 작업을 수행하여/system
의 마운트를/
로 이동합니다. 마운트가 완료되면 ramdisk의 내용이 해제됩니다.복구를 램디스크로 사용하는 장치의 경우 1단계 초기화는 복구 램디스크 내의
/init
에 있습니다. 이러한 기기는 먼저 루트를/first_stage_ramdisk
로 전환하여 환경에서 복구 구성요소를 제거한 다음 부팅 램디스크가 있는 기기와 동일하게 진행합니다(즉,system.img
를/system
으로 마운트하고 루트를 전환하여 해당 마운트를/
로 이동하고 마운트 후 무료 램디스크 콘텐츠).androidboot.force_normal_boot=1
이 커널 명령줄(또는 Android 12 이후의 bootconfig)에 있으면 기기가 복구 모드로 부팅되는 대신 정상적으로 부팅됩니다(Android로).
1단계 초기화가 완료되면 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
램디스크 (안드로이드 8.x 이하) | 시스템을 루트로 (안드로이드 9) | 램디스크 (안드로이드 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) ... |
복구.img
복구 커널 및 복구 ramdisk.img
포함
system.img
램디스크 (안드로이드 8.x 이하) | 시스템을 루트로 (안드로이드 9) | 램디스크 (안드로이드 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
시스템을 루트로 (안드로이드 9) | 램디스크 (안드로이드 10 및 11) |
---|---|
일반 부팅 커널 및 복구 램디스크( BOARD_USES_RECOVERY_AS_BOOT := true )를 포함합니다.복구 램디스크는 복구로 부팅하는 데만 사용됩니다. | 일반 부팅 커널 및 복구 램디스크( BOARD_USES_RECOVERY_AS_BOOT := true )를 포함합니다.Recovery-ramdisk는 복구 및 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)
...