A partire dal 27 marzo 2025, ti consigliamo di utilizzare android-latest-release anziché aosp-main per compilare e contribuire ad AOSP. Per ulteriori informazioni, vedi Modifiche ad AOSP.
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Questa pagina spiega come eseguire il deployment del file binario GBL.
Requisiti del firmware di avvio
Per utilizzare GBL, il firmware di avvio deve soddisfare i seguenti requisiti:
Conformità a UEFI. Il firmware deve implementare e utilizzare i protocolli UEFI richiesti. Il firmware deve inoltre consentire estensioni specifiche del fornitore utilizzando protocolli UEFI definiti.
Sicurezza Il firmware deve implementare tutti gli aspetti dell'avvio verificato di Android (AVB), garantendo il caricamento solo di immagini autenticate.
Modalità di avvio. Il file binario deve essere in grado di gestire varie modalità di avvio, ad esempio avvio normale, avvio di ripristino e avvio rapido.
Partizionamento dinamico. Il firmware di avvio deve implementare la logica di selezione dello slot in modo da supportare la lettura dello slot di avvio A/B corretto ed essere compatibile con le partizioni dinamiche e userdata in super.
Configurazione del sistema operativo. Il firmware deve essere in grado di modificare la riga di comando del kernel, la struttura ad albero del dispositivo (DTB) e il file bootconfig con le personalizzazioni OEM necessarie per avviare il dispositivo.
Caricamento della VM protetta. Il file binario dovrebbe caricare correttamente il firmware preverificato della VM protetta prima del kernel di Android in presenza di VM protette. Per maggiori informazioni, consulta la sequenza di avvio di Microdroid.
Gestione della memoria. Il firmware di avvio deve supportare l'API di allocazione della memoria UEFI.
Compatibilità e compatibilità con le versioni precedenti. Il firmware deve funzionare su dispositivi con fornitori e SoC diversi e mantenere la compatibilità con le versioni precedenti della corrispondente versione di Android.
Supporto del firmware di avvio
Con le modifiche necessarie per supportare i requisiti della sezione precedente, le seguenti implementazioni del firmware UEFI funzionano con il GBF:
EDK2 (Tianocore). EDK2 è una popolare implementazione UEFI open source. Il supporto GBL è necessario per i bootloader basati su EDK2 e il supporto UEFI è già presente.
U-Boot. Un progetto di bootloader open source flessibile e ampiamente utilizzato che sta acquisendo la compatibilità UEFI per l'utilizzo di GBL.
LittleKernel (LK). Un bootloader open source utilizzato da alcuni fornitori.
Esegui GBL
Puoi ottenere un file binario GBL precompilato da eseguire o crearne uno tuo e eseguirlo.
Ottieni ed esegui il programma binario GBL
GBL viene distribuito come un singolo programma binario dell'app EFI. Puoi aggiornare questo
file binario indipendentemente dal firmware di base del dispositivo utilizzando il meccanismo di
aggiornamento standard di Android.
A partire da Android 16, se spedisci un dispositivo basato su chipset ARM-64, ti consigliamo vivamente di eseguire il deployment della versione più recente firmata da Google di GBL e di integrarla nella catena di avvio.
Crea ed esegui il GBL
Per creare ed eseguire il GBL:
Verifica di avere installato lo strumento repo e il bootstrap di Bazel:
sudo apt install repo bazel-bootstrap
Inizializza la directory corrente per il controllo del codice sorgente utilizzando il file manifest uefi-gbl-mainline:
Per eventuali domande, contatta il team GBL inviando un'email all'indirizzo android-gbl@google.com.
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2025-07-27 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-07-27 UTC."],[],[],null,["# Deploy GBL\n\nThis page explains how to deploy the GBL binary.\n\nBoot firmware requirements\n--------------------------\n\nTo use GBL, the boot firmware must meet the following requirements:\n\n- UEFI compliance. The firmware must implement and use the\n required UEFI protocols. The firmware must also allow for vendor-specific\n extensions using defined UEFI protocols.\n\n- Security. The firmware must implement all aspects of Android\n Verified Boot (AVB), ensuring only authenticated images are loaded.\n\n- Boot modes. The binary should be able to handle various boot modes, such as normal boot, recovery boot, and fastboot.\n\n- Dynamic partitioning. The boot firmware must implement slot selection logic so\n that it supports reading the correct A/B boot slot and is compatible with\n dynamic partitions and userdata in super.\n\n- OS configuration. The firmware must be capable of modifying the kernel\n command line, device tree (DTB), and bootconfig with OEM customizations\n needed to boot the device.\n\n- Protected VM loading. The binary should correctly load preverified protected\n VM firmware before the Android kernel in the presence of protected VMs. For\n further information, see Microdroid [boot sequence](/docs/core/virtualization/microdroid#boot-sequence).\n\n- Memory management. The boot firmware must support the UEFI memory allocation\n API.\n\n- Compatibility and backward compatibility. The firmware should work on devices\n with different vendor, SOCs, and maintain backward compatibility with the\n corresponding Android version.\n\n### Boot firmware support\n\nWith the modifications necessary to support requirements in the previous\nsection, the following UEFI firmware implementations work with the GBF:\n\n- [EDK2 (Tianocore)](https://github.com/tianocore/edk). A EDK2 is a popular open-source UEFI implementation. GBL support is needed for EDK2-based bootloaders, and UEFI support is already present.\n- [U-Boot](https://docs.u-boot.org/en/latest/). A flexible and widely used open-source bootloader project that is gaining UEFI compatibility for GBL usage.\n- [LittleKernel (LK)](https://github.com/littlekernel/lk). An open-source bootloader used by some vendors.\n\nRun GBL\n-------\n\nYou can obtain a prebuilt GBL binary to run or build your own and run it.\n\n### Obtain and run the GBL binary\n\nGBL is distributed as a single EFI app binary. You can update this\nbinary independently from the device's base firmware using Android's standard\nupdate mechanism.\n\nBeginning with Android 16, if you ship a device based\non ARM-64 chipset, we strongly recommend that you deploy the [latest\nGoogle-signed version](https://dl.google.com/android-gbl/android16/20250703/signed-gbl-img-13709664.zip) of GBL and integrate it into your boot chain.\n\n### Build and run the GBL\n\nTo build and run the GBL:\n\n1. Verify that you have the repo tool and Bazel bootstrap installed:\n\n sudo apt install repo bazel-bootstrap\n\n2. Initialize your current directory for source control using the `uefi-gbl-mainline` manifest file:\n\n repo init -u https://android.googlesource.com/kernel/manifest -b uefi-gbl-mainline\n repo sync -j16\n\n3. Build the EFI app:\n\n ./tools/bazel run //bootable/libbootloader:gbl_efi_dist --extra_toolchains=@gbl//toolchain:all\n\n4. Run the EFI app within Cuttlefish:\n\n cvd start --android_efi_loader=\u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-n\"\u003epath_to_the_EFI_app\u003c/span\u003e\u003c/var\u003e ...\n\n Instead of booting Android directly, this `cvd start` command uses the EFI\n app to boot Android.\n\n| **Note:** For x86 platform, use the EFI image built for x86_64.\n\nFile bugs and contact the bootloader team\n-----------------------------------------\n\nTo report a bug for the GBL, navigate to the\n[Android Generic Bootloader component in Buganizer](https://issuetracker.google.com/issues/new?component=1602063&template=2011730).\n\nFor questions, contact the GBL team, send an email to `android-gbl@google.com`."]]