Ogólny program rozruchowy (GBL) to standardowe rozwiązanie w postaci programu rozruchowego z możliwością aktualizacji, które zostało zaprojektowane z myślą o uproszczeniu procesu uruchamiania Androida. GBL zastępuje wysoce rozdrobnione środowisko programów rozruchowych specyficznych dla dostawców jednym, spójnym i regularnie aktualizowanym komponentem. Ta zmiana zmniejsza nadmiarowość, poprawia bezpieczeństwo i upraszcza aktualizacje w ekosystemie Androida.
GBL składa się z tych komponentów:
- podstawową logikę uruchamiania Androida,
- Logika obejmująca główną pętlę programu, wykrywanie trybu rozruchu i ładowanie jądra.
- Fastboot
- Protokół komunikacyjny i narzędzie diagnostyczne używane do flashowania i debugowania urządzeń.
- Rozszerzenia dostawców
- Rozszerzenie wspomnianych komponentów GBL przez utworzenie własnych protokołów. Te protokoły są uzgadniane z wyprzedzeniem, zanim GBL doda je do listy zależności. Rozszerzenia dostawców są opcjonalne.
- Moduły obsługi protokołów UEFI
- Implementacje wymaganych i zalecanych protokołów UEFI, w tym blokowych operacji wejścia/wyjścia, alokacji pamięci i generowania liczb losowych. Implementacje referencyjne znajdują się w projektach oprogramowania układowego rozruchu (EDK2, UBoot, LK).
- Definicje protokołu UEFI specyficzne dla Androida
- Niestandardowe protokoły UEFI dla AVB, Fastboot, wyboru gniazda, konfiguracji systemu operacyjnego i innych funkcji. Implementacje znajdują się w projektach oprogramowania sprzętowego dostawców układów scalonych na Androida.
Począwszy od Androida 16, jeśli wprowadzasz na rynek urządzenie oparte na chipsecie ARM-64, zdecydowanie zalecamy wdrożenie najnowszej wersji GBL podpisanej przez Google i zintegrowanie jej z łańcuchem rozruchowym.
Co dalej?
Informacje o wdrażaniu ogólnego programu wczytującego znajdziesz w artykule Wdrażanie gbl.