اعتبارًا من 27 آذار (مارس) 2025، ننصحك باستخدام android-latest-release بدلاً من aosp-main لإنشاء AOSP والمساهمة فيه. لمزيد من المعلومات، يُرجى الاطّلاع على التغييرات في AOSP.
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
توضّح هذه الصفحة كيفية نشر ملف 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 وتشغيله:
تأكَّد من تثبيت أداة repo وبرنامج bootstrap من Bazel:
sudo apt install repo bazel-bootstrap
يمكنك إعداد الدليل الحالي للتحكّم في المصدر باستخدام ملف البيان uefi-gbl-mainline:
إذا كانت لديك أسئلة، يُرجى التواصل مع فريق GBL من خلال إرسال رسالة إلكترونية إلى android-gbl@google.com.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# Deploy GBL\n\nThis page explains how to deploy the GBL binary.\n\nBoot firmware requirements\n--------------------------\n\nTo use GBL, the boot firmware must meet the following requirements:\n\n- UEFI compliance. The firmware must implement and use the\n required UEFI protocols. The firmware must also allow for vendor-specific\n extensions using defined UEFI protocols.\n\n- Security. The firmware must implement all aspects of Android\n Verified Boot (AVB), ensuring only authenticated images are loaded.\n\n- Boot modes. The binary should be able to handle various boot modes, such as normal boot, recovery boot, and fastboot.\n\n- Dynamic partitioning. The boot firmware must implement slot selection logic so\n that it supports reading the correct A/B boot slot and is compatible with\n dynamic partitions and userdata in super.\n\n- OS configuration. The firmware must be capable of modifying the kernel\n command line, device tree (DTB), and bootconfig with OEM customizations\n needed to boot the device.\n\n- Protected VM loading. The binary should correctly load preverified protected\n VM firmware before the Android kernel in the presence of protected VMs. For\n further information, see Microdroid [boot sequence](/docs/core/virtualization/microdroid#boot-sequence).\n\n- Memory management. The boot firmware must support the UEFI memory allocation\n API.\n\n- Compatibility and backward compatibility. The firmware should work on devices\n with different vendor, SOCs, and maintain backward compatibility with the\n corresponding Android version.\n\n### Boot firmware support\n\nWith the modifications necessary to support requirements in the previous\nsection, the following UEFI firmware implementations work with the GBF:\n\n- [EDK2 (Tianocore)](https://github.com/tianocore/edk). A EDK2 is a popular open-source UEFI implementation. GBL support is needed for EDK2-based bootloaders, and UEFI support is already present.\n- [U-Boot](https://docs.u-boot.org/en/latest/). A flexible and widely used open-source bootloader project that is gaining UEFI compatibility for GBL usage.\n- [LittleKernel (LK)](https://github.com/littlekernel/lk). An open-source bootloader used by some vendors.\n\nRun GBL\n-------\n\nYou can obtain a prebuilt GBL binary to run or build your own and run it.\n\n### Obtain and run the GBL binary\n\nGBL is distributed as a single EFI app binary. You can update this\nbinary independently from the device's base firmware using Android's standard\nupdate mechanism.\n\nBeginning with Android 16, if you ship a device based\non ARM-64 chipset, we strongly recommend that you deploy the [latest\nGoogle-signed version](https://dl.google.com/android-gbl/android16/20250703/signed-gbl-img-13709664.zip) of GBL and integrate it into your boot chain.\n\n### Build and run the GBL\n\nTo build and run the GBL:\n\n1. Verify that you have the repo tool and Bazel bootstrap installed:\n\n sudo apt install repo bazel-bootstrap\n\n2. Initialize your current directory for source control using the `uefi-gbl-mainline` manifest file:\n\n repo init -u https://android.googlesource.com/kernel/manifest -b uefi-gbl-mainline\n repo sync -j16\n\n3. Build the EFI app:\n\n ./tools/bazel run //bootable/libbootloader:gbl_efi_dist --extra_toolchains=@gbl//toolchain:all\n\n4. Run the EFI app within Cuttlefish:\n\n cvd start --android_efi_loader=\u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-n\"\u003epath_to_the_EFI_app\u003c/span\u003e\u003c/var\u003e ...\n\n Instead of booting Android directly, this `cvd start` command uses the EFI\n app to boot Android.\n\n| **Note:** For x86 platform, use the EFI image built for x86_64.\n\nFile bugs and contact the bootloader team\n-----------------------------------------\n\nTo report a bug for the GBL, navigate to the\n[Android Generic Bootloader component in Buganizer](https://issuetracker.google.com/issues/new?component=1602063&template=2011730).\n\nFor questions, contact the GBL team, send an email to `android-gbl@google.com`."]]