Il Generic Bootloader (GBL) è una soluzione di bootloader standardizzata e aggiornabile progettata per semplificare la procedura di avvio di Android. GBL sostituisce il panorama altamente frammentato dei bootloader specifici del fornitore con un unico componente gestito in modo coerente. Questa modifica riduce la ridondanza, migliora la sicurezza e semplifica gli aggiornamenti nell'ecosistema Android.
GBL è costituito dai seguenti componenti:
- core boot logic
- La logica che include il ciclo del programma principale, il rilevamento della modalità di avvio e il caricamento del kernel.
- Gestori di protocollo UEFI
- Implementazioni per i protocolli UEFI richiesti e consigliati, tra cui I/O bloccata, hashing, allocazione della memoria e generazione di numeri casuali. Queste implementazioni si trovano nei progetti del firmware di avvio (EDK2, UBoot, LK).
- Protocolli specifici per Android
- Protocolli UEFI personalizzati per AVB, Fastboot, selezione dello slot, configurazione del sistema operativo e altro ancora.
- Fastboot
- Un protocollo di comunicazione che consente il flashing e la logica di debug dei dispositivi standardizzati.
- Estensioni del fornitore
- Espansione dei componenti di GBL sopra menzionati mediante la creazione di protocolli personalizzati. Questi protocolli vengono concordati in anticipo prima che GBL li aggiunga al proprio elenco di dipendenze. Le estensioni del fornitore sono facoltative.
A partire da Android 16, se spedisci un dispositivo basato su chipset ARM-64, ti consigliamo vivamente di eseguire il deployment dell'ultima versione di GBL firmata da Google e di integrarla nella catena di avvio.