在 Android 10 和 Android 11 中,
第一階段 ramdisk
包含第一個階段 init 二進位檔 (會按指定執行提前掛接)
根據 fstab 項目) 和供應商 fstab 檔案。(如同 Android 9 以下版本,
system.img
包含 $TARGET_ROOT_OUT
的內容)。
對於搭載開機磁碟 (非 A/B) 的裝置,第一階段 init 會是靜態值 執行檔位於
/init
這些裝置將system.img
掛接為/system
。 然後執行切換根作業,將掛接在/system
的位置移至/
。 掛接完成後,ramdisk 的內容就會釋出。如果是將復原做為 ramdisk 使用的裝置,第一階段 init 位於 復原 ramdisk 中的
/init
。這些裝置會先將根層級切換為/first_stage_ramdisk
:從環境移除復原元件。 然後繼續執行與具有開機磁碟磁碟 (即掛接) 的裝置相同 以/system
的身分執行system.img
,切換根層級將掛接位置移至/
,並釋出 掛接後 ramdisk 內容)。如果androidboot.force_normal_boot=1
是 顯示於核心指令列 (或 Android 的 bootconfig 中) 12 以上版本),裝置可正常啟動 (進到 Android) 而不要啟動復原模式
第一階段 init 會使用 /system/bin/init
,
selinux_setup
引數,用於編譯 SELinux 並載入到系統上。最後
init 會使用 second_stage
引數再次執行 /system/bin/init
。在此
就會執行 init 的主要階段,並使用
init.rc
指令碼。
以下各節詳細說明非 A/B 版本的分區版面配置差異 。
分區版面配置 (非 A/B 裝置)
以下各節詳細說明非 A/B 版本的分區版面配置差異 。
Boot.img
Ramdisk (Android 8.x 以下版本) |
系統根層級 (Android 9) |
Ramdisk (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) ... |
復原.img
包含復原核心和復原核心 ramdisk.img
system.img
Ramdisk (Android 8.x 以下版本) |
系統根層級 (Android 9) |
Ramdisk (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 裝置)
以下各節詳細說明 A/B 裝置的分區版面配置差異 包括 Android 10 前後的比較
Boot.img
系統根層級 (Android 9) |
Ramdisk (Android 10 和 11 頁) |
---|---|
包含一般啟動核心和復原記憶體磁碟
(BOARD_USES_RECOVERY_AS_BOOT := true )。Recovery-ramdisk 僅用於啟動復原程序。 |
包含一般啟動核心和復原記憶體磁碟
(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)
...