На этой странице объясняется, как развернуть двоичный файл GBL.
Требования к загрузочной прошивке
Для использования GBL загрузочная прошивка должна соответствовать следующим требованиям:
- Соответствие UEFI. Прошивка должна реализовывать и использовать необходимые протоколы UEFI. Прошивка также должна поддерживать расширения, специфичные для конкретного производителя, с использованием определённых протоколов UEFI. 
- Безопасность. Прошивка должна реализовывать все аспекты Android Verified Boot (AVB), обеспечивая загрузку только аутентифицированных образов. 
- Режимы загрузки. Двоичный файл должен поддерживать различные режимы загрузки, такие как обычная загрузка, загрузка в режиме восстановления и быстрая загрузка. 
- Динамическое разбиение на разделы. Загрузочная прошивка должна реализовывать логику выбора слота, чтобы поддерживать чтение правильного загрузочного слота A/B и быть совместимой с динамическими разделами и пользовательскими данными в Super. 
- Конфигурация ОС. Прошивка должна поддерживать возможность изменения командной строки ядра, дерева устройств (DTB) и конфигурации загрузки с помощью OEM-настроек, необходимых для загрузки устройства. 
- Загрузка защищённой виртуальной машины. Двоичный файл должен корректно загружать предварительно проверенную прошивку защищённой виртуальной машины перед ядром Android при наличии защищённых виртуальных машин. Подробнее см. в разделе « Последовательность загрузки Microdroid». 
- Управление памятью. Загрузочная прошивка должна поддерживать API распределения памяти UEFI. 
- Совместимость и обратная совместимость. Прошивка должна работать на устройствах с разными производителями и чипсетами, а также сохранять обратную совместимость с соответствующей версией Android. 
Поддержка загрузочной прошивки
С учетом изменений, необходимых для поддержки требований, изложенных в предыдущем разделе, следующие реализации прошивки UEFI работают с GBF:
- EDK2 (Tianocore) . EDK2 — популярная реализация UEFI с открытым исходным кодом. Для загрузчиков на базе EDK2 требуется поддержка GBL, а поддержка UEFI уже присутствует.
- U-Boot . Гибкий и широко используемый проект загрузчика с открытым исходным кодом, который становится совместимым с UEFI для использования GBL.
- LittleKernel (LK) . Загрузчик с открытым исходным кодом, используемый некоторыми производителями.
Запустить ГБЛ
Вы можете получить готовый двоичный файл GBL для запуска или собрать свой собственный и запустить его.
Получите и запустите двоичный файл GBL
GBL распространяется как единый двоичный файл приложения EFI. Вы можете обновить этот двоичный файл независимо от базовой прошивки устройства, используя стандартный механизм обновления Android.
Начиная с Android 16, если вы поставляете устройство на базе чипсета ARM-64, мы настоятельно рекомендуем вам развернуть последнюю версию GBL, подписанную Google, и интегрировать ее в вашу цепочку загрузки.
Создание и запуск ГБЛ
Чтобы построить и запустить ГБЛ:
- Убедитесь, что у вас установлены инструмент репозитория и загрузчик Bazel: - sudo apt install repo bazel-bootstrap
- Инициализируйте текущий каталог для управления исходным кодом с помощью файла манифеста - uefi-gbl-mainline:- repo init -u https://android.googlesource.com/kernel/manifest -b uefi-gbl-mainline repo sync -j16
- Создайте приложение EFI: - ./tools/bazel run //bootable/libbootloader:gbl_efi_dist --extra_toolchains=@gbl//toolchain:all
- Запустите приложение EFI в Cuttlefish: - cvd start --android_efi_loader=path_to_the_EFI_app ...- Вместо непосредственной загрузки Android эта команда - cvd startиспользует приложение EFI для загрузки Android.
Сообщайте об ошибках и обращайтесь к команде разработчиков загрузчика
Чтобы сообщить об ошибке в GBL, перейдите к компоненту Android Generic Bootloader в Buganizer .
 Если у вас есть вопросы, свяжитесь с командой GBL, отправив электронное письмо на android-gbl@google.com .
