نظرة عامة

تتضمّن أجهزة Android عدة أقسام تؤدي وظائف مختلفة في عملية التمهيد.

الأقسام العادية

  • قسم boot يحتوي هذا القسم على صورة نواة ويتم إنشاؤه باستخدام mkbootimg. يمكنك استخدام قسم افتراضي لتثبيت أي من الصور مباشرةً بدون تثبيت قسم تمهيد جديد. يحتوي هذا القسم أيضًا على ملف ramdisk العام في الأجهزة التي تم إطلاقها قبل Android 13.

    • kernel. يُعيد قسم kernel الافتراضي تحميل الإصدار القديم من نواة النظام (zImage zImage-dtbImage.gz-dtb) من خلال كتابة ملف تعريف نواة النظام الجديد فوق ملف تعريف نواة النظام القديم. إذا كانت نواة التطوير المقدَّمة غير متوافقة، قد تحتاج إلى تحديث قسم vendor أو system أو dtb (إذا كان متوفّرًا) باستخدام وحدات النواة المرتبطة.

    • ramdisk. يُعيد قسم ramdisk الافتراضي كتابة ملف ramdisk عن طريق كتابة صورة ملف ramdisk الجديد فوق صورة ملف ramdisk القديم.

    تحدِّد عملية الكتابة فوق البيانات موقع بدء الصورة الحالية في eMMC وتنسخ الصورة الجديدة إلى هذا الموقع. قد تكون الصورة الجديدة (النواة أو أداة ramdisk) أكبر من الصورة الحالية، ولكي يُفرِّغ bootloader مساحة، يمكنه نقل البيانات التي تلي الصورة أو إلغاء العملية مع إعلامك بخطأ.

  • قسم init_boot يحتوي هذا القسم على ملف ramdisk العام للأجهزة التي تعمل بالإصدار 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 الجديدة.

تنسيق قسم Android

الشكل 1: تنسيق التقسيم في Android 11

  • صورة نظام واحدة (SSI) صورة جديدة تجريبية تحتوي على الصور system وsystem_ext عندما تكون هذه الأقسام شائعة لمجموعة من الأجهزة المستهدَفة، يمكن لهذه الأجهزة مشاركة ملف SSI وتخطّي إنشاء ملفَي system وsystem_ext.

  • قسم system_ext قسم جديد يمكنه استخدام موارد system ويمكن أن يتضمّن وحدات نظام:

    • توسيع وحدات نظام AOSP في قسم system: ننصح بتحميل هذه الوحدات إلى AOSP حتى يمكن تثبيتها على القسم system لاحقًا.

    • تجميع وحدات خاصة بالمصنّع الأصلي للجهاز أو منظومة على الرقاقة (SoC) ننصحك بإزالة ربط هذه الوحدات كي يتمكّن من تثبيتها على قسم 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.

  • في الإصدار 12 من نظام التشغيل Android أو الإصدارات الأحدث، تنشئ وحدة النظام التي تحتوي على vendor_available: true إصدارًا خاصًا بالمورّد بالإضافة إلى الإصدار الأساسي. لإنشاء خيار منتج، يجب تحديدproduct_available: true. لا تتوفّر بعض مكتبات VNDK التي لا تتضمّن product_available: true لوحدات المنتجات.