نشر GBL

توضّح هذه الصفحة كيفية نشر ملف GBL الثنائي.

متطلبات البرامج الثابتة الخاصة بعملية التشغيل

لاستخدام GBL، يجب أن يستوفي برنامج التشغيل الثابت لعملية الإقلاع المتطلبات التالية:

  • الامتثال لمعايير UEFI يجب أن تنفّذ البرامج الثابتة بروتوكولات UEFI المطلوبة وتستخدمها. يجب أن تسمح البرامج الثابتة أيضًا بإضافات خاصة بالمورّد باستخدام بروتوكولات UEFI المحدّدة.

  • الأمان. يجب أن تنفّذ البرامج الثابتة جميع جوانب ميزة "التشغيل المتحقّق منه" في Android (AVB)، ما يضمن عدم تحميل سوى الصور التي تمّت المصادقة عليها.

  • أوضاع التشغيل يجب أن يكون الملف الثنائي قادرًا على التعامل مع أوضاع بدء التشغيل المختلفة، مثل بدء التشغيل العادي وبدء التشغيل في وضع الاسترداد وfastboot.

  • التقسيم الديناميكي يجب أن تنفّذ البرامج الثابتة الخاصة بالتمهيد منطق اختيار الفتحة لكي تتيح قراءة فتحة التمهيد الصحيحة لنظام التشغيل A/B وتكون متوافقة مع الأقسام الديناميكية وبيانات المستخدم في القسم الفائق.

  • إعدادات نظام التشغيل يجب أن يكون البرنامج الثابت قادرًا على تعديل سطر الأوامر الخاص بالنواة وشجرة الأجهزة (DTB) وإعدادات bootconfig باستخدام التخصيصات التي يوفّرها المصنّع الأصلي للجهاز (OEM) واللازمة لتشغيل الجهاز.

  • جارٍ تحميل Protected VM. يجب أن يتم تحميل البرامج الثابتة للأجهزة الافتراضية المحمية التي تم التحقّق من صحتها مسبقًا بشكل صحيح قبل تحميل نواة Android في حال توفّر أجهزة افتراضية محمية. لمزيد من المعلومات، يُرجى الاطّلاع على تسلسل التشغيل في Microdroid.

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

  • التوافق والتوافق مع الأنظمة القديمة يجب أن يعمل البرنامج الثابت على الأجهزة التي تتضمّن مورّدين مختلفين ومنظومات على الرقاقة (SoC)، وأن يحافظ على التوافق مع الإصدارات القديمة من إصدار Android المعنيّ.

توافق البرامج الثابتة الخاصة بالتشغيل

مع إجراء التعديلات اللازمة لاستيفاء المتطلبات الواردة في القسم السابق، تتوافق عمليات تنفيذ البرامج الثابتة UEFI التالية مع GBF:

  • EDK2 (Tianocore) ‫EDK2 هو تطبيق شائع ومفتوح المصدر لواجهة UEFI. يجب توفير دعم GBL لأدوات تحميل التشغيل المستندة إلى EDK2، ويتوفّر دعم UEFI حاليًا.
  • U-Boot مشروع مرن ومفتوح المصدر وشائع الاستخدام لبرنامج تحميل نظام التشغيل، وهو يتيح التوافق مع واجهة UEFI لاستخدامه في GBL.
  • LittleKernel (LK) برنامج تحميل إقلاع مفتوح المصدر تستخدمه بعض الشركات المصنّعة.

تشغيل GBL

يمكنك الحصول على ملف ثنائي GBL مُعدّ مسبقًا لتشغيله أو إنشاء ملفك الخاص وتشغيله.

الحصول على البرنامج الثنائي GBL وتشغيله

ويتم توزيع GBL كبرنامج ثنائي واحد لتطبيق EFI. يمكنك تحديث هذا الملف الثنائي بشكل مستقل عن البرنامج الثابت الأساسي للجهاز باستخدام آلية التحديث العادية في Android.

اعتبارًا من Android 16، إذا كنت ستطرح جهازًا يستند إلى مجموعة شرائح ARM-64، ننصحك بشدة بنشر أحدث إصدار موقّع من Google من GBL ودمجه في سلسلة التشغيل.

إنشاء GBL وتشغيله

لإنشاء GBL وتشغيلها، اتّبِع الخطوات التالية:

  1. تأكَّد من تثبيت أداة repo وBazel bootstrap:

    sudo apt install repo bazel-bootstrap
    
  2. ابدأ تهيئة الدليل الحالي للتحكّم في المصدر باستخدام ملف البيان uefi-gbl-mainline:

    repo init -u https://android.googlesource.com/kernel/manifest -b uefi-gbl-mainline
    repo sync -j16
    
  3. أنشئ تطبيق EFI:

    ./tools/bazel run //bootable/libbootloader:gbl_efi_dist --extra_toolchains=@gbl//toolchain:all
    
  4. شغِّل تطبيق EFI داخل Cuttlefish:

    cvd start --android_efi_loader=path_to_the_EFI_app ...
    

    بدلاً من تشغيل Android مباشرةً، يستخدم الأمر cvd start تطبيق EFI لتشغيل Android.

تسجيل الأخطاء والتواصل مع فريق برنامج Bootloader

للإبلاغ عن خطأ في أداة تحميل التشغيل العامة (GBL)، انتقِل إلى مكوّن أداة تحميل التشغيل العامة لنظام Android في Buganizer.

إذا كانت لديك أسئلة، يُرجى التواصل مع فريق GBL وإرسال رسالة إلكترونية إلى android-gbl@google.com.