Boots 2 для android

Содержание
  1. Прошивка Андроид с помощью утилиты FastBoot
  2. Скачивание и установка FastBoot
  3. почему ADB RUN лучше
  4. Запуск
  5. Если скачали Отдельно Fastboot
  6. Если скачали ADB RUN
  7. Инструкция по командам как прошить Android c помощью FastBoot
  8. Команды перезагрузки в режим прошивки (bootloader)
  9. Команда «видит» ли ПК ваш Android
  10. Команды разблокировки и блокировки загрузчика Nexus
  11. Команда узнать версию bootloader
  12. Команды форматирования раздела
  13. Команды для прошивки раздела
  14. Команда для установки update.zip
  15. Для устройств Sony
  16. Разблокировка bootloader
  17. Ошибка Waiting for Device
  18. Для тех кто ничего не понял!
  19. ReiBoot for Android Pro 2.1.4.6
  20. Boots 2 для android
  21. ReiBoot for Android Pro 2.1.4.6 + ключик
  22. Аналоги программы
  23. Русские Блоги
  24. Android Verified Boot 2.0 Реализация Android P AVB Подробное объяснение
  25. Что такое АВБ
  26. ВБМета структура
  27. Защита от отката
  28. Поддержка разделов A / B
  29. VBMeta резюме
  30. Инструменты и библиотеки
  31. avbtool и libavb
  32. Файлы и каталоги
  33. портативность
  34. Контроль версий и совместимость
  35. Использование avbtool
  36. Компилировать интеграцию
  37. Интеграция устройства
  38. Системная зависимость
  39. Заблокированный и разблокированный режим
  40. Хранение несанкционированного доступа
  41. Именованные постоянные значения
  42. Постоянные дайджесты
  43. Обновление сохраненных индексов отката
  44. Рекомендуемый процесс наведения
  45. Обработка ошибок dm-verity
  46. Специфичная для Android интеграция
  47. Особенности оборудования

Прошивка Андроид с помощью утилиты FastBoot

вкл. 06 Июнь 2016 . Опубликовано в Android — Общее

Прошивка Андроид с помощью утилиты FastBoot. Необходимо прошить Android c помощью FastBoot, но не знаете как? В данной статье дается детальная инструкция по использованию утилиты FastBoot и как ей пользоваться чтобы прошить Android девайс.

Данная инструкция полностью расскажет как пользоваться FastBoot! Если же вы не знаете как устанавливать архивные обновления то вам необходима статья — Clockwordmod — что это такое. Инструкция по CWM recovery с картинками

Скачивание и установка FastBoot

Прежде прошить Android c помощью FastBoot, необходимо его скачать и установить на необходимый компьютер.

1. Скачать утилиту FastBoot можно с официальной программой Android SDK (большой вес)

2. Скачать отдельно FastBoot без установки и скачивания лишних файлов

3. Либо воспользоваться программой Adb Run, в которой «все включено», а также умеет разблокировать графический ключ Android.

почему ADB RUN лучше

Запуск

Если скачали Отдельно Fastboot

После того как Вы скачали и установили FastBoot, откройте на ПК программу « Командная строка »

и вве дите команды для перехода в папку с утилитой Fastboot (если установили отдельно FastBoot )

Если скачали ADB RUN

Если ваш выбор пал на программу ADB RUN, то запустите ее и выберите в меню Manual -> ADB

Инструкция по командам как прошить Android c помощью FastBoot

Очень важно писать команды и файлы прошивок так как они указаны!

Если у вас команда указана

то нужно писать именно так, но ни как иначе. Другими словами важен регистр букв иначе вы получите ошибку cannot load ‘image’ — нет такого файла.

Команды перезагрузки в режим прошивки (bootloader)

Перезагрузка Android в режим загрузки (bootloader), данная команда работает если устройство включено в обычном режиме

Перезагрузка Android в обычный режим из режима прошивки (bootloader)

Перезагрузка Android из режима прошивки в этот же режим

Команда «видит» ли ПК ваш Android

Возьмите в привычку проверять перед тем как что-то делать в Fastboot если соединение между компьютером и Android:

Проверка «видит ли» ПК ваш Android

Данную команду выполнять когда устройство уже в режиме прошивке (bootloader)

Команды разблокировки и блокировки загрузчика Nexus

Разлочить bootloader для Nexus

Залочить bootloader для Nexus

Команда узнать версию bootloader

Покажет установленую на Android номер версии бутлоадер

Команды форматирования раздела

fastboot erase Imya_razdela — стереть раздел: boot, radio, recovery, system, userdata и другие

Стирает раздел Кеш (Cache)

Стирает раздел Дата (Data)

Стирает раздел Систем (System)

Стирает раздел Recovery

Команды для прошивки раздела

После того как выполнили форматирование раздела или разделов, можете приступить к прошивке

fastboot flash Imya_razdela imya_file.img — прошивка выбранного раздела: boot, radio, recovery, system, userdata и другие

Прошить раздел системы (System)

Прошить раздел кеш (Cache)

Прошить раздел дата (Data)

Прошить раздел Recovery

Установка анимации включения (прошивка раздела с анимацией)

Прошить все разделы (boot, recovery и system)

Вместо imya.img — необходимо прописывать имя файла которые вы собираетесь прошить

Команда для установки update.zip

Прошивает на Android архив-обновление в формате update.zip или архив ZIP с IMG образами различных разделов

Для устройств Sony

Проверка подключения устройства Sony, если ответ 0.3 устройство, то тогда подключено

Разблокировка bootloader

Более детальная информация по разблокировке Bootloader Sony — Как разблокировать Bootloader Sony

Ошибка Waiting for Device

Если у вас долгое время в командном окне горит надпись waiting for device — значит:

  • Не установлен или некорректно установлен драйвер — переустановить или установить
  • Устройство Android не в режиме Bootloader — перевести
  • Некорректное подключение к USB порту — использовать задние порты USB 2.0 компьютера, не использовать USB хабы

Более подробно о данной ошибке «Waiting for Device» читайте в специальной посвященной этому статье Waiting for Device.

Видео пример работы с утилитой Fastboot

Для тех кто ничего не понял!

Для тех кто ничего не понял воспользуйтесь приложением ADB RUN, в данной программе введены практически все команды, которые нужны для FASTBOOT!

Ниже представлен пример работы ADB RUN — как прошить быстро файл Recovery с помощью ADB RUN за менее чем за 5 секунд (только не забывайте вначале переводить в режим bootloader)! Кликните по изображению для просмотра.

Источник

ReiBoot for Android Pro 2.1.4.6

Если очень коротко, то программа ReiBoot for Android Pro поможет счастливым обладателям устройств на базе ОС Android вернуть свой аппарат к жизни, если конечно он сломался. Может вернуть смартфон к первоначальным настройкам, позволит избавиться от проблемы зависаний, бывает что после экрана загрузки ничего не происходит, все это и не только исправит данная разработка, если верить ее создателям.

Вы сможете
— войти и выйти из режима быстрой загрузки Android одним щелчком мыши
— войти и выйти из режима восстановления Android
— исправляет более 50 проблем с системой Android, таких как зависание логотипа Samsung, сбой приложения, черный экран и так далее
— Ремонт системы Android, чтобы эффективно исправить медленные, зависшие, «кирпичные» проблемы.
— Поддержка более 600 Android телефонов и планшетов, включая новые Samsung Galaxy и не только

Надеюсь вам не придется скачать бесплатно у нас на сайте программу ReiBoot for Android с ключом, желаю всем, чтобы ваши смартфоны работали долго и без проблем !

Разработчик: Tenorshare
Лицензия: ShareWare — у нас вы можете скачать бесплатно
Язык: English + Русская версия
Размер: 46 MB
ОС: Windows
Версия: 2.1.4.6
Скачать: ReiBoot for Android Pro последняя версия на ПК с ключом/кряком

[/not-group]

—>

Источник

Boots 2 для android

Highscreen Boost 2 — Прошивки
Highscreen Boost 2, Innos D10, Createl D10
Описание | Обсуждение » | Прошивки

Что такое Clockworkmod recovery (CWM)?
ClockworkMod recovery (CWM) — модифицированный неофициальный recovery, который выпускается для большинства устройств, работающих под управлением Android. Обладает гораздо более широкими возможностями, чем родной recovery. На некоторых устройствах устанавливается вместо родного recovery, на других устройствах устанавливается параллельно.
Позволяет:
Устанавливать неофициальные прошивки
Устанавливать дополнения и исправления
Подключаться к ПК по USB в режиме съёмного накопителя
Подключиться к ПК по USB в режиме ADB
Создавать резервную копию как всей прошивки, так и отдельных её частей (система, настройки, установленные программы)
Восстанавливать данные из ранее созданной резервной копии
Сбрасывать данные к заводским настройкам (Wipe – data/factory reset), очищать кеш раздел (wipe cache), очищать далвик-кеш (wipe Dalvik-cache), очищать статистику работы аккумулятора (wipe battery stats)
Форматировать и создавать разделы на карте памяти

Если вы не можете включить телефон и загрузить android, вы всегда можете восстановить через CWM ранее созданную резервную копию со всеми приложениями и настройками.

Источник

ReiBoot for Android Pro 2.1.4.6 + ключик

ReiBoot for Android – представляет собой очень высокотехнологичный и продвинутый продукт, который позволит вам самостоятельно восстановить неисправные смартфоны, и улучшить работоспособность зависающих устройств. Сам софт адаптирован исключительно для мобильной операционной системы – Андроид.

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

Пароль ко всем архивам: 1progs

Вы сможете мгновенно скинуть свой аппарат до заводских настроек, а так же воспользоваться инструментами оптимизации системы. Всего вам будет доступно четыре специализированных режима работы, с персональным подходом к решению технических проблем.

  • Возможность исправления более 50 наиболее распространенных ошибок;
  • Восстановления устройства при отсутствии возможности его включения;
  • Поддержка более 500 самых разных моделей смартфонов и планшетов;
  • Высокая скорость работы софта;

Скачать утилиту можно прямо на странице, просто кликнув по закрепленной ссылке.

Битая ссылка или обновилась версия программы? Напишите об этом в комментариях, обязательно обновим!

Если не подходит пароль к архиву или после извлечения не все файлы в архиве — смотрите раздел Помощь

Аналоги программы

Похожие программы смотрите в наших подборках программ

Источник

Русские Блоги

Android Verified Boot 2.0 Реализация Android P AVB Подробное объяснение

Что такое АВБ

Проверка запуска представляет собой целый набор процессов для обеспечения целостности пользовательского оборудования, на котором запущено программное обеспечение. Обычно он начинается с доступной только для чтения части микропрограммы устройства и использует шифрование для проверки надежности кода и отсутствия известных недостатков безопасности. AVB — это реализация проверки запуска.

ВБМета структура

Основная структура данных, используемая в AVB: VBMeta Структура. Эта структура данных содержит много дескрипторов (и других метаданных), и все эти данные криптографически подписаны. Дескрипторы используются для значений хеша изображения, метаданных дерева хеша изображения и так называемых разделов ссылок. Вот простой пример:

среди них vbmeta Раздел хранит значение хеша загрузочного раздела в дескрипторе хеша. для system с участием vender Разделение, хеш-дерево следует непосредственно за данными соответствующей файловой системы раздела, а раздел vbmeta сохраняет только корневой хеш, соль и смещение хеш-дерева в дескрипторе хеш-дерева. , так как vbmeta В разделе VBMeta Структура криптографически подписана, поэтому загрузчик может проверить подпись и проверить, подписана ли она key0 Создано владельцем (например, через встроенный открытый ключ key0) для доверия хранилищу в разделе boot , system , vendor Хэш-значение раздела.

Читайте также:  Премиум впн для андроид

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

В этой настройке xyz Раздел содержит хеш-дерево для проверки целостности. После хеш-дерева VBMeta Структура, которая содержит дескриптор хеш-дерева (корневой хэш, соль и смещение) с метаданными хеш-дерева. key1 подпись. Наконец, в конце раздела есть VBMeta Нижний колонтитул структуры смещен.

Этот параметр позволяет загрузчику использовать дескриптор раздела ссылок, чтобы найти нижний колонтитул в конце раздела (используя имя в дескрипторе раздела ссылок), что помогает найти VBMeta Структурируйте и убедитесь, что это key1 Подпись (используя хранимый в дескрипторе раздела ссылки key1_pub ). Важно то, что нижний колонтитул со смещением может быть обновлен xyz Раздел без каких-либо изменений в разделе vbmeta (Примечание переводчика: используйте key1 Проверка открытого ключа обновлена xyz Подпись раздела достаточна).

VBMeta Структура очень гибкая, дескриптор хеш-кода и дескриптор хеш-дерева любого раздела могут быть сохранены в vbmeta Разделы или другие разделы, используемые для проверки целостности (с помощью дескрипторов разделов ссылок) и других произвольных разделов. Это главным образом для рассмотрения широкого спектра организационных доверительных отношений.

Укажите раздел ссылки на VBMeta Раздел в начале структуры (как vbmeta Тот же раздел), раздел не может использовать нижний колонтитул. Дескрипторы хеш-дерева и хеш-дерева разделов, принадлежащих всей организации, хранятся в выделенном разделе (например, vbmeta_google Варианты использования в) очень полезны. В этом примере системный дескриптор дерева хешей находится по адресу vbmeta_google Раздел, который означает, что загрузчик не нуждается в доступе system Раздел, который полезен для system Разделы очень полезны в качестве примеров управления логическими разделами (например,LVMИли похожая технология).

Защита от отката

AVB также включает в себя защиту от отката для предотвращения известных уязвимостей. каждый VBMeta Структура имеет индекс отката (rollback index),Следующим образом:

Эти цифры используют rollback_index[n] Сказал, что это число будет увеличиваться после того, как любое изображение найдет и исправит уязвимости безопасности. Кроме того, в устройстве будет храниться последний индекс отката, обнаруженный в защищенном от несанкционированного доступа хранилище:

Они называются stored_rollback_index[n] 。

На устройствах, использующих защиту от отката, только когда все n удовлетворены rollback_index[n] >= stored_rollback_index[n] Изображение может быть загружено только при этом условии, и устройство будет увеличиваться со временем stored_rollback_index[n] , Как это сделать, будет описано в разделе «Обновление сохраненного индекса отката».

Поддержка разделов A / B

AVB предназначен для включения одновременно с разделом A / B. Он требует, чтобы суффикс A / B не использовался ни в одном имени раздела, хранящемся в дескрипторе. Это пример с двумя слотами:

Обратите внимание, что индекс отката разных разделов различен — для слота A индекс отката [42,101] Для слота B они [43,103] 。

В версии 1.1 или выше, avbtool add_hash_footer с участием add_hashtree_footer Операция добавляет необязательные параметры —do_not_use_ab , Таким образом, те разделы, которые не имеют разделов A / B и не должны иметь префикса, могут использовать AVB. Это соответствует AVB_HASH[TREE]_DESCRIPTOR_FLAGS_DO_NOT_USE_AB Подписать.

VBMeta резюме

VBMeta abstract — это резюме всех структур VBMeta, включая корневые структуры (например, в vbmeta Раздел) и свяжите все структуры VBMeta в разделе. можешь использовать avbtool calculate_vbmeta_digest Эта сводка рассчитывается во время сборки и может также использоваться во время выполнения avb_slot_verify_data_calculate_vbmeta_digest() Функция вычисляет эту сводку. В командной строке ядра он установлен на androidboot.vbmeta.digest , Для получения дополнительной информации см. avb_slot_verify() Документ.

Это резюме можно сравнить с загруженным пользовательским пространством операционной системы. libavb Используется вместе для проверки загруженного vbmeta Подлинность структуры. Эта опция полезна, если корень доверия или сохраненный индекс отката доступен только при запуске в загрузчике.

Кроме того, еслиДоверенные данные на уровне оборудованияЕсли он содержит сводку VBMeta, проверяющая сторона может извлечь сводку и сравнить ее со сводным списком известных хороших операционных систем, а при обнаружении она может предоставить дополнительные гарантии для устройства, на котором выполняется приложение.

Инструменты и библиотеки

Основное содержание этого раздела — информация об инструментах и ​​библиотеках в AVB.

avbtool и libavb

avbtool В основном используется для генерации vbmeta.img , Который является объектом верхнего уровня для запуска аутентификации. Это изображение будет записано в vbmeta Раздел (если используется раздел A / B, это vbmeta_a или vbmeta_b ) И разработан так, чтобы быть как можно меньше (для внеполосных обновлений)out-of-band update)。 vbmeta Изображение подписано ключом, а изображение содержит для проверки boot.img , system.img И другие данные проверки образа раздела (например, шифрование дайджеста).

vbmeta Изображение также может содержать ссылки на другие разделы, в которых хранятся данные проверки, и указывать открытый ключ, используемый для данных проверки. Этот косвенный метод может делегировать право проверки и позволяет третьим сторонам vbmeta.img Они содержат свои открытые ключи для управления контентом в данном разделе. Таким образом, просто обновив дескриптор раздела в vbmeta.img, вы можете легко изменить или отменить полномочия аутентификации, не изменяя другие разделы.

Сохраните подписанные данные проверки на других изображениях (например, boot.img с участием system.img ) Также используется avbtool Законченный.

Помимо avbtoo В дополнение к l, он также предоставляет библиотеку libavb , Библиотека выполняет всю проверку на стороне устройства, например, сначала загружается vbmeta Раздел, проверьте подпись, а затем продолжите загрузку загрузочного раздела для проверки. Эта библиотека предназначена для использования в загрузчиках и внутренних устройствах Android. Он имеет простую системную абстракцию зависимостей (см. avb_sysdeps.h ) И что должен делать загрузчик или операционная система (см. avb_ops.h ). Основная точка входа для проверки avb_slot_verify() 。

Adroid Things (примечание переводчика: набор операционных систем для платформы Internet of Things, запущенный Google) vbmeta Открытые ключи имеют особые требования и логику проверки. libavb_atx Расширение предоставляется в libavb Реализация операций проверки открытого ключа. (Видеть avb_ops.h средний avb_validate_vbmeta_public_key() )。

Файлы и каталоги

  • libavb/
    • Реализация проверки изображения. Этот код очень переносим, ​​его можно использовать в максимально возможном количестве контекстов, но компилятор должен поддерживать стандарт C99. Часть кода в библиотеке является внутренней реализацией алгоритма и ее следует избегать для внешнего использования. Например avb_rsa.[ch] с участием avb_sha.[ch] файл. Ожидаемые системные зависимости, предоставляемые платформой, находятся в avb_sysdeps.h Определено в. Если платформа предоставляет стандартную операционную среду C, вы можете использовать avb_sysdeps_posix.c 。
  • libavb_atx/
    • Расширение Android Things для проверки метаданных открытого ключа.
  • libavb_user/
    • Содержит пространство для Android AvbOps достичь. Используется для boot_control.avb с участием avbctl 。
  • libavb_ab/
    • Экспериментальная реализация A / B для примеров загрузчика и AVB. Примечание: этот кодDEPRECATED, Вы должны определить AVB_AB_I_UNDERSTAND_LIBAVB_AB_IS_DEPRECATED Чтобы использовать это. Код был удален 1 июня 2018 года.
  • boot_control/
    • Android boot_control Реализация HAL для использования экспериментальных libavb_ab Загрузчик для A / B стека. Примечание. Этот код устарел и был удален 1 июня 2018 года.
  • contrib/
    • Содержит патчи для взаимодействия с AVB в других проектах. Например, contrib/linux/4.4 Есть патчи для ядра Linux 4.4, они сделаны git format-patch Сформирован.
  • Android.bp
    • Construct libavb (Для статических библиотек на устройстве), библиотеки на стороне хоста (для модульного тестирования) и инструкции по построению для модульного тестирования.
  • avbtool
    • Инструмент, написанный на Python для обработки изображений, связанных с проверкой загрузки.
  • test/
    • abvtool , libavb , libavb_ab , с участием libavb_atx Тестовый блок.
  • tools/avbctl/
    • Содержит исходный код инструментов, которые можно использовать для управления AVB при работе в Android.
  • examples/uefi/
    • Включить использование libavb/ с участием libavb_ab/ Исходный код загрузчика на основе UEFI.
  • examples/things/
    • Содержит исходный код для проверки слота для Android Things.
  • README.md
    • README。
  • docs/
    • Документация.

портативность

libavb Код используется в загрузчике устройства, которое загружает Android или другие операционные системы. Рекомендуемый метод — скопировать соответствующие файлы заголовков и файлы C, упомянутые в предыдущем разделе, в загрузчик и интегрировать их при необходимости.

libavb/ База кода будет постоянно обновляться и оптимизироваться с течением времени, и интеграция должна быть как можно более неинвазивной. Цель состоит в том, чтобы поддерживать стабильный API библиотеки, но при необходимости он также будет изменен. Что касается переносимости, библиотека была спроектирована с высокой степенью переносимости в качестве цели, подходящей для архитектур малого и большого порядка, а также для 32-разрядных и 64-разрядных архитектур. Он также может работать в нестандартной среде без стандартной библиотеки C и среды выполнения.

Если установлено AVB_ENABLE_DEBUG Символы препроцессора, код будет содержать полезную информацию об отладке и запускать проверки. Этот символ не должен использоваться в производственных сборках. Символ препроцессора должен быть установлен только при компиляции библиотеки AVB_COMPILATION , Код должен быть скомпилирован в отдельную библиотеку.

Использовать скомпилированный libavb Приложение библиотеки может содержать только libavb/libavb.h Файл (будет включать все открытые интерфейсы), и там не должно быть avb_compile Набор символов препроцессора. Это необходимо для обеспечения внутренних кодов, которые могут измениться в будущем (например, avb_sha.[ch] с участием avb_rsa.[ch] ) Не виден код приложения.

Контроль версий и совместимость

AVB использует номер версии с тремя полями: основная версия, дополнительная версия и дополнительная версия. Это пример номера версии:

Только в случае нарушения совместимости будет затронут основной номер версии, например, поля структуры были удалены или изменены. Дополнительный номер версии запускается только при введении новой функции, такой как добавление нового алгоритма или дескриптора. Когда исправлены ошибки или внесены другие изменения, не влияющие на совместимость, номер подверсии будет изменен.

AvbVBMetaImageHeader Структура (в avb_vbmeta_image.h Определено в) содержит номер версии мастер-копии, необходимой для проверки соответствующей структуры libavb , Хранится в required_libavb_version_major с участием required_libavb_version_minor Поле. Кроме того, эта структура содержит текстовое поле, содержащее версию avbtool, используемую для создания структуры, такую ​​как «avbtool 1.4.3» или «avbtool 1.4.3 some_board Git-4589fbec».

Читайте также:  Где андроид хранит документы

предостерегают, AvbVBMetaImageHeader Структура может содержать следующую информацию:

Использование avbtool

Содержимое раздела vbmeta может быть сгенерировано следующим образом:

Нижний колонтитул целостности, содержащий хэш всего раздела, можно добавить к существующему образу следующим образом:

Нижний колонтитул, используемый для проверки целостности раздела, может быть добавлен к существующему образу. Нижний колонтитул содержит дайджест корня и соль хэш-дерева раздела. Как показано ниже, хеш-дерево также добавляется к изображению.

можешь использовать resize_image Команда для изменения размера изображения с целостностью нижнего колонтитула:

Нижний колонтитул целостности изображения можно удалить с изображения. Как вариант, хеш-дерево может быть сохранено.

Для изображений хеш и хеш-деревьев, vbmeta Структура также может быть передана —output_vbmeta_image Возможность записи внешнего файла, вы также можете указать не vbmeta Структура и нижний колонтитул добавляются к изображению, с которым вы работаете.

в настоящее время использую avbtool add_hash_footer или avbtool add_hashtree_footer После команды, чтобы рассчитать максимальное значение, которое соответствует образу раздела указанного размера, используйте —calc_max_image_size Параметры:

$ avbtool add_hashtree_footer —partition_size $(( 10 1024 1024 ))
–calc_max_image_size
10330112

в настоящее время использую make_vbmeta_image 、 add_hash_footer с участием add_hashtree_footer Команду нужно разместить vbmeta В структуре версия libavb ,можешь использовать —print_required_libavb_version Параметры:

допустимый make_vbmeta_image 、 add_hash_footer с участием add_hashtree_footer Используется в команде —signing_helper Возможность указать внешнюю программу, используемую для хэширования подписи. Данные для подписи проходят STDIN Enter, подписанные данные проходят STDOUT возвращение. в случае —signing_helper Появляется в командной строке, —key Опция должна включать только открытый ключ. Параметры помощника по подписи — это алгоритм и открытый ключ. Если помощник по подписи возвращает отличное от 0, когда это заканчивается, это означает сбой.
Это пример вызова:

—signing_helper_with_files Похожий на —signing_helper , Просто используйте временный файл для связи с помощником, а не с STDIN с участием STDOUT Связь. Вывести результат диагностики в STDOUT Вместо того STDERR В этом случае это очень полезно.
Вот пример вызова:

Последний позиционный параметр — это файл, содержащий данные для подписи. Помощник должен написать подпись в этом файле.

можешь использовать ppend_vbmeta_image Команда будет вся vbmeta Двоичный файл добавляется в конец другого изображения. Это очень полезно в ситуациях, когда не используется раздел vbmeta, например:

verify_image Команды могут использоваться для проверки содержимого нескольких файлов изображений одновременно. При вызове изображения объекта выполните следующие проверки:

  • Если изображение имеет VBMeta Структура, подпись проверяется на соответствие встроенному открытому ключу. Если изображение не похоже на vbmeta.img Найдите нижний колонтитул и используйте нижний колонтитул, если он существует.
  • Если прошло —key Вариант, вам нужен .pem Файл и проверка VBMeta Соответствует ли открытый ключ, встроенный в структуру, данному ключу.
  • VBMeta Все дескрипторы в структуре проверяются следующим образом:
    • Для дескриптора хеша загрузите файл изображения, соответствующий имени раздела, и проверьте, соответствует ли дайджест изображения в соответствии с дайджестом в дескрипторе.
    • Для дескриптора хеш-дерева загрузите файл изображения, соответствующий имени раздела, вычислите хеш-дерево и сравните его корневой дайджест с файлом изображения в дескрипторе.
    • Для дескриптора раздела ссылки, содержание и необходимость передачи —expected_chain_partition Содержимое, переданное в опции, сравнивается. Формат этой опции похож на —chain_partition Формат варианта. Если дескриптор раздела ссылки не —expected_chain_partition Дескриптор проверки не пройден.

Это пример установки, где boot.img с участием system.img Дайджест хранится в использовании my_key.pem подписанный vbmeta.img в. Также проверяет раздел foobar Использует ли раздел ссылок индекс отката 8 и соответствует ли открытый ключ в формате AVB файлу foobar_vendor_key.avbpubkey Открытый ключ соответствует:

Verifying image /path/to/vbmeta.img using key at my_key.pem
vbmeta: Successfully verified SHA256_RSA4096 vbmeta struct in /path_to/vbmeta.img
boot: Successfully verified sha256 hash of /path/to/boot.img for image of 10543104 bytes
system: Successfully verified sha1 hashtree of /path/to/system.img for image of 1065213952 bytes
foobar: Successfully verified chain partition descriptor matches expected data

В этом примере verify_image Каталог проверки команд /path/to Файлы в vbmeta.img , boot.img с участием system.img , Каталог и расширение файла данного изображения (например, /path/to/vbmeta.img ) Используется вместе с именем раздела в дескрипторе для вычисления имени файла для хранения хеш-кода и изображения хеш-дерева.

verify_image Команду также можно использовать для проверки правильности работы помощника по созданию подписи.

calculate_vbmeta_digest Команду можно использовать для расчета нескольких файлов изображений одновременно vbmeta Резюме. Результатом является шестнадцатеричная строка, которая будет напечатана в STDOUT Или по указанному пути (используя —output Опция).

В этом примере calculate_vbmeta_digest Командная загрузка vbmeta.img файл. Если это изображение имеет один или несколько дескрипторов связанных разделов, используйте verify_image Для загрузки этих файлов используйте ту же логику (например, предполагается, что каталог и расширение файла совпадают с указанным изображением). Однажды загрузил все vbmeta Структура, резюме рассчитывается (используя —hash_algorithm Возможность указать используемый алгоритм хеширования) и распечатать его.

Компилировать интеграцию

В Android проходит AVB BOARD_AVB_ENABLE Переменная включена.

После установки этой опции, это будет system.img Присоедините хеш-дерево и создайте vbmeta.img , vbmeta.img Изображение содержит boot.img с участием system.img Дескриптор хеша, и для system.img Настроить dm-verity Параметры командной строки ядра. Если система сборки настроена на сборку vendor.img / product.img / odm.img / product_services.img Один или несколько из них, хеш-дерево каждой системы сборки также будет присоединено к их соответствующим изображениям, и их дескрипторы хеш-дерева будут включены в соответствующие vbmeta.img в.

Используется по умолчанию SHA256_RSA4096 Алгоритм и external/avb/test/data Тестовый ключ в каталоге. Алгоритм и ключ соответственно определяются BOARD_AVB_ALGORITHM с участием BOARD_AVB_KEY_PATH Спецификация переменной, например, в следующем примере указано использование 4096-bit RSA key and SHA-512 алгоритм:

Следует отметить, что открытый ключ должен быть доступен для загрузчика, чтобы его можно было использовать для проверки соответствующего раздела. использование avbtool extract_public_key Извлеките ключ в ожидаемом формате (ниже AVB_pk ). Если устройство используется с AVB_pk Разные корни доверия, то —public_key_metadata Опцию можно использовать для встраивания бинарного файла (ниже AVB_pkmd ), файл может быть использован для получения AVB_pk. При проверке слота, AVB_pk с участием AVB_pkmd Переданы в validate_vbmeta_public_key() эксплуатации.

Устройство может быть настроено на создание дополнительных vbmeta Раздел как раздел ссылок, так что верхний уровень vbmeta Обновите подраздел в случае раздела. Например, следующая переменная создает vbmeta_mainline.img Как ссылка vbmeta Изображение, оно содержит system.img 、 product_services.img Дескриптор хеш-дерева. vbmeta_mainline.img Он будет подписан указанным ключом и алгоритмом.

предостерегают, system.img с участием product_services.img Дескриптор хеш-дерева будет включен только в vbmeta_mainline.img В, но не в vbmeta.img в. Через вышеуказанные настройки, раздел system.img , product_services.img с участием vbmeta_mainline.img Может обновляться самостоятельно.

В настоящее время система сборки поддерживает сборку vbmeta_mainline.img ( BOARD_AVB_VBMETA_MAINLINE )с участием vbmeta_vendor.img ( BOARD_AVB_VBMETA_VENDOR ) Такая ссылка vbmeta Образ.

Чтобы предотвратить атаки отката, необходимо регулярно добавлять индексы отката. можешь использовать BOARD_AVB_ROLLBACK_INDEX Индекс отката настройки переменной:

Если не установлено, индекс отката по умолчанию равен 0.

переменная BOARD_AVB_MAKE_VBMETA_IMAGE_ARGS Может использоваться для указания доставки avbtool make_vbmeta_image Другие варианты. Типичные варианты, используемые здесь, включают —prop , — prop_from_file , —chain_partition , —public_key_metadata с участием —signing_helper 。

использование avbtool add_hash_footer Делать boot.img Когда переменная BOARD_AVB_BOOT_ADD_HASH_FOOTER_ARGS Может использоваться для указания других параметров. Типичные варианты, используемые здесь, включают —hash_algorithm с участием —salt 。

использование avbtool add_hash_footer Делать system.img Когда переменная BOARD_AVB_SYSTEM_ADD_HASHTREE_FOOTER_ARGS Может использоваться для указания других параметров. Типичные варианты, используемые здесь, включают —hash_algorithm , —salt , —block_size с участием —do_not_generate_fec 。

использование avbtool add_hash_footer Делать vendor.img Когда переменная BOARD_AVB_VENDOR_ADD_HASHTREE_FOOTER_ARGS Может использоваться для указания других параметров. Типичные варианты, используемые здесь, включают —hash_algorithm , —salt , —block_size с участием —do_not_generate_fec 。

использование avbtool add_hash_footer Делать dtbo.img Когда переменная BOARD_AVB_DTBO_ADD_HASH_FOOTER_ARGS Может использоваться для указания других параметров. Типичные варианты, используемые здесь, включают —hash_algorithm с участием —salt 。

Системные переменные для сборки Verified Boot в старой версии Android (например, PRODUCT_SUPPORTS_VERITY_FEC ) Не используется в AVB.

кликните сюдаНайдите связанные с A / B системные переменные сборки.

Интеграция устройства

В этом разделе обсуждаются libavb Рекомендации и рекомендации по интеграции с загрузчиками устройств. Важно подчеркнуть, что это всего лишь предложения, поэтому формулировку следует использовать осторожно.

Кроме того, в этой главе также используется термин HLOS для обозначения операционных систем высокого уровня (High Level Operating System). Это, очевидно, включает в себя Android (включая, но не ограничиваясь, мобильные телефоны), но это могут быть и другие операционные системы.

Системная зависимость

libavb Способ написания библиотеки делает ее переносимой на любую систему, использующую компилятор C99. Для этого не требуется стандартная библиотека C, но должен быть реализован загрузчик libavb Требуется набор простых системных примитивов, таких как avb_malloc() 、 avb_free() с участием avb_print() 。

В дополнение к системным примитивам, libavb Также прошло AvbOps Структура действует как интерфейс для взаимодействия с загрузчиком. Это включает в себя чтение и запись данных из разделов, чтение и запись индексов отката, проверку того, следует ли принимать открытый ключ, используемый для подписи, и так далее.

Заблокированный и разблокированный режим

Заблокировано ли устройство Android ( LOCKED ) Или разблокировать ( UNLOCKED ) Статус, оба поддерживают AVB.

В контексте AVB, LOCKED Статус означает, что ошибка проверки является фатальной, а UNLOCKED Государства нет. Если устройство UNLOCKED Тогда в avb_slot_verify() Передано в параметре flags AVB_SLOT_VERIFY_FLAGS_ALLOW_VERIFICATION_ERROR Флаги, ошибки проверки, включая следующие ошибки, будут нефатальными:

  • AVB_SLOT_VERIFY_RESULT_ERROR_PUBLIC_KEY_REJECTED
  • AVB_SLOT_VERIFY_RESULT_ERROR_VERIFICATION
  • AVB_SLOT_VERIFY_RESULT_ERROR_ROLLBACK_INDEX

Если устройство находится в состоянии LOCKED, пожалуйста, не avb_slot_verify() Передано в параметре flags AVB_SLOT_VERIFY_FLAGS_ALLOW_VERIFICATION_ERROR Логотип и только AVB_SLOT_VERIFY_RESULT_OK Обрабатывается как нефатальная ошибка.

На Android состояние устройства можно изменить через интерфейс fastboot. Например, используя fastboot flashing lock Переключиться на LOCKED Статус, использование fastboot flashing unlock Переключиться на UNLOCKED положение дел.

После подтверждения физического присутствия пользователя устройство должно разрешать только переходы состояний (например, из LOCKED к UNLOCKED или UNLOCKED к LOCKED ). Если устройство имеет дисплей и кнопки, оно обычно отображает диалоговое окно и просит пользователя использовать физическую кнопку для подтверждения или отмены операции.

Читайте также:  Все про андроид его виды

Из LOCKED Переключиться на UNLOCKED Государство, должно быть очищено в том числе userdata Раздел и любой NVRAM (Примечание переводчика: Non-Volatile Random Access Memory Все пользовательские данные, включая энергонезависимую оперативную память). К тому же, stored_rollback_index[n] Адрес также будет удален (все элементы должны быть установлены на ноль). Когда следует UNLOCKED Перевести в LOCKED Аналогичная операция (стереть userdata , Пространство NVRAM и stored_rollback_index[n] позиция). Если устройство требует использовать полное шифрование диска, то UNLOCKED к LOCKED Только нужно меньше стирать. В зависимости от внешнего вида и предполагаемого использования устройства должны быть приняты соответствующие методы, чтобы запросить у пользователя подтверждение перед удалением каких-либо данных.

Хранение несанкционированного доступа

В этом документе защита от несанкционированного доступа означает, что он может обнаружить HLOS Например, независимо от того, были ли данные подделаны, можно обнаружить, что данные были перезаписаны.

Записанный индекс отката, ключ, использованный для проверки, статус устройства ( LOCKED или UNLOCKED И именованные постоянные значения должны храниться в защищенном хранилище. Если обнаружено вмешательство, соответствующий AvbOps Операция должна завершиться неудачей, например, return AVB_IO_RESULT_ERROR_IO , Особенно важно, что ключи проверки не могут быть подделаны, потому что они представляют корень доверия.

Если ключ проверки может измениться, онидолженОн может быть установлен только конечным пользователем, например, он никогда не должен устанавливаться на фабрике, в магазине или в любой промежуточной точке перед конечным пользователем. Кроме того, только когда устройство UNLOCKED Ключ может быть установлен или очищен только в состоянии.

Именованные постоянные значения

В AVB 1.1 введена поддержка именованных постоянных значений, эти значения должны быть защищены от несанкционированного доступа и позволять AVB хранить произвольные пары ключ-значение. Интеграторы могут ограничивать поддержку этих значений фиксированным набором известных имен, максимального размера и / или максимального числа.

Постоянные дайджесты

Использование постоянных дайджестов для разделов означает, что дайджест (или корневой дайджест в случае хеш-дерева) хранится не в дескрипторе, а в именованном постоянном значении. Это позволяет AVB проверять данные конфигурации, которые могут варьироваться от устройства к устройству. Когда устройство LOCKED В этом состоянии постоянное резюме не может быть изменено, если резюме не инициализировано, когда оно не существует.

Чтобы указать, что дескриптор должен использовать постоянный дайджест, пожалуйста, add_hash_footer или add_hashtree_footer avbtool Использование операции —use_persistent_digest Параметры. Затем во время проверки дескриптора AVB будет иметь указанное постоянное значение. avb.persistent_digest.$(partition_name) Ищите сводку в дескрипторе, а не в самом дескрипторе.

Для дескрипторов хеш-дерева, которые используют постоянные дайджесты, вы можете использовать $(AVB_FOO_ROOT_DIGEST) Маркер формы заменяет дайджест-значение дескриптором командной строки ядра, где «FOO» — это имя раздела в верхнем регистре, в данном случае это раздел «FOO». Маркер будет заменен дайджестом в шестнадцатеричной форме.

По умолчанию, когда —use_persistent_digest Варианты и add_hash_footer или add_hashtree_footer При совместном использовании avbtool создаст дескриптор без соли (salt) вместо генерации случайной соли, равной длине дайджеста по умолчанию. Это связано с тем, что значение дайджеста хранится в постоянной памяти, которая не изменяется со временем. Другой вариант заключается в использовании —salt Обеспечить случайную соль вручную. Но после записи постоянного значения дайджеста соль должна оставаться неизменной в течение всего срока службы устройства.

Обновление сохраненных индексов отката

Чтобы защита от отката работала, загрузчик должен обновить устройство на устройстве перед передачей управления в HLOS. stored_rollback_indexes[n] Массив. Если не используется A/B , Это очень просто — просто обновите его до метаданных AVB слота перед загрузкой. Это выглядит так в псевдокоде:

Тем не менее, если вы используете A / B, вы должны быть более осторожны, когда обновление не работает, все еще позволяйте устройству вернуться к старому слоту.

Для HLOS, таких как Android, если вы обнаружите, что обновленная версия ОС не работает, поддерживается только откат. stored_rollback_index[n] Должны быть помечены только как из метаданных A / B SUCCESSFUL Слоты обновлены. Псевдокод выглядит следующим образом, где slot_is_marked_as_successful() Из используемого стека A / B:

Для HLOS, который можно откатить до предыдущей версии, stored_rollback_index[n] Следует установить максимальное значение, допустимое для всех слотов, которые могут быть запущены в обычном режиме. Этот метод является экспериментальным (в настоящее время не рекомендуется) A / B-стеком в AVB libavb_ab Реализовано в см. avb_ab_flow() достичь. Обратите внимание, что для этого требуется проверка всех загрузочных слотов при каждой загрузке, что может повлиять на время загрузки.

Рекомендуемый процесс наведения

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

  • Устройство должно искать все слоты A / B, пока не найдет действительную операционную систему для загрузки. в LOCKED Отклоненный слот может быть В РАЗБЛОКИРОВАН Статус не отклоняется (например, когда UNLOCKED Можно использовать любой ключ и допустим сбой индекса отката), поэтому алгоритм, используемый для выбора слота, будет различаться в зависимости от состояния устройства.
  • Если действительная операционная система не найдена (то есть нет загрузочного слота A / B), устройство не может загрузиться и должно перейти в режим восстановления. Это зависит от устройства. Если устройство имеет экран, оно должно передать это состояние пользователю.
  • Если устройство заблокировано, то принимаются только операционные системы, подписанные единым ключом проверки (см. Предыдущий раздел). Кроме того, хранится в проверенном изображении rollback_index[n] Должно быть больше или равно на устройстве stored_rollback_index[n] Значение в (для всех n) и stored_rollback_index[n] Массив должен быть обновлен, как указано в предыдущем разделе.
    • Если ключ, используемый для аутентификации, установлен конечным пользователем, а устройство имеет экран, то на нем должно отображаться предупреждение с отпечатком пальца ключа, указывающее, что устройство загружается в пользовательскую операционную систему. Предупреждение должно отображаться не менее 10 секунд перед продолжением процесса загрузки. Если устройство не имеет экрана, необходимо использовать другие методы, чтобы сообщить, что устройство загружает пользовательскую операционную систему (световая панель, светодиод и т. Д.).
  • Если устройство UNLOCKED , Нет необходимости проверять ключ, используемый для подписи ОС, а также проверять или обновлять откат на устройстве. stored_rollback_index[n] , Поэтому пользователю всегда должно быть показано предупреждение о том, что проверка не произошла.
    • Это зависит от формы и предполагаемого использования устройства, а также от того, как устройство реализовано. Если на устройстве есть экран и кнопки (например, мобильный телефон), предупреждение будет отображаться не менее 10 секунд, прежде чем процесс загрузки продолжится. Если устройство не имеет экрана, необходимо использовать другие методы, чтобы сообщить, что устройство разблокировано (световая панель, светодиод и т. Д.).

Обработка ошибок dm-verity

По замыслу, HLOS обнаруживает ошибки проверки дерева хешей вместо загрузчика. AVB предоставляет способ указать, как пройти avb_slot_verify() В функции hashtree_error_mode Ошибка обработки параметра. Возможные значения включают в себя:

  • AVB_HASHTREE_ERROR_MODE_RESTART_AND_INVALIDATE Указывает, что HLOS помечает текущий слот как недействительный и будет перезагружен. На устройствах с A / B это приведет к попытке загрузки другого слота (если он помечен как загрузочный) или к режиму, в котором ОС не может быть загружена (например, к некоторой форме режима восстановления). В Linux это требует использования CONFIG_DM_VERITY_AVB Встроенное ядро.
  • AVB_HASHTREE_ERROR_MODE_RESTART Указывает, что операционная система будет перезагружена, если текущий слот недействителен. Будьте осторожны при использовании этого режима безоговорочно, потому что если вы сталкиваетесь с одной и той же ошибкой проверки хеш-дерева при каждой загрузке, вы можете войти в бесконечный цикл.
  • AVB_HASHTREE_ERROR_MODE_EIO Указывает, что ошибка EIO будет возвращена приложению.
  • AVB_HASHTREE_ERROR_MODE_MANAGED_RESTART_AND_EIO Указывает на использование в соответствии со статусом RESTART или EIO Режим. Этот режим реализует конечный автомат, который используется по умолчанию RESTART , когда AVB_SLOT_VERIFY_FLAGS_RESTART_CAUSED_BY_HASHTREE_CORRUPTION Перейти к когда avb_slot_verify () , Режим конвертируется в EIO , При обнаружении новой операционной системы устройство переключится обратно на RESTART Режим.
    • Для достижения этого постоянного хранения необходимо, в частности, это означает, что AvbOps Переданные операции должны будут быть выполнены read_persistent_value() с участием write_persistent_value() эксплуатации. Используемое постоянное значение называется avb.managed_verity_mode И занимают 32 байта дискового пространства.
  • AVB_HASHTREE_ERROR_MODE_LOGGING Указывает, что ошибки будут зарегистрированы, и поврежденные данные могут быть возвращены в приложение. Этот режим следует использовать только для диагностики и отладки. Если ошибки проверки не допускаются, они не могут быть использованы.

hashtree_error_mode Переданное значение в основном только что передано androidboot.veritymode , androidboot.veritymode.managed с участием androidboot.vbmeta.invalidate_on_error Параметры командной строки ядра передаются в HLOS следующим образом:

value androidboot.veritymode androidboot.veritymode.managed androidboot.vbmeta.invalidate_on_error
AVB_HASHTREE_ERROR_MODE_RESTART_AND_INVALIDATE enforcing (unset) yes
AVB_HASHTREE_ERROR_MODE_RESTART enforcing (unset) (unset)
AVB_HASHTREE_ERROR_MODE_EIO eio (unset) (unset)
AVB_HASHTREE_ERROR_MODE_MANAGED_RESTART_AND_EIO eio or enforcing yes (unset)
AVB_HASHTREE_ERROR_MODE_LOGGING ignore_corruption (unset) (unset)

Единственное исключение из этой таблицы, если на верхнем уровне vbmeta Установить в AVB_VBMETA_IMAGE_FLAGS_HASHTREE_DISABLED Подпишите, тогда androidboot.veritymode Необходимо установить на disabled , androidboot.veritymode.managed с участием androidboot.vbmeta.invalidate_on_error Никаких настроек не требуется.

Какой режим я должен использовать для моего устройства?

Все зависит от устройства, способа его использования и требуемого опыта пользователя.

Для устройств Android, вы должны использовать AVB_HASHTREE_ERROR_MODE_MANAGED_RESTART_AND_EIO Режим. Смотрите также на source.android.comBoot FlowГлава, чтобы понять типы UX и UI, которые должен реализовать загрузчик.

Если устройство не имеет экрана или HLOS поддерживает несколько загрузочных слотов одновременно, используйте AVB_HASHTREE_ERROR_MODE_RESTART_AND_INVALIDATE Это может иметь больше смысла.

Специфичная для Android интеграция

На Android загрузчик должен быть установлен в командной строке ядра androidboot.verifiedbootstate Параметр указывает состояние загрузки. Следует использовать следующие значения:

  • green: Если устройство имеет LOCKED И корень доверия, который может быть установлен пользователем, не используется.
  • yellow: Если устройство имеет LOCKED И корень доверия, который может быть установлен пользователем, используется.
  • orange: Если устройство имеет UNLOCKED 。

Особенности оборудования

Этот раздел содержит информацию о том, как интегрировать AVB в определенные устройства. Это не исчерпывающий список.

Pixel 2

На Pixel 2 и Pixel 2 XL загрузчик поддерживает имя avb_custom_key Виртуальный раздел. только в UNLOCKED Раздел можно стереть и переписать в штат. Способ установки пользовательского ключа заключается в следующем:

Стирание ключа выполняется путем стирания виртуального раздела:

Источник

Оцените статью