Generic Bootloader (GBL) – это стандартизированный обновляемый загрузчик операционной системы, который упрощает процесс загрузки Android. GBL заменяет фрагментированную среду загрузчиков, характерную для разных поставщиков, единым компонентом, который постоянно поддерживается. Это изменение позволяет уменьшить избыточность, повысить безопасность и упростить обновление экосистемы Android.
GBL состоит из следующих компонентов:
- основная логика загрузки Android
- Логика, включающая основной цикл программы, обнаружение режима загрузки и загрузку ядра.
- Fastboot
- Протокол связи и инструмент диагностики, используемый для прошивки и отладки устройств.
- Расширения поставщиков
- Расширение вышеупомянутых компонентов GBL путем создания собственных протоколов. Эти протоколы согласовываются заранее, до того как GBL добавляет их в список зависимостей. Расширения поставщиков необязательны.
- Обработчики протоколов UEFI
- Реализации обязательных и рекомендуемых протоколов UEFI, включая блочный ввод-вывод, распределение памяти и генерацию случайных чисел. Эталонные реализации можно найти в проектах встроенного ПО (EDK2, UBoot, LK).
- Определения протоколов UEFI для Android
- Специальные протоколы UEFI для AVB, Fastboot, выбора слота, конфигурации ОС и т. д. Реализации можно найти в проектах встроенного ПО поставщиков микрочипов Android.
Начиная с Android 16, если вы поставляете устройство на базе чипсета ARM-64, мы настоятельно рекомендуем развернуть последнюю сертифицированную Google версию GBL и интегрировать ее в цепочку загрузки.
Что дальше?
Чтобы узнать, как развернуть Generic Bootloader, ознакомьтесь со статьей Deploy gbl (Развертывание gbl).