À partir du 27 mars 2025, nous vous recommandons d'utiliser android-latest-release au lieu de aosp-main pour créer et contribuer à AOSP. Pour en savoir plus, consultez la section Modifications apportées à AOSP.
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Cette page explique comment déployer le binaire GBL.
Exigences concernant le micrologiciel de démarrage
Pour utiliser GBL, le micrologiciel de démarrage doit répondre aux exigences suivantes :
Conformité UEFI Le micrologiciel doit implémenter et utiliser les protocoles UEFI requis. Le micrologiciel doit également permettre les extensions spécifiques au fournisseur à l'aide de protocoles UEFI définis.
Sécurité Le micrologiciel doit implémenter tous les aspects du démarrage validé Android (AVB), en veillant à ce que seules les images authentifiées soient chargées.
Modes de démarrage. Le binaire doit pouvoir gérer différents modes de démarrage, tels que le démarrage normal, le démarrage en mode récupération et le démarrage rapide.
Partitionnement dynamique. Le micrologiciel de démarrage doit implémenter une logique de sélection de l'emplacement afin qu'il prenne en charge la lecture du bon emplacement de démarrage A/B et qu'il soit compatible avec les partitions dynamiques et les données utilisateur dans super.
Configuration de l'OS. Le micrologiciel doit être capable de modifier la ligne de commande du noyau, l'arborescence de périphériques (DTB) et le fichier de configuration de démarrage avec les personnalisations OEM nécessaires pour démarrer l'appareil.
Chargement de la VM protégée. Le binaire doit charger correctement le micrologiciel de la VM protégée prévalidée avant le noyau Android en présence de VM protégées. Pour en savoir plus, consultez la séquence de démarrage de Microdroid.
Gestion de la mémoire. Le micrologiciel de démarrage doit être compatible avec l'API d'allocation de mémoire UEFI.
Compatibilité et rétrocompatibilité Le micrologiciel doit fonctionner sur les appareils avec différents fournisseurs et SoC, et maintenir la rétrocompatibilité avec la version Android correspondante.
Compatibilité avec le micrologiciel de démarrage
Avec les modifications nécessaires pour répondre aux exigences de la section précédente, les implémentations de micrologiciels UEFI suivantes fonctionnent avec le GBF :
EDK2 (Tianocore) EDK2 est une implémentation UEFI Open Source populaire. La prise en charge de GBL est nécessaire pour les bootloaders basés sur EDK2, et la prise en charge d'UEFI est déjà présente.
U-Boot Projet de bootloader open source flexible et largement utilisé qui gagne en compatibilité UEFI pour l'utilisation de GBL.
LittleKernel (LK) Un bootloader Open Source utilisé par certains fournisseurs.
Exécuter GBL
Vous pouvez obtenir un binaire GBL prédéfini à exécuter ou créer le vôtre et l'exécuter.
Obtenir et exécuter le binaire GBL
GBL est distribué sous la forme d'un binaire d'application EFI unique. Vous pouvez mettre à jour ce binaire indépendamment du micrologiciel de base de l'appareil à l'aide du mécanisme de mise à jour standard d'Android.
À partir d'Android 16, si vous expédiez un appareil basé sur un chipset ARM-64, nous vous recommandons vivement de déployer la dernière version signée par Google de GBL et de l'intégrer à votre chaîne de démarrage.
Compiler et exécuter le GBL
Pour créer et exécuter le GBL :
Vérifiez que l'outil de dépôt et le bootstrap Bazel sont installés :
sudo apt install repo bazel-bootstrap
Initialisez votre répertoire actuel pour le contrôle des sources à l'aide du fichier manifeste uefi-gbl-mainline :
Pour toute question, contactez l'équipe GBL en envoyant un e-mail à android-gbl@google.com.
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/27 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 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`."]]