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 Android Verified Boot (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.
Pengelolaan 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
:repo init -u https://android.googlesource.com/kernel/manifest -b uefi-gbl-mainline repo sync -j16
Build aplikasi EFI:
./tools/bazel run //bootable/libbootloader:gbl_efi_dist --extra_toolchains=@gbl//toolchain:all
Jalankan aplikasi EFI dalam Cuttlefish:
cvd start --android_efi_loader=path_to_the_EFI_app ...
Perintah
cvd start
ini menggunakan aplikasi EFI untuk mem-booting Android, bukan mem-booting Android secara langsung.
Melaporkan bug dan menghubungi tim bootloader
Untuk melaporkan bug GBL, buka komponen Android Generic Bootloader di Buganizer.
Jika ada pertanyaan, hubungi tim GBL, kirim email ke android-gbl@google.com
.