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