نظرة عامة على الأقسام

تحتوي أجهزة 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 لمكوّنات المنتجات.