نظرة عامة على أداة تحميل التشغيل

أداة تحميل التشغيل هي صورة مملوكة للبائع مسؤولة عن إظهار النواة على الجهاز. يقوم برنامج تحميل التشغيل بحماية حالة الجهاز وهو مسؤول عن تهيئة بيئة التنفيذ الموثوقة (TEE) وربط جذر الثقة الخاص به. يتحقق برنامج تحميل التشغيل أيضًا من سلامة أقسام boot recovery قبل نقل التنفيذ إلى النواة.

مثال على تدفق أداة تحميل التشغيل

فيما يلي مثال لتدفق أداة تحميل التشغيل:

  1. تحميل وتهيئة الذاكرة.

  2. تحقق من الجهاز وفقًا لتدفق التمهيد الذي تم التحقق منه .

  3. تحقق من أقسام التمهيد، بما في ذلك boot ، dtbo ، و init_boot ، recovery ، وفقًا لتدفق التمهيد الذي تم التحقق منه. كجزء من هذه الخطوة، تحقق من إصدار رأس صورة التمهيد وقم بتحليل الرأس وفقًا لذلك.

  4. إذا تم استخدام تحديثات A/B ، فحدد الفتحة الحالية للتمهيد.

  5. تحديد ما إذا كان يجب تشغيل وضع الاسترداد. لمزيد من المعلومات، راجع دعم تحديثات OTA .

  6. قم بتحميل صور التمهيد، مثل boot.img و vendor_boot.img و init_boot.img وصور تمهيد البائع الخاصة الأخرى. تحتوي صور التمهيد هذه على صور kernel وramdisk.

    1. قم بتحميل النواة في الذاكرة كملف ثنائي مضغوط ذاتي التنفيذ. تقوم النواة بفك ضغط نفسها وتبدأ في التنفيذ في الذاكرة.

    2. قم بتحميل ramdisks وقسم bootconfig في الذاكرة لإنشاء initramfs .

الميزات الإضافية المتعلقة بمحمل التشغيل

فيما يلي قائمة بالميزات الإضافية المتعلقة بمحمل التشغيل والتي يمكنك تنفيذها:

  • تراكب شجرة الجهاز (DTO). يتيح تراكب شجرة الجهاز لمحمل التشغيل دعم تكوينات الأجهزة المختلفة. يتم تجميع DTO في شجرة جهاز blob (DTB) التي يستخدمها محمل الإقلاع.

  • التوزيع العشوائي للعناوين الافتراضية لصورة Kernel. يدعم أداة تحميل التشغيل التوزيع العشوائي للعنوان الظاهري الذي يتم تحميل صورة kernel عليه. لتعيين العنوان بشكل عشوائي، قم بتعيين RANDOMIZE_BASE على true في تكوين kernel. يجب أن يوفر محمل الإقلاع الإنتروبيا عن طريق تمرير قيمة u64 عشوائية في عقدة شجرة الجهاز /chosen/kaslr-seed .

  • التمهيد الذي تم التحقق منه. يتيح التمهيد الذي تم التحقق منه لمحمل التشغيل التأكد من أن جميع التعليمات البرمجية المنفذة تأتي من مصدر موثوق.

  • تكوين التمهيد. يتوفر تكوين التمهيد في نظام التشغيل Android 12 والإصدارات الأحدث وهو عبارة عن آلية لتمرير تفاصيل التكوين من الإصدار ومحمل الإقلاع إلى نظام التشغيل. قبل إصدار Android 12، تم استخدام معلمات سطر أوامر kernel مع البادئة androidboot .

  • تحديثات عبر الهواء (OTA). يمكن لأجهزة Android الموجودة في الميدان تلقي تحديثات OTA وتثبيتها على النظام وبرامج التطبيقات وقواعد المنطقة الزمنية. هذه الميزة لها آثار على تنفيذ أداة تحميل التشغيل لديك. للحصول على معلومات عامة حول OTA، راجع تحديثات OTA . للحصول على تفاصيل تنفيذ OTA الخاصة بمحمل التشغيل، راجع دعم تحديثات OTA .

  • ملزمة الإصدار . يربط ربط الإصدار مفاتيح الأمان بنظام التشغيل وإصدار مستوى التصحيح. يضمن ربط الإصدار أن المهاجم الذي يكتشف نقطة ضعف في إصدار قديم من النظام أو برنامج TEE لا يمكنه إعادة الجهاز إلى الإصدار الضعيف واستخدام المفاتيح التي تم إنشاؤها باستخدام الإصدار الأحدث. يجب أن يوفر برنامج تحميل التشغيل معلومات معينة لدعم ربط الإصدار. لمزيد من المعلومات، راجع معلومات الإصدار في خصائص AVB .

سطر أوامر النواة

قم بتسلسل سطر أوامر kernel من المواقع التالية:

  • سطر أوامر أداة تحميل التشغيل: مجموعة من المعلمات الثابتة والديناميكية التي يحددها برنامج تحميل التشغيل

  • شجرة الأجهزة: من العقدة chosen/bootargs

  • defconfig : من CONFIG_CMDLINE

  • boot.img : من سطر الأوامر (لمعرفة الإزاحات والحجم، راجع system/core/mkbootimg/bootimg.h

اعتبارًا من Android 12، بالنسبة لمعلمات androidboot.* التي نحتاج إلى تمريرها إلى مساحة مستخدمي Android، يمكننا استخدام bootconfig بدلاً من سطر أوامر kernel.