في نظامَي التشغيل Android 10 و11، يحتوي ملف "مساحة التخزين المؤقت للذاكرة العشوائية" في المرحلة الأولى على ملف init الثنائي في المرحلة الأولى (الذي يُجري عملية الربط المبكر كما هو محدّد في إدخالات fstab) وملفات fstab الخاصة بالمورّدين. (كما هو الحال في الإصدار 9 من Android والإصدارات الأقدم، يحتوي system.img على محتوى $TARGET_ROOT_OUT).
بالنسبة إلى الأجهزة التي تحتوي على ملف boot-ramdisk (غير A/B)، تكون عملية الإعداد في المرحلة الأولى عبارة عن ملف تنفيذي ثابت يقع في
/init. تعمل هذه الأجهزة على تركيبsystem.imgعلى أنّه/system، ثم تُجري عملية تبديل الجذر لنقل عملية التركيب في/systemإلى/. يتم تحرير محتوى ذاكرة التخزين المؤقت بعد اكتمال عملية التثبيت.بالنسبة إلى الأجهزة التي تستخدم وضع الاسترداد كمساحة تخزين مؤقت في ذاكرة الوصول العشوائي، يمكن العثور على عملية الإعداد في المرحلة الأولى على العنوان
/initضمن مساحة التخزين المؤقت في ذاكرة الوصول العشوائي الخاصة بوضع الاسترداد. تبدّل هذه الأجهزة أولاً الجذر إلى/first_stage_ramdiskلإزالة مكوّنات الاسترداد من البيئة، ثم تتابع الخطوات نفسها التي تتّبعها الأجهزة التي تتضمّن ملف ramdisk لبدء التشغيل (أي تركيبsystem.imgعلى أنّه/systemوتبديل الجذر لنقل عملية التركيب إلى/وتحرير محتويات ramdisk بعد التركيب). إذا كان الخيارandroidboot.force_normal_boot=1متوفرًا في سطر أوامر kernel (أو bootconfig من Android 12 فصاعدًا)، يتم تشغيل الأجهزة بشكلٍ طبيعي (في نظام Android) بدلاً من تشغيلها في وضع الاسترداد.
بعد انتهاء المرحلة الأولى من عملية الإعداد، يتم تنفيذ /system/bin/init مع الوسيطة
selinux_setup لتجميع SELinux وتحميله على النظام. أخيرًا، يؤدي الإجراء
init إلى تنفيذ /system/bin/init مرة أخرى باستخدام الوسيطة second_stage. في هذه
النقطة، يتم تشغيل المرحلة الرئيسية من init ومواصلة عملية التمهيد باستخدام النصوص البرمجية
init.rc.
توضِّح الأقسام التالية بالتفصيل الاختلافات في تنسيقات الأقسام للأجهزة غير المزوّدة بميزة "التحديث الثنائي" قبل توفّر Android 10 وبعده.
تنسيقات التقسيم (الأجهزة غير المزوّدة بميزة "اختبار أ/ب")
توضِّح الأقسام التالية بالتفصيل الاختلافات في تنسيقات الأقسام للأجهزة غير المزوّدة بميزة "التحديث الثنائي" قبل توفّر Android 10 وبعده.
boot.img
| ذاكرة الوصول العشوائي (RAM) (Android 8.x والإصدارات الأقدم) |
النظام بصفتها الجذر (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
| ذاكرة الوصول العشوائي (RAM) (Android 8.x والإصدارات الأقدم) |
النظام بصفتها الجذر (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 وبعده.
boot.img
| النظام بصفتها الجذر (Android 9) |
ذاكرة التخزين المؤقت في ذاكرة الوصول العشوائي (Android 10 و 11) |
|---|---|
يحتوي على نواة التمهيد العادية وملف recovery-ramdisk
(BOARD_USES_RECOVERY_AS_BOOT := true).لا يُستخدَم ملف recovery-ramdisk إلا لبدء وضع الاسترداد. |
يحتوي على نواة التمهيد العادية وملف recovery-ramdisk
(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)
...