نشر GBL

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

متطلبات البرامج الثابتة لبدء التشغيل

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

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

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

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

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

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

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

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

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

دعم البرامج الثابتة لبدء التشغيل

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

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

تشغيل GBL

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

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

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

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

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

لإنشاء نموذج GBL وتشغيله:

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

    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.

الإبلاغ عن الأخطاء والتواصل مع فريق أداة تحميل التشغيل

للإبلاغ عن خطأ في GBL، انتقِل إلى مكوّن "برنامج تشغيل الإقلاع العام لنظام التشغيل Android" في Buganizer.

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