A partir de 27 de março de 2025, recomendamos usar android-latest-release em vez de aosp-main para criar e contribuir com o AOSP. Para mais informações, consulte Mudanças no AOSP.
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Esta página explica como implantar o binário da GBL.
Requisitos do firmware de inicialização
Para usar a GBL, o firmware de inicialização precisa atender aos seguintes requisitos:
Conformidade com a UEFI. O firmware precisa implementar e usar os
protocolos UEFI necessários. O firmware também precisa permitir extensões específicas do fornecedor
usando protocolos UEFI definidos.
Segurança. O firmware precisa implementar todos os aspectos da inicialização
verificada do Android (AVB), garantindo que apenas imagens autenticadas sejam carregadas.
Modos de inicialização. O binário precisa ser capaz de processar vários modos de inicialização, como inicialização normal, de recuperação e fastboot.
Particionamento dinâmico. O firmware de inicialização precisa implementar a lógica de seleção de slot para
oferecer suporte à leitura do slot de inicialização A/B correto e ser compatível com
partições dinâmicas e userdata no super.
Configuração do SO. O firmware precisa ser capaz de modificar a linha de comando
do kernel, a árvore de dispositivos (DTB, na sigla em inglês) e o bootconfig com as personalizações de OEM
necessárias para inicializar o dispositivo.
Carregando a VM protegida. O binário precisa carregar corretamente o firmware de VM
protegido pré-verificado antes do kernel do Android na presença de VMs protegidas. Para
mais informações, consulte a sequência de inicialização do Microdroid.
Gerenciamento de memória. O firmware de inicialização precisa oferecer suporte à API de alocação de memória
UEFI.
Compatibilidade e compatibilidade com versões anteriores. O firmware precisa funcionar em dispositivos
com diferentes fornecedores, SOCs e manter a compatibilidade com a
versão do Android correspondente.
Suporte a firmware de inicialização
Com as modificações necessárias para oferecer suporte aos requisitos na seção
anterior, as seguintes implementações de firmware UEFI funcionam com o GBF:
EDK2 (Tianocore). Um EDK2 é uma implementação
de UEFI de código aberto conhecida. O suporte à GBL é necessário para carregador de inicialização
baseado em EDK2, e o suporte à UEFI já está presente.
U-Boot. Um projeto de inicializador de inicialização de código aberto flexível e amplamente usado que está ganhando compatibilidade com a UEFI para uso do GBL.
LittleKernel (LK). Um carregador de inicialização
de código aberto usado por alguns fornecedores.
Executar GBL
Você pode usar um binário GBL pré-criado ou criar o seu próprio e executá-lo.
Receber e executar o binário do GBL
O GBL é distribuído como um único binário de app EFI. É possível atualizar esse
binário independentemente do firmware básico do dispositivo usando o mecanismo de atualização
padrão do Android.
A partir do Android 16, se você enviar um dispositivo baseado
em chipset ARM-64, recomendamos implantar a versão
assinada pelo Google mais recente da GBL e integrá-la à cadeia de inicialização.
Criar e executar o GBL
Para criar e executar o GBL:
Verifique se você tem a ferramenta de repositório e o bootstrap do Bazel instalados:
sudo apt install repo bazel-bootstrap
Inicialize seu diretório atual para controle de origem usando o arquivo de manifesto uefi-gbl-mainline:
Em caso de dúvidas, entre em contato com a equipe do GBL enviando um e-mail para android-gbl@google.com.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-27 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 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`."]]