Процесс загрузки Android-устройств
Процесс загрузки устройств Android начинается при включении SoC ( системы на кристалле ) и заканчивается появлением домашнего экрана или специальных режимов, таких как восстановление и быстрая загрузка . [а] На процесс загрузки устройств под управлением Android влияет конструкция прошивки производителей SoC.
Предыстория [ править ]
По состоянию на 2018 год 90% SoC на рынке Android поставляются Qualcomm , Samsung или MediaTek . [1] Другие поставщики включают Rockchip , Marvell , Nvidia и ранее Texas Instruments .
История [ править ]
Проверенная загрузка — мера безопасности загрузки — была представлена в Android KitKat . [2]
Этапы [ править ]
Основной загрузчик [ править ]
Первичный загрузчик (PBL), который хранится в загрузочном ПЗУ. [3] это первый этап процесса загрузки. Этот код написан производителем чипсета. [4]
PBL проверяет подлинность следующего этапа.
На смартфонах Samsung ключ безопасной загрузки Samsung (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 для обеспечения перекрестной совместимости для загрузки операционных систем, отличных от Android, на втором этапе.
О загрузке [ править ]
Qualcomm использует Little Kernel, MediaTek использует Das U-Boot . [1] Little Kernel — это микроядро для встраиваемых устройств , которое было модифицировано компанией Qualcomm для использования в качестве загрузчика Android. [10] Загрузчик Android (Aboot), реализующий интерфейс быстрой загрузки (отсутствующий в устройствах Samsung). Aboot проверяет подлинность загрузочного раздела и раздела восстановления. [4] Нажав определенную комбинацию клавиш, устройства также могут загрузиться в режиме восстановления . Затем Aboot передает управление ядру Linux.
Ядро и initramfs [ править ]
Initramfs — это сжатый gzip архив cpio , содержащий небольшую корневую файловую систему. Он содержит init, который выполняется. Ядро Android представляет собой модифицированную версию ядра Linux. Init монтирует разделы. dm-verity проверяет целостность разделов, указанных в файле fstab. dm-verity — это модуль ядра Linux, который был представлен Google в Android начиная с версии 4.4. Стандартная реализация поддерживает только проверку на основе блоков, но Samsung добавила поддержку файлов. [8]
Зигота [ править ]
Zygote порождается процессом инициализации, который отвечает за запуск приложений Android и служебных процессов. Он загружает и инициализирует в кучу классы, которые предполагается использовать очень часто. Например, структуры данных dex библиотек. После запуска Zygote он прослушивает команды сокета. Когда должно быть запущено новое приложение, в Zygote отправляется команда, которая выполняет системный вызов fork() . [ нужна ссылка ]
Расположение разделов [ править ]
Система Android разделена на разные разделы . [11]
Платформа Qualcomm использует таблицу разделов GUID . Эта спецификация является частью спецификации UEFI , но не зависит от прошивки UEFI. [12]
См. также [ править ]
Пояснительные примечания [ править ]
- ^ Эти режимы, как правило, поддерживают функцию возобновления обычной загрузки.
Ссылки [ править ]
- ↑ Перейти обратно: Перейти обратно: а б Гарри, Хиреддин; Кеназа, Тайеб; Айссани, Мохамед (октябрь 2018 г.). «Новый подход к обнаружению буткитов на платформе Android» . 2018 Международная конференция по интеллектуальным коммуникациям в сетевых технологиях (SaCoNeT) . IEEE. стр. 277–282. дои : 10.1109/saconet.2018.8585583 . ISBN 978-1-5386-9493-0 . S2CID 56718094 .
- ^ «Проверенная загрузка Android [LWN.net]» . LWN.net . Архивировано из оригинала 22 апреля 2015 г. Проверено 25 сентября 2021 г.
- ^ Юань, Пэнфэй; Го, Яо; Чен, Сянцюнь; Мэй, Хун (март 2018 г.). «Оптимизация ядра Linux для смартфонов Android» . 2018 6-я Международная конференция IEEE по мобильным облачным вычислениям, услугам и инженерии (MobileCloud) . стр. 65–72. дои : 10.1109/MobileCloud.2018.00018 . ISBN 978-1-5386-4879-7 . S2CID 13742883 .
- ↑ Перейти обратно: Перейти обратно: а б Хэй, Рои (14 августа 2017 г.). «Fastboot OEM Vuln: уязвимости загрузчика Android в настройках поставщика» . Материалы 11-й конференции USENIX по наступательным технологиям . ВУТ'17. Ванкувер, Британская Колумбия, Канада: Ассоциация USENIX: 22.
- ^ Алендаль, Гуннар; Дирколботн, Гейр Олав; Аксельссон, Стефан (01 марта 2018 г.). «Сбор данных криминалистической экспертизы — анализ и обход режима общих критериев с принудительной загрузкой Samsung Secure» . Цифровое расследование . 24 : S60–S67. дои : 10.1016/j.diin.2018.01.008 . HDL : 11250/2723051 . ISSN 1742-2876 .
- ^ «Использование программистов Qualcomm EDL (1): получение доступа и внутренние компоненты PBL» . alephsecurity.com . 22 января 2018 г. Проверено 13 сентября 2021 г.
- ↑ Перейти обратно: Перейти обратно: а б Юань, Пэнфэй; Го, Яо; Чен, Сянцюнь; Мэй, Хун (март 2018 г.). «Оптимизация ядра Linux для смартфонов Android» . 2018 6-я Международная конференция IEEE по мобильным облачным вычислениям, услугам и инженерии (MobileCloud) . IEEE. стр. 65–72. дои : 10.1109/mobilecloud.2018.00018 . ISBN 978-1-5386-4879-7 . S2CID 13742883 .
- ↑ Перейти обратно: Перейти обратно: а б Канонов, Юрий; Шерсть, Авишай (24 октября 2016 г.). «Безопасные контейнеры в Android» . Материалы 6-го семинара по безопасности и конфиденциальности в смартфонах и мобильных устройствах . СПСМ '16. Нью-Йорк, штат Нью-Йорк, США: ACM. стр. 3–12. дои : 10.1145/2994459.2994470 . ISBN 9781450345644 . S2CID 8510729 .
- ^ Тао, Чен, Юэ Чжан, Юлун Ван, Чжи Вэй (17 июля 2017 г., атака на понижение версии TrustZone OCLC 1106269801 ) .
{{cite book}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - ^ Тан, Цинхао (2021 г.). Безопасность Интернета вещей: принципы и практика . Фань Ду. Сингапур. п. 166. ИСБН 978-981-15-9942-2 . OCLC 1236261208 .
{{cite book}}
: CS1 maint: отсутствует местоположение издателя ( ссылка ) - ^ Алендаль, Гуннар; Дирколботн, Гейр Олав; Аксельссон, Стефан (март 2018 г.). «Криминалистическое получение — анализ и обход режима общих критериев с принудительной загрузкой Samsung Secure» . Цифровое расследование . 24 : S60–S67. дои : 10.1016/j.diin.2018.01.008 . HDL : 11250/2723051 . ISSN 1742-2876 .
- ^ Чжао, Лунцзе; Си, Бин; У, Шуньсян; Айзези, Ясен; Мин, Даодун; Ван, Фулин; Йи, Чао (2018). «Извлечение физического зеркала на мобильных устройствах Android на базе Qualcomm» . Материалы 2-й Международной конференции по информатике и прикладной инженерии . Чесаэ '18. Нью-Йорк, Нью-Йорк, США: ACM Press. стр. 1–5. дои : 10.1145/3207677.3278046 . ISBN 9781450365123 . S2CID 53038902 .
Внешние ссылки [ править ]
- Android.com – Процесс загрузки
- Управление временем загрузки
- Загрузчики Qualcomm
- Цепочка доверия Qualcomm
- Безопасная загрузка и аутентификация образа
- Безопасная загрузка на Snapdragon 410
- Анализ цепочек безопасной загрузки Qualcomm
- msm8916-mainline/qhypstub
- Запуск процесса инициализации системы Android и полный анализ init.rc
- Язык инициализации Android