Auf dieser Seite wird beschrieben, wie Sie die GBL-Binärdatei bereitstellen.
Anforderungen an die Boot-Firmware
Für die Verwendung von GBL muss die Boot-Firmware die folgenden Anforderungen erfüllen:
UEFI-Konformität Die Firmware muss die erforderlichen UEFI-Protokolle implementieren und verwenden. Die Firmware muss auch anbieterspezifische Erweiterungen mit definierten UEFI-Protokollen zulassen.
Sicherheit Die Firmware muss alle Aspekte von Android Verified Boot (AVB) implementieren, damit nur authentifizierte Images geladen werden.
Bootmodi Das Binärprogramm sollte verschiedene Bootmodi unterstützen, z. B. den normalen Boot, den Wiederherstellungsboot und den Fastboot.
Dynamische Partitionierung. Die Boot-Firmware muss eine Logik zur Auswahl des Slots implementieren, die das Lesen des richtigen A/B-Boot-Slots unterstützt und mit dynamischen Partitionen und userdata in super kompatibel ist.
Betriebssystemkonfiguration Die Firmware muss die Kernel-Befehlszeile, den Gerätebaum (Device Tree, DTB) und die Boot-Konfiguration mit OEM-Anpassungen ändern können, die zum Starten des Geräts erforderlich sind.
Geschütztes Laden von VMs Die Binärdatei sollte die vorab geprüfte Firmware der geschützten VM vor dem Android-Kernel laden, wenn geschützte VMs vorhanden sind. Weitere Informationen finden Sie unter Bootsequenz von Microdroid.
Speicherverwaltung. Die Boot-Firmware muss die UEFI-API zur Speicherzuweisung unterstützen.
Kompatibilität und Abwärtskompatibilität Die Firmware sollte auf Geräten mit unterschiedlichen Anbietern und SoCs funktionieren und abwärtskompatibel mit der entsprechenden Android-Version sein.
Unterstützung für Boot-Firmware
Mit den erforderlichen Änderungen zur Unterstützung der Anforderungen im vorherigen Abschnitt funktionieren die folgenden UEFI-Firmwareimplementierungen mit der GBF:
- EDK2 (Tianocore) EDK2 ist eine beliebte Open-Source-UEFI-Implementierung. Für EDK2-basierte Bootloader ist GBL-Unterstützung erforderlich. UEFI-Unterstützung ist bereits vorhanden.
- U-Boot. Ein flexibles und weit verbreitetes Open-Source-Bootloader-Projekt, das für die Verwendung mit GBL immer kompatibler mit UEFI wird.
- LittleKernel (LK) Ein Open-Source-Bootloader, der von einigen Anbietern verwendet wird.
GBL ausführen
Sie können ein vorkonfiguriertes GBL-Binärprogramm zum Ausführen herunterladen oder ein eigenes erstellen und ausführen.
GBL-Binärdatei abrufen und ausführen
GBL wird als einzelne EFI-App-Binärdatei verteilt. Sie können dieses Binärprogramm unabhängig von der Basisfirmware des Geräts mit dem Standardaktualisierungsmechanismus von Android aktualisieren.
Wenn Sie ab Android 16 ein Gerät mit ARM-64-Chipsatz ausliefern, empfehlen wir Ihnen dringend, die aktuellste von Google signierte Version von GBL bereitzustellen und in Ihre Bootkette einzubinden.
GBL erstellen und ausführen
So erstellen und führen Sie die GBL aus:
Prüfen Sie, ob das Repository-Tool und das Bazel-Bootstrap installiert sind:
sudo apt install repo bazel-bootstrap
Initialisieren Sie Ihr aktuelles Verzeichnis für die Versionskontrolle mit der Manifestdatei
uefi-gbl-mainline
:repo init -u https://android.googlesource.com/kernel/manifest -b uefi-gbl-mainline repo sync -j16
Erstellen Sie die EFI-Anwendung:
./tools/bazel run //bootable/libbootloader:gbl_efi_dist --extra_toolchains=@gbl//toolchain:all
Führen Sie die EFI-Anwendung in Cuttlefish aus:
cvd start --android_efi_loader=path_to_the_EFI_app ...
Anstatt Android direkt zu starten, verwendet dieser
cvd start
-Befehl die EFI-App, um Android zu starten.
Fehler melden und das Bootloader-Team kontaktieren
Wenn Sie einen Fehler für den GBL melden möchten, rufen Sie die Komponente „Android Generic Bootloader“ in Buganizer auf.
Wenn Sie Fragen haben, wenden Sie sich an das GBL-Team. Senden Sie dazu eine E-Mail an android-gbl@google.com
.