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