Auf dieser Seite wird beschrieben, wie Sie die GBL-Binärdatei bereitstellen.
Anforderungen an die Boot-Firmware
Damit GBL verwendet werden kann, 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 herstellerspezifische Erweiterungen über definierte UEFI-Protokolle ermöglichen.
Sicherheit Die Firmware muss alle Aspekte von Android Verified Boot (AVB) implementieren, damit nur authentifizierte Images geladen werden.
Bootmodi Das Binärprogramm muss verschiedene Startmodi unterstützen, z. B. den normalen Start, den Wiederherstellungsstart und Fastboot.
Dynamische Partitionierung. Die Boot-Firmware muss eine Logik zur Auswahl des Slots implementieren, damit sie das Lesen des richtigen A/B-Boot-Slots unterstützt und mit dynamischen Partitionen und Nutzerdaten in „super“ kompatibel ist.
Betriebssystemkonfiguration Die Firmware muss in der Lage sein, die Kernel-Befehlszeile, den Gerätebaum (Device Tree, DTB) und die Bootkonfiguration mit OEM-Anpassungen zu ändern, die zum Starten des Geräts erforderlich sind.
Geschützte VM wird geladen. Das Binärprogramm sollte die vorab bestätigte geschützte VM-Firmware korrekt laden, bevor der Android-Kernel bei Vorhandensein geschützter VMs geladen wird. Weitere Informationen finden Sie unter Boot-Sequenz für Microdroid.
Speicherverwaltung Die Boot-Firmware muss die UEFI-API für die Speicherzuweisung unterstützen.
Kompatibilität und Abwärtskompatibilität. Die Firmware sollte auf Geräten mit unterschiedlichen Anbietern und SOCs funktionieren und mit der entsprechenden Android-Version abwärtskompatibel sein.
Unterstützung für Boot-Firmware
Mit den erforderlichen Änderungen zur Unterstützung der Anforderungen im vorherigen Abschnitt funktionieren die folgenden UEFI-Firmware-Implementierungen mit dem 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 UEFI-Kompatibilität für die GBL-Nutzung erhält.
- LittleKernel (LK). Ein Open-Source-Bootloader, der von einigen Anbietern verwendet wird.
GBL ausführen
Sie können ein vorgefertigtes GBL-Binärprogramm abrufen, um es auszuführen, oder ein eigenes erstellen und ausführen.
GBL-Binärdatei abrufen und ausführen
GBL wird als einzelne EFI-App-Binärdatei bereitgestellt. Sie können dieses Binärprogramm unabhängig von der Basis-Firmware des Geräts über den standardmäßigen Android-Aktualisierungsmechanismus aktualisieren.
Wenn Sie ein Gerät mit einem ARM-64-Chipsatz ausliefern, das auf Android 16 basiert, empfehlen wir dringend, die neueste von Google signierte Version von GBL bereitzustellen und in Ihre Boot-Chain zu integrieren.
GBL erstellen und ausführen
So erstellen Sie die GBL und führen sie aus:
Prüfen Sie, ob das Repo-Tool und Bazel Bootstrap installiert sind:
sudo apt install repo bazel-bootstrap
Initialisieren Sie Ihr aktuelles Verzeichnis für die Quellcodeverwaltung mit der Manifestdatei
uefi-gbl-mainline
:repo init -u https://android.googlesource.com/kernel/manifest -b uefi-gbl-mainline repo sync -j16
EFI-App erstellen:
./tools/bazel run //bootable/libbootloader:gbl_efi_dist --extra_toolchains=@gbl//toolchain:all
Führen Sie die EFI-App 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 Android Generic Bootloader-Komponente 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
.