Процесс загрузки

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

Проверенный процесс загрузки
Рисунок 1 . Проверенный процесс загрузки

Поток для устройств A/B

Если устройство использует A/B, процесс загрузки немного отличается. Слот для загрузки должен быть сначала помечен как SUCCESSFUL с помощью HAL управления загрузкой, прежде чем обновлять метаданные защиты от отката.

Если происходит сбой обновления платформы (не помечен как SUCCESSFUL ), стек A/B возвращается к другому слоту, в котором все еще находится предыдущая версия Android. Однако, если были установлены метаданные защиты от отката, предыдущая версия не может загрузиться из-за защиты от отката.

Сообщение проверенного состояния загрузки пользователям

После определения состояния загрузки устройства необходимо сообщить об этом состоянии пользователю. Если с устройством проблем нет, продолжайте, ничего не отображая. Подтвержденные проблемы с загрузкой относятся к следующим категориям:

  • ЖЕЛТЫЙ: экран предупреждения для ЗАБЛОКИРОВАННЫХ устройств с настраиваемым корнем доверия.
  • ОРАНЖЕВЫЙ: экран предупреждения для НЕБЛОКИРОВАННЫХ устройств.
  • КРАСНЫЙ (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

Нажмите кнопку питания, чтобы сделать паузу.

дм-правда коррупция

Пример КРАСНОГО экрана eio:

Красный экран предупреждения об устройстве eio

Показывать КРАСНЫЙ экран 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

Пример экрана:

Экран предупреждения устройства подтверждения БЛОКИРОВКИ

Загрузчик сообщает Android о подтвержденном состоянии загрузки через параметры команды ядра или через bootconfig, начиная с Android 12. Он устанавливает для параметра androidboot.verifiedstate одно из следующих значений:

  • green : если устройство LOCKED и настраиваемый пользователем корень доверия не используется
  • yellow : если устройство LOCKED и используется устанавливаемый пользователем корень доверия
  • orange : если устройство UNLOCKED

Для параметра androidboot.veritymode установлено значение eio или restart в зависимости от того, в каком состоянии находится загрузчик в отношении обработки ошибок dm-verity. Дополнительные сведения см. в разделе Обработка ошибок проверки .