نظرة عامة على برنامج الإقلاع

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

مثال على مسار برنامج الإقلاع

في ما يلي مثال على تسلسل عملية برنامج تحميل التشغيل:

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

  2. أثبِت ملكية الجهاز وفقًا لخطوات "التشغيل المتحقَّق منه".

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

  4. في حال استخدام تحديثات A/B، حدِّد الفتحة الحالية التي سيتم تشغيل الجهاز منها.

  5. تحديد ما إذا كان يجب تشغيل وضع الاسترداد لمزيد من المعلومات، يُرجى الاطّلاع على توفير تحديثات عبر الهواء.

  6. حمِّل صور التشغيل، مثل boot.img وvendor_boot.img وinit_boot.img وصور التشغيل الأخرى الخاصة بالمورّد. تحتوي صور التشغيل هذه على صور النواة و"مساحة التخزين المؤقت للذاكرة العشوائية" (ramdisk).

    1. حمِّل النواة إلى الذاكرة كملف ثنائي مضغوط قابل للتنفيذ الذاتي. يتم فك ضغط النواة ذاتيًا وتبدأ في التنفيذ في الذاكرة.

    2. حمِّل أقسام ramdisk وbootconfig في الذاكرة لإنشاء initramfs.

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

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

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

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

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

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

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

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

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

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

  • سطر أوامر برنامج الإقلاع: مجموعة من المَعلمات الثابتة والديناميكية التي يحدّدها برنامج الإقلاع

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

  • defconfig: من CONFIG_CMDLINE

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

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