تتضمّن أجهزة Android عدة أقسام تؤدي وظائف مختلفة في عملية التمهيد.
الأقسام العادية
قسم
boot
يحتوي هذا القسم على صورة نواة ويتم إنشاؤه باستخدامmkbootimg
. يمكنك استخدام قسم افتراضي لفلاش أي صورة مباشرةً دون وميض قسم تمهيد جديد. يحتوي هذا القسم أيضًا على ملف ramdisk العام في الأجهزة التي تم إطلاقها قبل بدء استخدام Android 13.kernel. يُعيد قسم
kernel
الافتراضي تحميل الإصدار الحالي من نواة النظام (zImage
zImage-dtb
Image.gz-dtb
) من خلال كتابة ملف تعريف نواة النظام الجديد فوق ملف تعريف نواة النظام القديم. إذا كانت نواة التطوير المقدَّمة غير متوافقة، قد تحتاج إلى تعديل قسمvendor
أوsystem
أوdtb
(إذا كان متوفّرًا) باستخدام وحدات النواة المرتبطة.ramdisk. يُعيد قسم
ramdisk
الافتراضي كتابة ملف ramdisk عن طريق كتابة صورة ملف ramdisk الجديدة فوق صورة ملف ramdisk القديمة.
تحدِّد عملية الكتابة فوق البيانات موقع بدء الصورة الحالية في eMMC وتنسخ الصورة الجديدة إلى هذا الموقع. قد تكون الصورة الجديدة (kernel أو ramdisk) أكبر من الصورة الحالية؛ ولتوفير مساحة، يمكن لبرنامج التمهيد نقل البيانات بعد الصورة أو إلغاء العملية مع حدوث خطأ.
قسم "
init_boot
" يحتوي هذا القسم على ذاكرة الوصول العشوائي (RAM) النموذجية للأجهزة التي تعمل بالإصدار 13 من Android والإصدارات الأحدث.قسم "
system
" يحتوي هذا القسم على إطار عمل Android.قسم
odm
يحتوي هذا القسم على تخصيصات المصنّع الأصلي للتصميم (ODM) لحِزم دعم اللوحة (BSP) الخاصة بمورّدي المنظومة على الرقاقة (SoC). تتيح هذه التخصيصات لمطوّري الأجهزة الأصليين استبدال مكونات منظومة على رقاقة (SoC) أو تخصيصها، و تنفيذ وحدات نواة المكونات والبرامج الخفية الخاصة باللوحة، و الميزات الخاصة بمطوّري الأجهزة الأصليين على طبقات تجريد الأجهزة (HAL). هذا القسم اختياري، وعادةً ما يُستخدَم ليحتوي على تخصيصات حتى يمكن للأجهزة استخدام صورة واحدة من المورّد لرموز التخزين التعريفية للأجهزة المتعددة. لمعرفة التفاصيل، يُرجى الاطّلاع على ODM الأقسام.قسم
odm_dlkm
هذا القسم مخصّص لتخزين ملفّات برمجية لوحدة معالجة مركزية في جهاز مصنّع أصلي للجهاز (ODM). يتيح تخزين وحدات نواة ODM في قسمodm_dlkm
(بدلاً من قسمodm
) إمكانية تعديل وحدات نواة ODM بدون تعديل قسمodm
.قسم
recovery
يخزن هذا القسم صورة الاسترداد، التي يتم تشغيلها أثناء عملية التحديث عبر الهواء. يمكن للأجهزة التي تتيح التحديثات السلسة تخزين صور الاسترداد كملف دوار رام مضمّن في صورةboot
أوinit_boot
(بدلاً من ملف صورة منفصل).قسم
cache
يخزِّن هذا القسم البيانات المؤقتة وهو اختياري إذا كان الجهاز يستخدم التحديثات السلسة. لا يجب أن يكون قسم ذاكرة التخزين المؤقت قابلاً للكتابة من أداة تحميل التشغيل، ولكن يجب أن يكون قابلاً للحذف. يعتمد حجم القسم على نوع الجهاز ومدى توفّر المساحة علىuserdata
، ويتراوح عادةً بين 50 و100 ميغابايت.قسم
misc
يستخدم قسم الاسترداد هذا القسم الذي تبلغ مساحته 4 كيلوبايت أو أكثر.قسم
userdata
يحتوي هذا القسم على التطبيقات التي ثبَّتها المستخدم و البيانات، بما في ذلك بيانات التخصيص.قسم
metadata
يُستخدَم هذا القسم لتخزين مفتاح تشفير البيانات الوصفية عندما يستخدم الجهاز تشفير البيانات الوصفية. يكون الحجم 16 ميغابايت أو أكبر. ولا يتم تشفير هذه البيانات ولا يتم التقاط لقطات لها. ويتم محو البيانات عند إعادة ضبط الجهاز على الإعدادات الأصلية. إنّ استخدام هذا القسم محدود بشدة.قسم "
vendor
" يحتوي هذا القسم على أي ملف ثنائي غير قابل للتثبيت على AOSP. إذا كان الجهاز لا يحتوي على معلومات خاصة بالملكية، يمكنك حذف هذا القسم.قسم
vendor_dlkm
هذا القسم مخصّص لتخزين وحدات ملف التمهيد التابعة للمورّد. يتيح تخزين وحدات نواة المورّد في القسمvendor_dlkm
(بدلاً من القسمvendor
) إمكانية تعديل وحدات النواة بدون تعديل القسمvendor
.قسم "
radio
" يحتوي هذا القسم على صورة الراديو وهو مطلوب فقط للأجهزة التي تتضمّن راديوًا مع برنامج خاص بالراديو في قسم مخصّص.قسم
tos
يخزِّن هذا القسم الصورة الثنائية لنظام التشغيل Trusty ولا يتم استخدامه إلا إذا كان الجهاز يتضمّن Trusty. لمعرفة التفاصيل، يُرجى الاطّلاع على بنود الخدمة الأقسام.قسم "
pvmfw
" يخزِّن هذا القسم برمجية الثابت لجهاز افتراضي محمي (pvmfw)، وهي الرمز البرمجي الأول الذي يتم تشغيله في الأجهزة الافتراضية المحمية. اطّلِع على البرامج الثابتة المحمية للأجهزة الافتراضية للحصول على مزيد من التفاصيل.
الأقسام الديناميكية
يمكن للأجهزة التي تعمل بنظام التشغيل Android 11 والإصدارات الأحدث استخدام المساحة التخزينية الديناميكية، وهي نظام لتقسيم مساحة المستخدم في Android يتيح إنشاء أو تغيير حجم أو حذف الأقسام أثناء التحديثات عبر شبكة غير سلكية (OTA). لمعرفة التفاصيل، يُرجى الاطّلاع على التقسيمات الديناميكية.
تحديد الأقسام المهمة
إذا كان تشغيل الجهاز يتطلّب أقسامًا أو بيانات معيّنة، يجب تصنيف هذه الأقسام أو البيانات على أنّها محمية بالكامل أو قابلة لإعادة التثبيت، أي أنّها قابلة لإعادة الإنشاء أو مقدَّمة أو استخراج باستخدام أمر fastboot oem
.
ويشمل ذلك بيانات مثل الإعدادات الخاصة بالمصنع لكل جهاز والأرقام التسلسلية
وبيانات المعايرة وغير ذلك.
التغييرات في Android 11
يتضمّن نظام التشغيل Android 11 تغييرات عديدة على الأقسام، بما في ذلك القيود المفروضة على الربط بالمكتبات ونُسخ صور Soong الجديدة.
الشكل 1: تنسيق التقسيم في Android 11
صورة نظام واحدة (SSI) صورة جديدة تجريبية تحتوي على الصور
system
وsystem_ext
عندما تكون هذه الأقسام شائعة لمجموعة من الأجهزة المستهدَفة، يمكن لهذه الأجهزة مشاركة ملف SSI وتخطّي إنشاء ملفَيsystem
وsystem_ext
.قسم
system_ext
قسم جديد يمكنه استخدام مواردsystem
ويمكن أن يتضمّن وحدات نظام:توسيع وحدات نظام AOSP في قسم
system
: ننصحك بإرسال هذه الوحدات إلى AOSP حتى يمكن تثبيتها على القسمsystem
لاحقًا.ادمِج وحدات خاصة بالمصنّعين الأصليين أو المنصّات: ننصحك بإزالة ربط هذه الوحدات كي يتمكّن من تثبيتها على قسم
product
أوvendor
.
قسم
system
صورة نظام شائعة تُستخدَم لمنتجات المصنّعين الأصليّين للأجهزة ننصح بنقل الوحدات المملوكة خارج القسمsystem
، إما عن طريق إرسالها إلى AOSP أو نقلها إلى القسمsystem_ext
.قسم "
product
" يمكن لهذا القسم الآن استخدام واجهات مسموح بها لتثبيت وحدات خاصة بالمنتج غير مجمعة مع أي أقسام أخرى.
تغييرات VNDK
مجموعة تطوير البرامج الأصلية للمورّدين (VNDK) هي مجموعة من المكتبات المثبَّتة في قسم system
والمصمّمة
حصريًا للمورّدين من أجل تنفيذ واجهات HAL.
في الإصدار 10 من Android والإصدارات الأقدم، يمكن أن يرتبط القسم
vendor
بمكتبات VNDK في القسمsystem
، ولكن لا يمكنه الارتباط بمكتبات أخرى في القسمsystem
. يمكن للوحدات الأصلية في القسمproduct
الربط بأي مكتبة في قسمsystem
.في الإصدار 11 من Android والإصدارات الأحدث، يمكن أن يرتبط قسما
product
وvendor
بمكتبات VNDK في القسمsystem
، ولكن لا يمكنهم الارتباط بمكتبات أخرى في القسمsystem
.
خيارات المنتج في Soong
يستخدم نظام إنشاء Soong صِيغ الصور لتقسيم
ملحقات الإنشاء. يمكن للوحدات الأصلية (/build/soong/cc
) تحويل وحدات معالجة
النظام إلى الصيغة الأساسية ووحدات معالجة المورّد إلى
صيغة المورّد، ولا يمكن لوحدة في أحد صيغ الصور الربط بوحدات أخرى في
صيغة صورة مختلفة.
في الإصدار 10 من Android أو الإصدارات الأقدم، تنشئ وحدة النظام تلقائيًا الأسعار الأساسية. ويمكنه أيضًا إنشاء خيارات خاصة بالمورّدين من خلال تحديد
vendor_available: true
في ملفاتAndroid.bp
الخاصة به، ما يتيح لوحدات المورِّدين الربط بوحدات النظام. يمكن أيضًا لمكتبات VNDK، وهي نُسخ مخصّصة لمورّد من مكتباتsystem
، إنشاء نُسخ مخصّصة لمورّد من وحدات المورّد من خلال تحديدvendor_available: true
في ملفاتAndroid.bp
(اطّلِع على مثال).في Android 11، يمكن أيضًا لوحدة النظام إنشاء خيار منتج (بالإضافة إلى خيارات المنتج الأساسية والتابعة للمورّد) من خلال تحديد
vendor_available: true
.في Android 12 أو الإصدارات الأحدث، تنشئ وحدة نظام تتضمّن
vendor_available: true
صيغة مورّد بالإضافة إلى الصيغة الأساسية. لإنشاء خيار منتج، يجب تحديد السمةproduct_available: true
. لا تتوفّر بعض مكتبات VNDK التي لا تتضمّنproduct_available: true
لوحدات المنتجات.