برنامج الإقلاع هو صورة مملوكة للمورّد ومسؤولة عن تشغيل النواة على الجهاز. يحمي برنامج الإقلاع حالة الجهاز وهو المسؤول عن تهيئة بيئة التنفيذ الموثوقة (TEE) وربطها بجذر الثقة. يتحقّق برنامج التحميل أيضًا من سلامة القسمَين boot وrecovery قبل نقل التنفيذ إلى النواة.
مثال على مسار برنامج الإقلاع
في ما يلي مثال على تسلسل عمل برنامج تحميل التشغيل:
تحميل الذاكرة وتهيئتها
تحقَّق من الجهاز وفقًا لخطوات "التشغيل المتحقَّق منه".
تحقَّق من أقسام التشغيل، بما في ذلك
bootوdtboوinit_bootوrecovery، وفقًا لعملية التشغيل المُتحقّق منه. كجزء من هذه الخطوة، تحقَّق من إصدار عنوان صورة التشغيل وحلِّل العنوان وفقًا لذلك.في حال استخدام تحديثات A/B، حدِّد الفتحة الحالية التي سيتم تشغيل الجهاز منها.
تحديد ما إذا كان يجب بدء وضع الاسترداد لمزيد من المعلومات، يُرجى الاطّلاع على توفير تحديثات عبر الأثير.
حمِّل صور التشغيل، مثل
boot.imgوvendor_boot.imgوinit_boot.imgوصور التشغيل الأخرى الخاصة بالمورّد. تحتوي صور التشغيل هذه على صور النواة و"مساحة التخزين المؤقت للذاكرة العشوائية" (ramdisk).حمِّل النواة إلى الذاكرة كملف ثنائي مضغوط قابل للتنفيذ الذاتي. يتم فك ضغط النواة ذاتيًا وتبدأ في التنفيذ في الذاكرة.
حمِّل أقراص RAM وقسم bootconfig في الذاكرة لإنشاء
initramfs.
ميزات إضافية متعلّقة ببرنامج تحميل التشغيل
في ما يلي قائمة بالميزات الإضافية ذات الصلة ببرنامج تحميل التشغيل التي يمكنك تنفيذها:
تراكب شجرة الأجهزة (DTO): تتيح تراكب شجرة الأجهزة لبرنامج الإقلاع إمكانية توفير الدعم لإعدادات الأجهزة المختلفة. يتم تجميع كائن نقل البيانات في كائن ثنائي كبير (blob) لشجرة الأجهزة (DTB) يستخدمه برنامج الإقلاع.
توزيع عشوائي للعناوين الافتراضية لصورة النواة: يتيح برنامج التحميل العشوائي لعنوان الذاكرة الافتراضية الذي يتم تحميل صورة النواة فيه. لتغيير العنوان بشكل عشوائي، اضبط
RANDOMIZE_BASEعلىtrueفي إعدادات النواة. يجب أن يوفّر برنامج الإقلاع إنتروبيا من خلال تمرير قيمة u64 عشوائية في عقدة شجرة الأجهزة/chosen/kaslr-seed.التشغيل المتحقّق منه: تتيح ميزة التشغيل المتحقّق منه لبرنامج الإقلاع التأكّد من أنّ جميع الرموز التي يتم تنفيذها صادرة من مصدر موثوق به.
إعدادات التشغيل تتوفّر إعدادات التشغيل في الإصدار 12 من نظام التشغيل Android والإصدارات الأحدث، وهي آلية لنقل تفاصيل الإعدادات من الإصدار وبرنامج الإقلاع إلى نظام التشغيل. قبل الإصدار 12 من نظام التشغيل Android، يتم استخدام مَعلمات سطر أوامر النواة التي تتضمّن البادئة
androidboot.التحديثات عبر شبكة غير سلكية (OTA): يمكن لأجهزة Android الميدانية تلقّي تحديثات عبر الأثير (OTA) وتثبيتها على النظام وبرامج التطبيقات وقواعد المناطق الزمنية. لهذه الميزة آثار على تنفيذ برنامج الإقلاع. للحصول على معلومات عامة حول التحديث عبر اتصال لاسلكي، يُرجى الاطّلاع على التحديثات عبر اتصال لاسلكي. للحصول على تفاصيل حول تنفيذ تحديثات OTA الخاصة ببرنامج الإقلاع، يُرجى الاطّلاع على إتاحة تحديثات OTA.
ربط الإصدار ربط الإصدار يربط مفاتيح الأمان بنظام التشغيل وإصدار مستوى التصحيح. يضمن ربط الإصدار ألا يتمكّن المهاجم الذي يكتشف ثغرة أمنية في إصدار قديم من النظام أو برنامج TEE من إعادة الجهاز إلى الإصدار الذي يتضمّن الثغرة واستخدام المفاتيح التي تم إنشاؤها باستخدام الإصدار الأحدث. يجب أن يوفّر برنامج الإقلاع معلومات معيّنة لدعم ربط الإصدار. لمزيد من المعلومات، اطّلِع على معلومات الإصدار في سمات AVB.
سطر أوامر النواة
يجب ربط سطر أوامر النواة من المواقع التالية:
سطر أوامر برنامج الإقلاع: مجموعة من المَعلمات الثابتة والديناميكية التي يحدّدها برنامج الإقلاع
شجرة الأجهزة: من العقدة
chosen/bootargsdefconfig: منCONFIG_CMDLINE
boot.img: من سطر الأوامر (بالنسبة إلى الإزاحات والأحجام، يُرجى الرجوع إلىsystem/core/mkbootimg/bootimg.h
اعتبارًا من Android 12، يمكننا استخدام bootconfig بدلاً من سطر أوامر النواة لمعلَمات androidboot.* التي نحتاج إلى تمريرها إلى مساحة المستخدم في Android.