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