از 27 مارس 2025، توصیه می کنیم از android-latest-release به جای aosp-main برای ساختن و کمک به AOSP استفاده کنید. برای اطلاعات بیشتر، به تغییرات AOSP مراجعه کنید.
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
این صفحه نحوه استقرار باینری GBL را توضیح می دهد.
الزامات سیستم عامل بوت
برای استفاده از GBL، سیستم عامل بوت باید شرایط زیر را برآورده کند:
مطابقت با UEFI سیستم عامل باید پروتکل های مورد نیاز UEFI را پیاده سازی و استفاده کند. سفتافزار باید با استفاده از پروتکلهای تعریفشده UEFI، افزونههای خاص فروشنده را نیز اجازه دهد.
امنیت. سفتافزار باید تمام جنبههای Android Verified Boot (AVB) را اجرا کند و مطمئن شود که فقط تصاویر تأیید شده بارگیری میشوند.
حالت های بوت باینری باید بتواند حالت های مختلف بوت، مانند بوت معمولی، بوت بازیابی و فست بوت را مدیریت کند.
پارتیشن بندی پویا سفتافزار بوت باید منطق انتخاب اسلات را پیادهسازی کند تا از خواندن شکاف راهاندازی A/B صحیح پشتیبانی کند و با پارتیشنهای پویا و دادههای کاربر در حالت فوقالعاده سازگار باشد.
پیکربندی سیستم عامل سفتافزار باید بتواند خط فرمان هسته، درخت دستگاه (DTB) و bootconfig را با سفارشیسازیهای OEM مورد نیاز برای بوت کردن دستگاه تغییر دهد.
بارگذاری VM محافظت شده باینری باید به درستی سیستم عامل VM محافظت شده از قبل تایید شده را قبل از هسته اندروید در حضور ماشین های مجازی محافظت شده بارگیری کند. برای اطلاعات بیشتر، دنباله راهاندازی Microdroid را ببینید.
مدیریت حافظه سیستم عامل بوت باید از API تخصیص حافظه UEFI پشتیبانی کند.
سازگاری و سازگاری با عقب. سفتافزار باید روی دستگاههایی با فروشندههای مختلف، SOC کار کند و سازگاری با نسخه اندروید مربوطه را حفظ کند.
پشتیبانی از سیستم عامل بوت
با تغییرات لازم برای پشتیبانی از الزامات در بخش قبل، پیادهسازیهای میانافزار UEFI زیر با GBF کار میکنند:
EDK2 (Tianocore) . EDK2 یک پیاده سازی UEFI منبع باز محبوب است. پشتیبانی GBL برای بوت لودرهای مبتنی بر EDK2 مورد نیاز است و پشتیبانی UEFI در حال حاضر وجود دارد.
یو بوت . یک پروژه بوت لودر منبع باز انعطاف پذیر و پرکاربرد که در حال به دست آوردن سازگاری با UEFI برای استفاده از GBL است.
لیتل کرنل (LK) . یک بوت لودر منبع باز که توسط برخی از فروشندگان استفاده می شود.
GBL را اجرا کنید
می توانید یک باینری GBL از پیش ساخته شده برای اجرا یا ساختن خود و اجرای آن تهیه کنید.
باینری GBL را دریافت و اجرا کنید
GBL به عنوان یک برنامه باینری واحد EFI توزیع می شود. شما می توانید این باینری را به طور مستقل از سیستم عامل پایه دستگاه با استفاده از مکانیزم به روز رسانی استاندارد اندروید به روز کنید.
با شروع اندروید 16، اگر دستگاهی مبتنی بر چیپست ARM-64 ارسال میکنید، اکیداً توصیه میکنیم که آخرین نسخه GBL را که توسط Google امضا شده است، نصب کنید و آن را در زنجیره راهاندازی خود ادغام کنید.
GBL را بسازید و اجرا کنید
برای ساخت و اجرای GBL:
بررسی کنید که ابزار repo و بوت استرپ Bazel را نصب کرده اید:
sudo apt install repo bazel-bootstrap
دایرکتوری فعلی خود را برای کنترل منبع با استفاده از فایل مانیفست uefi-gbl-mainline راه اندازی کنید:
برای سؤالات، با تیم GBL تماس بگیرید، یک ایمیل به android-gbl@google.com ارسال کنید.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","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-29 بهوقت ساعت هماهنگ جهانی."],[],[],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`."]]