در Android 10 و 11،
رمدیسک مرحله اول
شامل باینری init مرحله اول (که نصب اولیه را طبق مشخصات
ورودیهای fstab انجام میدهد) و فایلهای fstab فروشنده است. (همانند Android 9 و نسخههای پایینتر،
system.img حاوی محتوای $TARGET_ROOT_OUT است.)
برای دستگاههای دارای boot-ramdisk (غیر A/B)، مقدار اولیه مرحله اول یک اجرایی ایستا است که در
/initقرار دارد. این دستگاههاsystem.imgرا بهعنوان/systemنصب میکنند، سپس عملیات تغییر ریشه را انجام میدهند تا نصب را در/systemبه/منتقل کنند. پساز تکمیل نصب، محتویات ramdisk آزاد میشود.برای دستگاههایی که از بازیابی بهعنوان ramdisk استفاده میکنند، init مرحله اول در
/initدر ramdisk بازیابی قرار دارد. این دستگاهها ابتدا ریشه را به/first_stage_ramdiskتغییر میدهند تا عناصر بازیابی را از محیط بردارند، سپس همانند دستگاههای دارای boot-ramdisk عمل میکنند (یعنیsystem.imgرا بهعنوان/systemنصب میکنند، ریشه را تغییر میدهند تا این نصب را به/منتقل کنند، و محتوای ramdisk را پساز نصب آزاد میکنند). اگرandroidboot.force_normal_boot=1در خط فرمان هسته (یا پیکربندی راهاندازی از Android 12 و بالاتر) وجود داشته باشد، دستگاهها بهطور معمول (در Android) راهاندازی میشوند و بهجای راهاندازی در حالت بازیابی، در Android راهاندازی میشوند.
پساز تکمیل مرحله اول راهاندازی، /system/bin/init را با آرگومان selinux_setup اجرا میکند تا SELinux را در سیستم کامپایل و بار کند. درنهایت،
init /system/bin/init دوباره با آرگومان second_stage اجرا میشود. در این
نقطه، مرحله اصلی init اجرا میشود و فرایند راهاندازی را بااستفاده از
برنامههای init.rc ادامه میدهد.
بخشهای زیر تفاوتهای چیدمانهای پارتیشن را برای دستگاههای غیر A/B قبل و بعداز Android 10 شرح میدهد.
چیدمانهای پارتیشن (دستگاههای غیر A/B)
بخشهای زیر جزئیات تفاوتهای چیدمان پارتیشن برای دستگاههای غیر A/B قبل و بعداز Android 10 را شرح میدهد.
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)
...
|
recovery.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) است.دیسک مجازی بازیابی فقط برای راهاندازی در حالت بازیابی استفاده میشود. |
حاوی هسته راهاندازی عادی و دیسک حافظه بازیابی
(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)
...