The Generic Bootloader (GBL) is a standardized, updatable bootloader solution designed to streamline the Android boot process. GBL replaces the highly fragmented landscape of vendor-specific bootloaders with a single, consistently maintained component. This change reduces redundancy, improves security, and simplifies updates across the Android ecosystem.
GBL consists of the following components:
- core boot logic
- The logic that includes the main program loop, boot mode detection, and loading the kernel.
- UEFI protocol handlers
- Implementations for required and recommended UEFI protocols, including block I/O, hashing, memory allocation, and random number generation. These implementations are found in the boot firmware projects (EDK2, UBoot, LK).
- Android-specific protocols
- Custom UEFI protocols for AVB, Fastboot, slot selection, OS configuration, and more.
- Fastboot
- A communication protocol allowing for standardized device flashing and device debug logic.
- Vendor extensions
- Extension of the aforementioned components of GBL by creating your own protocols. These protocols are agreed upon in advance before GBL adds them to their dependency list. Vendor extensions are optional.
Beginning with Android 16, if you ship a device based on ARM-64 chipset, we strongly recommend that you deploy the latest Google-signed version of GBL and integrate it into your boot chain.