Mulai 27 Maret 2025, sebaiknya gunakan android-latest-release, bukan aosp-main, untuk mem-build dan berkontribusi pada AOSP. Untuk mengetahui informasi selengkapnya, lihat Perubahan pada AOSP.
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Halaman ini menjelaskan cara men-deploy biner GBL.
Persyaratan firmware booting
Untuk menggunakan GBL, firmware booting harus memenuhi persyaratan berikut:
Kepatuhan UEFI. Firmware harus menerapkan dan menggunakan
protokol UEFI yang diperlukan. Firmware juga harus mengizinkan ekstensi khusus
vendor menggunakan protokol UEFI yang ditentukan.
Keamanan. Firmware harus menerapkan semua aspek Booting
Terverifikasi Android (AVB), yang memastikan hanya image yang diautentikasi yang dimuat.
Mode booting. Biner harus dapat menangani berbagai mode booting, seperti booting normal, booting pemulihan, dan fastboot.
Partisi dinamis. Firmware booting harus menerapkan logika pemilihan slot sehingga
mendukung pembacaan slot booting A/B yang benar dan kompatibel dengan
partisi dinamis dan userdata di super.
Konfigurasi OS. Firmware harus dapat mengubah command line kernel, hierarki perangkat (DTB), dan bootconfig dengan penyesuaian OEM yang diperlukan untuk mem-booting perangkat.
Pemuatan VM yang dilindungi. Biner harus memuat firmware VM yang dilindungi dan telah diverifikasi
dengan benar sebelum kernel Android dengan VM yang dilindungi. Untuk
mengetahui informasi selengkapnya, lihat urutan booting Microdroid.
Manajemen memori. Firmware booting harus mendukung API
alokasi memori UEFI.
Kompatibilitas dan kompatibilitas mundur. Firmware harus berfungsi di perangkat
dengan vendor, SOC, dan mempertahankan kompatibilitas mundur dengan
versi Android yang sesuai.
Dukungan firmware booting
Dengan modifikasi yang diperlukan untuk mendukung persyaratan di bagian
sebelumnya, implementasi firmware UEFI berikut berfungsi dengan GBF:
EDK2 (Tianocore). EDK2 adalah
implementasi UEFI open source yang populer. Dukungan GBL diperlukan untuk bootloader berbasis
EDK2, dan dukungan UEFI sudah ada.
U-Boot. Project bootloader open source yang fleksibel dan banyak digunakan
yang mendapatkan kompatibilitas UEFI untuk penggunaan GBL.
LittleKernel (LK). Bootloader
open source yang digunakan oleh beberapa vendor.
Menjalankan GBL
Anda bisa mendapatkan biner GBL bawaan untuk dijalankan atau mem-build biner Anda sendiri dan menjalankannya.
Mendapatkan dan menjalankan biner GBL
GBL didistribusikan sebagai satu biner aplikasi EFI. Anda dapat mengupdate biner
ini secara independen dari firmware dasar perangkat menggunakan mekanisme update
standar Android.
Mulai Android 16, jika Anda mengirimkan perangkat yang berbasis
chipset ARM-64, sebaiknya deploy GBL versi terbaru
yang ditandatangani Google dan integrasikan ke dalam rantai booting Anda.
Mem-build dan menjalankan GBL
Untuk mem-build dan menjalankan GBL:
Pastikan Anda telah menginstal alat repo dan bootstrap Bazel:
sudo apt install repo bazel-bootstrap
Lakukan inisialisasi direktori saat ini untuk kontrol sumber menggunakan file manifes uefi-gbl-mainline:
Jika ada pertanyaan, hubungi tim GBL, kirim email ke android-gbl@google.com.
Konten dan contoh kode di halaman ini tunduk kepada lisensi yang dijelaskan dalam Lisensi Konten. Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-08-08 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-08-08 UTC."],[],[],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`."]]