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

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

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

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

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

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

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

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