stringtranslate.com

Процесс загрузки Android-устройств

Процесс загрузки устройств Android начинается с момента включения SoC ( системы на кристалле ) и заканчивается появлением домашнего экрана или специальных режимов, таких как восстановление и быстрая загрузка . [a] Процесс загрузки устройств под управлением Android зависит от дизайна прошивки производителей SoC.

Фон

По состоянию на 2018 год 90% SoC на рынке Android поставляются компаниями Qualcomm , Samsung или MediaTek . [1] Другими поставщиками являются Rockchip , Marvell , Nvidia и ранее Texas Instruments .

История

Проверенная загрузка, мера безопасности загрузки , была введена в Android KitKat . [2]

Этапы

Первичный загрузчик

Первичный загрузчик (PBL), который хранится в Boot ROM [3], является первым этапом процесса загрузки. Этот код пишется производителем чипсета. [4]

PBL проверяет подлинность следующего этапа.

На смартфонах Samsung ключ безопасной загрузки Samsung Secure Boot Key (SSBK) используется загрузочной ПЗУ для проверки следующих этапов. [5]

На SoC от Qualcomm можно войти в режим аварийной загрузки Qualcomm из основного загрузчика.

Если проверка вторичного загрузчика не пройдена, он войдет в EDL. [6] [ нужен лучший источник ]

Вторичный загрузчик

Поскольку пространство в загрузочном ПЗУ ограничено, используется вторичный загрузчик на eMMC или eUFS . [7] Вторичный загрузчик инициализирует TrustZone . [7] [8]

Например, на Qualcomm MSM8960 вторичный загрузчик 1 загружает вторичный загрузчик 2. Вторичный загрузчик 2 загружает TrustZone и вторичный загрузчик 3. [9]

SBL теперь называется XBL компанией Qualcomm и представляет собой реализацию UEFI .

Qualcomm использует LK (Little Kernel) или XBL (eXtensible Bootloader), MediaTek использует Das U-Boot . [1] Little Kernel — это микроядро для встраиваемых устройств , которое было модифицировано Qualcomm для использования в качестве загрузчика. [10]

Aboot

Загрузчик Android (Aboot), реализующий интерфейс fastboot (отсутствующий в устройствах Samsung). Aboot проверяет подлинность разделов загрузки и восстановления. [4] Нажав определенную комбинацию клавиш, устройства также могут загружаться в режиме восстановления . Затем Aboot передает управление ядру Linux.

Ядро и initramfs

Initramfs — это сжатый архив cpio , содержащий небольшую корневую файловую систему. Он содержит init, который выполняется. Ядро Android — это модифицированная версия ядра Linux. Init монтирует разделы. dm-verity проверяет целостность разделов, указанных в файле fstab. dm-verity — это модуль ядра Linux, представленный Google в Android с версии 4.4. Стандартная реализация поддерживает только блочную проверку, но Samsung добавила поддержку файлов. [8]

Зигота

Zygote порождается процессом init, который отвечает за запуск приложений Android и процессов служб. Он загружает и инициализирует классы, которые должны использоваться очень часто, в кучу. Например, структуры данных dex библиотек. После запуска Zygote прослушивает команды на сокете. Когда должно быть запущено новое приложение, Zygote отправляется команда, которая выполняет системный вызов fork() . [ необходима цитата ]

Схема расположения разделов

Система Android разделена на разные разделы . [11]

Платформа Qualcomm использует таблицу разделов GUID . Эта спецификация является частью спецификации UEFI , но не зависит от прошивки UEFI. [12]

Смотрите также

Пояснительные записки

  1. ^ Эти режимы, как правило, поддерживают функцию возобновления обычной загрузки.

Ссылки

  1. ^ ab Garri, Khireddine; Kenaza, Tayeb; Aissani, Mohamed (октябрь 2018 г.). «Новый подход к обнаружению буткитов на платформе Android». Международная конференция по интеллектуальным коммуникациям в сетевых технологиях 2018 г. (SaCoNeT) . IEEE. стр. 277–282. doi :10.1109/saconet.2018.8585583. ISBN 978-1-5386-9493-0. S2CID  56718094.
  2. ^ "Android Verified Boot [LWN.net]". LWN.net . Архивировано из оригинала 2015-04-22 . Получено 2021-09-25 .
  3. ^ Юань, Пэнфэй; Го, Яо; Чэнь, Сянцюнь; Мэй, Хун (март 2018 г.). «Оптимизация ядра Linux для Android-смартфонов с учетом особенностей устройств». 6-я международная конференция IEEE по облачным вычислениям, услугам и инжинирингу мобильных приложений (MobileCloud) 2018 г. стр. 65–72. doi :10.1109/MobileCloud.2018.00018. ISBN 978-1-5386-4879-7. S2CID  13742883.
  4. ^ ab Hay, Roee (2017-08-14). "fastboot oem vuln: уязвимости загрузчика android в настройках поставщика". Труды 11-й конференции USENIX по наступательным технологиям . WOOT'17. Ванкувер, Британская Колумбия, Канада: Ассоциация USENIX: 22.
  5. ^ Алендал, Гуннар; Дирколботн, Гейр Олав; Аксельссон, Стефан (01.03.2018). «Криминалистическое приобретение — Анализ и обход режима общих критериев, принудительно примененного в безопасной загрузке Samsung». Цифровое расследование . 24 : S60–S67. doi : 10.1016/j.diin.2018.01.008. hdl : 11250/2723051 . ISSN  1742-2876.
  6. ^ «Эксплуатация программистов Qualcomm EDL (1): Получение доступа и внутренние компоненты PBL». alephsecurity.com . 2018-01-22 . Получено 2021-09-13 .
  7. ^ ab Юань, Пэнфэй; Го, Яо; Чэнь, Сянцюнь; Мэй, Хун (март 2018 г.). «Оптимизация ядра Linux для Android-смартфонов под конкретные устройства». 6-я международная конференция IEEE по мобильным облачным вычислениям, сервисам и инжинирингу (MobileCloud) 2018 г. IEEE. стр. 65–72. doi :10.1109/mobilecloud.2018.00018. ISBN 978-1-5386-4879-7. S2CID  13742883.
  8. ^ ab Kanonov, Uri; Wool, Avishai (2016-10-24). «Безопасные контейнеры в Android». Труды 6-го семинара по безопасности и конфиденциальности в смартфонах и мобильных устройствах . SPSM '16. Нью-Йорк, штат Нью-Йорк, США: ACM. стр. 3–12. doi :10.1145/2994459.2994470. ISBN 9781450345644. S2CID  8510729.
  9. ^ Тао, Чен, Юэ Чжан, Юлун Ван, Чжи Вэй (17 июля 2017 г.). Атака на понижение версии TrustZone. ОСЛК  1106269801.{{cite book}}: CS1 maint: несколько имен: список авторов ( ссылка )
  10. ^ Тан, Цинхао (2021). Безопасность Интернета вещей: принципы и практика. Fan Du. Сингапур. стр. 166. ISBN 978-981-15-9942-2. OCLC  1236261208.{{cite book}}: CS1 maint: отсутствует местоположение издателя ( ссылка )
  11. ^ Алендал, Гуннар; Дюрколботн, Гейр Олав; Аксельссон, Стефан (март 2018 г.). «Криминалистическое приобретение — анализ и обход режима общих критериев, принудительно примененного в безопасной загрузке Samsung». Цифровое расследование . 24 : S60–S67. doi : 10.1016/j.diin.2018.01.008. hdl : 11250/2723051 . ISSN  1742-2876.
  12. ^ Чжао, Лунцзе; Си, Бин; У, Шуньсян; Айзези, Ясен; Мин, Даодун; Ван, Фулинь; И, Чао (2018). «Извлечение физического зеркала на мобильных устройствах Android на базе Qualcomm». Труды 2-й Международной конференции по компьютерным наукам и прикладной инженерии . Csae '18. Нью-Йорк, Нью-Йорк, США: ACM Press. стр. 1–5. doi :10.1145/3207677.3278046. ISBN 9781450365123. S2CID  53038902.

Внешние ссылки