Generyczny bootloader (GBL) to ujednolicony, aktualizowalny bootloader, który ma na celu usprawnienie procesu uruchamiania Androida. 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:
- podstawowa logika uruchamiania Androida,
- Logika obejmująca główną pętlę programu, wykrywanie trybu rozruchu i wczytywanie jądra.
- Fastboot
- Protokół komunikacyjny i narzędzie diagnostyczne służące do flashowania i debugowania urządzenia.
- 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.
- Moduły obsługi protokołów UEFI
- Implementacje wymaganych i zalecanych protokołów UEFI, w tym bloku operacji we/wy, alokacji pamięci i generowania liczb losowych. Implementacje referencyjne można znaleźć w projektach oprogramowania ładującego (EDK2, UBoot, LK).
- Definicje protokołu UEFI dotyczące Androida
- Niestandardowe protokoły UEFI dotyczące AVB, Fastboot, wyboru gniazda, konfiguracji systemu operacyjnego itp. Implementacje znajdują się w projektach oprogramowania układów scalonych Androida.
Jeśli od wersji 16 Androida wysyłasz urządzenie z procesorem ARM-64, zdecydowanie zalecamy wdrożenie najnowszej wersji GBL podpisanej przez Google i zintegrowanie jej z łańcuchem rozruchu.
Co dalej?
Aby dowiedzieć się, jak wdrożyć Generic Bootloader, zapoznaj się z artykułem Wdrażanie gbl.