Рекомендуемый порядок загрузки устройства описан на этой странице и проиллюстрирован на рисунке 1:

Рисунок 1. Проверенная последовательность загрузки.
Схема работы для устройств A/B
Если устройство использует режим A/B, процесс загрузки немного отличается. Перед обновлением метаданных защиты от отката необходимо сначала пометить загружаемый слот как SUCCESSFUL с помощью Boot Control HAL .
Если обновление платформы завершается неудачей (не помечено SUCCESSFUL ), стек A/B переключается на другой слот, в котором по-прежнему находится предыдущая версия Android. Однако, если были включены метаданные защиты от отката, предыдущая версия не сможет загрузиться из-за защиты от отката.
Сообщать пользователям о подтвержденном состоянии загрузки
После определения состояния загрузки устройства сообщите об этом пользователю. Если устройство работает без сбоев, продолжайте работу, ничего не отображая. Подтвержденные проблемы с загрузкой относятся к следующим категориям:
- ЖЁЛТЫЙ: Предупреждающий экран для заблокированных устройств с заданным пользовательским корневым доверительным интервалом.
- ОРАНЖЕВЫЙ: Предупреждающий экран для РАЗБЛОКИРОВАННЫХ устройств
- КРАСНЫЙ (
eio): Предупреждение о повреждении dm-verity - КРАСНЫЙ (ОС не найдена): Не найдена действительная ОС
Заблокированные устройства с пользовательским корневым источником доверия
Если устройство заблокировано, установлен пользовательский корневой узел доверия, и образ подписан с использованием этого узла доверия, при каждой загрузке отображается ЖЁЛТЫЙ экран. ЖЁЛТЫЙ экран исчезает через десять секунд, и устройство продолжает загрузку. Если пользователь нажимает кнопку питания, текст «Нажмите кнопку питания для паузы» меняется на «Нажмите кнопку питания для продолжения», и экран никогда не исчезает (устройство может затемнить или выключить экран для защиты от выгорания пикселей). При повторном нажатии экран исчезает, и телефон продолжает загрузку.
Для hex-number используйте первые восемь цифр sha256 представления открытого ключа, используемого для проверки, из библиотеки libavb, например, d14a028c .
Предложенный текст:
На вашем устройстве загружается другая операционная система.
Перейдите по этой ссылке на другом устройстве:
g.co/ABH
Отпечаток ОС: hex-number
Нажмите кнопку питания, чтобы поставить на паузу

Рисунок 2. Пример ЖЕЛТОГО экрана.
РАЗБЛОКИРОВАННЫЕ устройства
При каждой загрузке разблокированного устройства на экране появляется оранжевый индикатор. Оранжевый индикатор исчезает через десять секунд, и устройство продолжает загрузку. Если пользователь нажимает кнопку питания, текст «Нажмите кнопку питания для паузы» меняется на «Нажмите кнопку питания для продолжения», и экран никогда не исчезает (при необходимости устройство может приглушить и/или выключить экран для защиты от выгорания пикселей или подобных проблем). При повторном нажатии экран исчезает, и телефон продолжает загрузку.
Для hex-number используйте первые восемь цифр sha256 представления открытого ключа, используемого для проверки, из библиотеки libavb, например, d14a028c .
Предложенный текст:
Загрузчик разблокирован, и целостность программного обеспечения не может быть гарантирована. Любые данные, хранящиеся на устройстве, могут быть доступны злоумышленникам. Не храните на устройстве конфиденциальные данные.
Перейдите по этой ссылке на другом устройстве:
g.co/ABH
ID: hex-number
Нажмите кнопку питания, чтобы поставить на паузу.

Рисунок 3. Пример оранжевого экрана.
коррупция dm-verity
Если обнаружена действительная версия Android и устройство находится в режиме eio dm-verity, отобразится красный экран eio . Пользователю необходимо нажать кнопку питания, чтобы продолжить. Если пользователь не подтвердит предупреждение на экране в течение 30 секунд, устройство выключится (для защиты экрана от выгорания и экономии энергии).
Предложенный текст:
Ваше устройство повреждено. Ему нельзя доверять, и оно может работать некорректно.
Перейдите по этой ссылке на другом устройстве:
g.co/ABH
Нажмите кнопку питания, чтобы продолжить.

Рисунок 4. Пример экрана RED eio.
Действительная операционная система не найдена.
Если не найдена действительная версия Android, отобразится КРАСНЫЙ экран. Устройство не сможет продолжить загрузку. Если пользователь не подтвердит предупреждение на экране в течение 30 секунд, устройство выключится, чтобы предотвратить выгорание экрана и сэкономить энергию.
Для hex-number используйте первые восемь цифр sha256 представления открытого ключа, используемого для проверки, из библиотеки libavb, например, d14a028c .
Предложенный текст:
Не удалось найти подходящую операционную систему. Устройство не загружается.
Перейдите по этой ссылке на другом устройстве:
g.co/ABH
ID: hex-number
Нажмите кнопку питания, чтобы выключить устройство.

Рисунок 5. Пример красного экрана.
Подтверждение разблокировки
В ответ на команду fastboot flashing unlock выполняемую через интерфейс fastboot, отобразится экран подтверждения разблокировки. Изначально фокус находится на «Не разблокировать» . Если пользователь не взаимодействует с предупреждающим экраном в течение 30 секунд, экран исчезает, и команда завершается с ошибкой.
Предложенный текст:
Разблокировав загрузчик, вы сможете установить на этот телефон пользовательскую операционную систему. Пользовательская ОС не проходит такой же уровень тестирования, как оригинальная, и может привести к некорректной работе телефона и установленных приложений.
Целостность программного обеспечения не может быть гарантирована при использовании пользовательской ОС, поэтому любые данные, хранящиеся на телефоне при разблокированном загрузчике, могут быть подвержены риску .
Чтобы предотвратить несанкционированный доступ к вашим личным данным, разблокировка загрузчика также удаляет все личные данные на вашем телефоне.
Нажмите клавиши регулировки громкости, чтобы выбрать, следует ли разблокировать загрузчик, а затем кнопку питания, чтобы продолжить.
Не разблокируйте загрузчик и не перезагружайте телефон.
Разблокируйте загрузчик.

Рисунок 6. Пример экрана подтверждения разблокировки.
Подтверждение блокировки
В ответ на команду fastboot flashing lock выполняемую через интерфейс fastboot, отобразится экран подтверждения блокировки. Изначально фокус находится на «Не блокировать» . Если пользователь не взаимодействует с предупреждающим экраном в течение 30 секунд, экран исчезает, и команда завершается с ошибкой.
Текст:
Если вы заблокируете загрузчик, вы не сможете установить пользовательское программное обеспечение операционной системы на этот телефон.
Чтобы предотвратить несанкционированный доступ к вашим личным данным, блокировка загрузчика также приведет к удалению всех личных данных на вашем телефоне .
Нажмите клавиши регулировки громкости, чтобы выбрать, следует ли заблокировать загрузчик, а затем кнопку питания, чтобы продолжить.
Не блокируйте загрузчик и не перезагружайте телефон.
Заблокировать загрузчик.

Рисунок 7. Предупреждающий экран устройства подтверждения блокировки.
Передайте в Android подтвержденное состояние загрузки
Загрузчик передает информацию о состоянии «Проверено» (Verified Boot) в Android через параметры команд ядра или через bootconfig в Android 12 и выше. Загрузчик устанавливает параметр androidboot.verifiedbootstate в одно из следующих значений:
-
greenозначает, что устройствоLOCKEDи не используется устанавливаемый пользователем корневой узел доверия. -
yellowозначает, что устройствоLOCKEDи используется устанавливаемый пользователем корневой узел доверия. -
orangeобозначено устройство,UNLOCKED
Параметр androidboot.veritymode устанавливается в значение eio или restart в зависимости от состояния загрузчика относительно обработки ошибок dm-verity. Для получения более подробной информации см. раздел «Обработка ошибок проверки» .