Generyczny bootloader (GBL) to standardowe, aktualizowalne rozwiązanie bootloadera, które ma na celu usprawnienie procesu uruchamiania systemu Android. GBL zastępuje bardzo zróżnicowane środowisko bootloaderów konkretnych dostawców pojedynczym, konsekwentnie utrzymywanym komponentem. Ta zmiana zmniejsza redundancję, poprawia bezpieczeństwo i upraszcza aktualizacje w ekosystemie Androida.
GBL składa się z tych komponentów:
- logika uruchamiania rdzenia,
- Logika obejmująca główną pętlę programu, wykrywanie trybu rozruchu i wczytywanie jądra.
- Moduły obsługi protokołów UEFI
- Implementacje wymaganych i zalecanych protokołów UEFI, w tym blokowania we/wy, haszowania, alokacji pamięci i generowania liczb losowych. Te implementacje znajdują się w projektach oprogramowania rozruchowego (EDK2, UBoot, LK).
- Protokoły specyficzne dla Androida
- Niestandardowe protokoły UEFI dotyczące AVB, Fastboot, wyboru slotu, konfiguracji systemu operacyjnego i innych funkcji.
- Fastboot
- Protokół komunikacji umożliwiający standardowe flashowanie urządzeń i logikę debugowania urządzeń.
- Rozszerzenia dostawcy
- Rozszerzenie wspomnianych komponentów GBL przez utworzenie własnych protokołów. Protokoły są uzgadniane z wyprzedzeniem, zanim GBL doda je do listy zależności. Rozszerzenia dostawcy są opcjonalne.
Jeśli od Androida 16 sprzedajesz urządzenie z chipsetem ARM-64, zdecydowanie zalecamy wdrożenie najnowszej wersji GBL podpisanej przez Google i zintegrowanie jej z łańcuchem rozruchu.