تحتوي أجهزة Android على عدة أقسام أو أقسام محدّدة من مساحة التخزين المستخدَمة لاحتواء أجزاء معيّنة من برنامج الجهاز. يحتوي كل قسم على صورة قسم (ملف IMG) أو لقطة شاشة لجميع البرامج المخصّصة للقسم. يعرض الشكل 1 تنسيق الأقسام الأساسية على أحد الأجهزة:
الشكل 1: تخطيط الأقسام الأساسية
يتم تصنيف الأقسام إلى ثلاث فئات:
أقسام النظام هي أقسام يتم تحديثها عند تحديث نظام التشغيل والميزات الأخرى.
system
وboot
وinit_boot
هي أقسام أساسية للنظام.تحتوي أقسام المورِّد على رمز خاص بالجهاز والأجهزة التي قد لا يتم تعديله أبدًا بعد الإصدار الأولي. أقسام
vendor
وvendor_boot
وodm
هي أقسام أساسية للمورّدين.الأقسام غير القابلة للتعديل هي الأقسام التي لا يتم تعديل محتوياتها أو تعديلها باستخدام بيانات المستخدم.
يمكن للرمز البرمجي في قسمَي النظام والمورّد التفاعل باستخدام واجهة ثابتة تُعرف باسم واجهة المورّد (VINTF).
أقسام النظام
في ما يلي قائمة بجميع أقسام النظام واستخداماتها:
قسم
boot
يحتوي هذا القسم على صورة نواة عامة (GKI). يحتوي هذا القسم أيضًا على ملف ramdisk العام في الأجهزة التي تم إطلاقها في Android 12 والإصدارات الأقدم. لمزيد من المعلومات حول ذاكرة التخزين المؤقت العشوائي العامة، يُرجى الاطّلاع على محتوى صورة ذاكرة التخزين المؤقت العشوائي العامة.قسم
init_boot
(الإصدار 13 من نظام التشغيل Android والإصدارات الأحدث) يحتوي هذا القسم على مساحة تخزين مؤقتة عامة. في Android 11 و12، يكون ملف ramdisk العام في القسمboot
.قسم
system
يحتوي هذا القسم على صورة النظام المستخدَمة لمنتجات المصنّعين الأصليّين للأجهزة.قسم
system_ext
يحتوي هذا القسم على موارد النظام و وحدات النظام المملوكة التي تُوسّع صورة النظام الشائعة في القسمsystem
.قسم
system_dlkm
يحتوي هذا القسم على وحدات GKI. لمزيد من المعلومات حول هذا القسم، اطّلِع على مقالة تنفيذ قسم وحدة GKI.قسم
product
يمكن أن يحتوي هذا القسم على وحدات خاصة بالمنتج غير المضمّنة في أي أقسام أخرى.قسم
pvmfw
يخزِّن هذا القسم برمجية قاعدة بيانات الأجهزة لجهاز افتراضي محمي (pvmfw)، وهي الرمز البرمجي الأول الذي يتم تشغيله في الأجهزة الافتراضية المحمية. لمزيد من المعلومات، يُرجى الاطّلاع على البرامج الثابتة المحمية للأجهزة الافتراضية.قسم
generic_bootloader
يحتوي هذا القسم على أداة تحميل البرامج العامة.
أقسام المورّدين
في ما يلي قائمة بجميع أقسام المورّدين واستخداماتها:
قسم
vendor_boot
يحتوي هذا القسم على رمز التمهيد الخاص بالمورّد. لمزيد من المعلومات، يُرجى الاطّلاع على أقسام التمهيد الخاصة بالمورّد.قسم
recovery
يخزِّن هذا القسم صورة الاسترداد التي يتم التمهيد منها أثناء عملية التحديث عبر شبكة غير سلكية (OTA). يمكن للأجهزة التي تتيح التحديثات السلس تخزين صور الاسترداد كأداة تخزين مؤقت في ذاكرة الوصول العشوائي ضمن ملفboot
أوinit_boot
. لمزيد من المعلومات عن التحديثات السلسة، اطّلِع على التحديثات من النوع أ/ب (سلسة).قسم
vbmeta
يحتوي هذا القسم على معلومات ميزة "التمهيد التحقق منه" لجميع الأقسام. تتحقّق هذه المعلومات من أنّ الصور المثبَّتة في كل قسم موثوق بها. لمزيد من المعلومات حول "التشغيل المُتحقّق منه"، يُرجى الاطّلاع على مقالة التشغيل المُتحقّق منه.قسم
vendor
يحتوي هذا القسم على أي ملف ثنائي خاص بالمورِّد وغير عام بما يكفي للتوزيع على AOSP.قسم
vendor_dlkm
يحتوي هذا القسم على وحدات ملف التمهيد التابعة للمورّد. من خلال تخزين وحدات نواة المورّد في هذا القسم بدلاً من القسمvendor
، يمكنك تعديل وحدات ملف التمهيد بدون تعديل القسمvendor
. لمزيد من المعلومات، يُرجى الاطّلاع على أقسام DKLM الخاصة بالمورّدين والمصنّعين الأصليّين للأجهزة.قسم
odm
يحتوي هذا القسم على تخصيصات المصنّع الأصلي للتصميم (ODM) لحِزم دعم اللوحة (BSP) الخاصة بمورّدي المنظومة على الرقاقة (SoC). تتيح هذه التخصيصات لمطوّري الأجهزة الأصليين استبدال مكونات منظومة على رقاقة (SoC) أو تخصيصها، و تنفيذ وحدات نواة الأنظمة للمكونات والبرامج الخفية الخاصة باللوحة، و الميزات الخاصة بمطوّري الأجهزة الأصليين على طبقات تجريد الأجهزة (HAL). هذا القسم اختياري. يُستخدَم هذا القسم عادةً لاحتواء عمليات التخصيص لكي تتمكّن الأجهزة من استخدام صورة مزوّد واحد لعدة رموز تخزين للأجهزة. لمزيد من المعلومات، اطّلِع على أقسام قياس الإحالات الناجحة على الجهاز فقط (ODM).قسم
odm_dlkm
هذا القسم مخصّص لتخزين ملفّات برمجية لوحدة معالجة مركزية (ODM) . من خلال تخزين وحدات نواة ODM في هذا القسم بدلاً من القسمodm
، يمكنك تحديث وحدات نواة ODM بدون تحديث القسمodm
. لمزيد من المعلومات، يُرجى الاطّلاع على أقسام DKLM الخاصة بالمورّدين والمصنّعين الأصليّين للأجهزة.قسم
radio
يحتوي هذا القسم على صورة الراديو وهو مطلوب فقط للأجهزة التي تتضمّن راديوًا مع برنامج خاص بالراديو في قسم مخصّص.
الأقسام غير القابلة للتعديل
في ما يلي قائمة بجميع الأقسام غير القابلة للتعديل واستخدامها:
قسم
cache
يحتوي هذا القسم على بيانات مؤقتة وهو اختياري إذا كان جهازك يستخدم التحديثات السلسة. لا يجب أن يكون هذا القسم قابلاً للكتابة من برنامج الإقلاع، ولكن يجب أن يكون قابلاً للحذف. يعتمد حجم القسم على نوع الجهاز ومدى توفّر المساحة علىuserdata
، ويتراوح عادةً بين 50 و100 ميغابايت.قسم
userdata
يحتوي هذا القسم على التطبيقات التي ثبَّتها المستخدم و البيانات، بما في ذلك بيانات التخصيص.قسم
metadata
إذا كان جهازك يستخدم تشفير البيانات الوصفية، يحتوي هذا القسم على مفتاح تشفير البيانات الوصفية. حجم هذا القسم هو 16 ميغابايت أو أكبر، وهو غير مشفَّر، ولا يتم التقاط لقطات خاطفة لبياناته. يتم محو هذا القسم عند إعادة ضبط الجهاز على الإعدادات الأصلية.
قواعد تعديل الأقسام واقتراحات بشأنها
ننصحك بتعديل جميع أقسام النظام ككل وجميع أقسام المورّدين ككل آخر. من خلال تعديل مجموعة الأقسام ككل، يمكنك اختبار ثبات الواجهات بين الصور في كل قسم.
بغض النظر عن طريقة تعديل الأقسام، يجب تعديل الأقسام التالية بسبب التبعيات المرتبطة ببعضها بشكل وثيق وعدم توفّر واجهات برمجة تطبيقات ثابتة:
- قسمَا
boot
وsystem_dlkm
- أقسام
init_boot
وsystem
وsystem_ext
وproduct
الأقسام الديناميكية
يمكن للأجهزة التي تعمل بنظام Android 11 والإصدارات الأحدث استخدام المساحة التخزينية الديناميكية، وهي نظام لتقسيم مساحة المستخدم في Android يتيح لك إنشاء أقسام أو تغيير حجمها أو إزالتها أثناء التحديثات عبر شبكة غير سلكية (OTA). لمزيد من المعلومات، يُرجى الاطّلاع على الأقسام الديناميكية.
قسم
misc
يستخدم قسم الاسترداد هذا القسم الذي تبلغ مساحته 4 كيلوبايت أو أكثر.قسم
tos
يحتوي هذا القسم على الصورة الثنائية لنظام التشغيل Trusty ولا يتم استخدامه إلا إذا كان الجهاز يتضمّن Trusty. لمزيد من المعلومات، يُرجى الاطّلاع على أقسام نظام التشغيل Trusty OS (TOS).
خيارات المنتجات في Soong
يستخدم نظام إنشاء Soong صِيغ الصور لتقسيم
ملحقات الإنشاء. يمكن للوحدات الأصلية (/build/soong/cc
) تحويل وحدات معالجة
النظام إلى الصيغة الأساسية ووحدات معالجة المورّد إلى
صيغة المورّد، ولا يمكن لوحدة في أحد صيغ الصور الربط بوحدات أخرى في
صيغة صورة مختلفة.
في الإصدار 12 من نظام التشغيل Android أو الإصدارات الأحدث، تُنشئ وحدة النظام التي تحتوي على vendor_available: true
إصدارًا خاصًا بالمورّد بالإضافة إلى الإصدار الأساسي. لإنشاء خيار منتج، يجب تحديد product_available: true
. لا تتوفّر بعض مكتبات VNDK التي لا تتضمّن product_available: true
لمكوّنات المنتجات.