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 memungkinkan 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, device tree (DTB), dan bootconfig dengan penyesuaian OEM yang diperlukan untuk melakukan booting perangkat.
Memuat VM yang dilindungi. Biner harus memuat firmware VM yang dilindungi dan telah diverifikasi sebelumnya dengan benar sebelum kernel Android jika ada VM yang dilindungi. Untuk informasi lebih lanjut, 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 dan SoC yang berbeda, serta 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 dapat memperoleh biner GBL bawaan untuk dijalankan atau membangun biner Anda sendiri dan menjalankannya.
Mendapatkan dan menjalankan biner GBL
GBL didistribusikan sebagai biner aplikasi EFI tunggal. Anda dapat mengupdate biner ini secara terpisah dari firmware dasar perangkat menggunakan mekanisme update standar Android.
Mulai Android 16, jika Anda mengirimkan perangkat berdasarkan chipset ARM-64, sebaiknya Anda men-deploy versi terbaru yang ditandatangani Google dari GBL dan mengintegrasikannya ke dalam rantai booting Anda.
Membangun dan menjalankan GBL
Untuk membuat dan menjalankan GBL:
Pastikan Anda telah menginstal alat repo dan bootstrap Bazel:
sudo apt install repo bazel-bootstrap
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
Bangun 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 ...
Command
cvd start
ini menggunakan aplikasi EFI untuk mem-booting Android, bukan mem-booting Android secara langsung.
Mengajukan 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
.