[Разработка под Android] Разделы памяти Android

Автор Сообщение
news_bot ®

Стаж: 6 лет 2 месяца
Сообщений: 27286

Создавать темы news_bot ® написал(а)
03-Мар-2021 20:31

В этой статье я расскажу основные разделы памяти AOSP для MTK и QCOM устройств.В отличие от ОС на компьютерах, смартфоны не имеют динамической разметки накопителя. Вместо этого вы найдете множество каких-то непонятных разделов с непонятными названиями. Давайте разбираться.Как посмотреть разделы памятиДва варианта прсмотра смонтированных (не всех) разделов накопителя на своем телефоне:
  • Установить Device Info HW и посмотреть разделы
  • Скачать Termux и ввести команду mount
Для просмотра всех разделов нужны или root-права, или терминал в TWRP. Так же вводите команду mount в терминале (Termux или терминал TWRP) и смотрите разделы.ЗагрузчикиЗагрузчик ОС предназначен для того, чтобы непосредственно загружать эту ОС. О том, как Android запускается, вы узнаете в моих следующих статьях.Как нам известно, Android имеет несколько альтернативных режимов загрузки. Подробнее о них вы узнаете в моей следующей статье.ABOOT (UBOOT на МТК) — первичный загрузчик. В этом разделе содержится низкоуровневое ПО для обработки нажатий кнопок питания и громкости. Каждая комбинация клавиш соответствует своему режиму загрузки.SBL — вторичный загрузчик. Его код выполняется после aboot и в зависимости от режима загрузки загружает или ядро — boot.img, или recovery boot, или fastboot.Основные разделыДля начала стоит отметить, что в Интернете информация про основные разделы накопителя давно устарела: после Project Treble добавился раздел vendor, а позже была выпущена arm64_ab архитектура с принципиально новой таблицей разделов и монтированием системного раздела в корень (SAR, System As Root). А еще позже производители обновили A-only — добавили еще один раздел и обновили рекавери. В этой статье я расскажу про все основные виды разметки памяти.BOOT — ядро Android.VENDOR — раздел, содержащий много бинарников и драйверов для всего и вся. Ранее все эти бинарники находились в системном разделе, с приходом Project Treble их отделили в отдельный раздел.PRODUCT — новый раздел (его добавили в конце 2019 года), содержащий предустановленные приложения и сервисы.SYSTEM — главный системный раздел. В нем содержатся фреймворки, множество файлов-пропов, fstab, оверлеи, RRO, ПО для работы с бинарниками из vendor. Ранее в этом разделе хранили еще и приложения (хранят и сейчас, но только самые важные).USERDATA — раздел данных пользователя, вмещает в себя еще три раздела — DATA (этот раздел есть везде, он хранит данные приложений), CACHE (кэш системы и приложений) и STORAGE (раздел, где вы храните свои фотографии и файлы, доступ в проводнике).Зная эти разделы, можно посмотреть на разметку памяти в целом.До прихода Android 8.1 и Project Treble таблица разделов выглядела так:
Blobs-in-system разметкаЗатем Project Treble принес нам новый раздел — vendor. Наша схема немного усложнилась:
Treble-compatible разметкаС приходом Treble мир увидел еще одну архитектуру — arm64_ab и новую усложненную разметку. Теперь низкоуровневый раздел recovery находится прямо в boot. Раздел cache убрали (вместо него оставили урезанный fota), а остальные системные разделы дублировали. Такая разметка явно занимает больше памяти, и на storage остается меньше места.Но весь подвох в том, что с такой архитектурой Android-устройства могут обновляться в фоне! Вы скачиваете обновление и продолжаете использовать свой телефон, а затем просто перезагружаетесь в новую систему, которая установилась на разделы-дубликаты. А в случае неудачного обновления вы загрузитесь в первую половину разделов.
AB разметкаРазметку старой архитектуры arm64_a не забросили. Производители добавили раздел product и примонтировали system в корень — system_root:
System-as-root разметкаSoС-специфичные разделыMODEM (RADIO на MTK) - модем телефона (baseband). Этот раздел отвечает за сигналы и на старых устройствах может управлять Wi-Fi, Bluetooth и GPS (на большинстве новых устройств они обрабатываются ядром). Модем — это мини-ОС для чипа сотовой радиосвязи, имеющего собственный процессор. Раздел модема особенный, потому что для работы кода modem в телефонах стоит собственный отдельный процессор, поэтому модем не входит в образ системы в ее собственном разделе.RIL (Radio Interface Layer) — низкоуровневый раздел-прослойка между ядром ОС и baseband. Задача RIL - преобразовать все телефонные запросы из среды телефонии Android и сопоставить их с соответствующими AT-командами модема и обратно. Набор команд AT используется для связи с модемом, то есть процессором основной полосы частот (BP), который должен иметь процессор на устройствах Android в дополнение к обычному процессору, то есть процессору приложений (AP).TZ (TrustZone) - раздел, использующийся на ARM-архитектурах для дополнительных функций безопасности. Он объединяет ключ шифрования пользователя с аппаратным ключом, сгенерированным процессором шифрования, чтобы затруднить нарушение безопасности.RPM (Resource & Power Management), который запускает выполнение Primary / Primitive BootLoader (PBL) в BootROM - контролирует питание радио, модема и т. Д.DSP (Digital Signal Processor) - раздел на Qualcomm-устройствах для помощи в таких вещах, как плавное воспроизведение видео (процессор мультимедиа и датчиков в реальном времени).HYP (HyperVisor) - гипервизор. Нужен для поддержки виртуализации.PERSIST — хранит драйвера датчиков Wi-Fi, Bluetooth, LTE/CDMA/GSM и Hotspot. RECOVERY — раздел с меню восстановления.OEM - раздел, включающий в себя небольшие настройки производителя оригинального оборудования и бренда мобильных телефонов) во время обновлений по воздуху.FOTA — раздел, куда скачиваются OTA обновления. Но в большинстве случаев вместо fota эти обновления загружаются в раздел cache.FSC - файлы cookie файловой системы модема.SSD (Secure Software Download) — раздел памяти для хранения некоторых зашифрованных ключей. Эти ключи проверяются при скачивании обновлений ОС.RSADEVINFO - информация об устройстве, включая:
is_unlocked
is_tampered
is_verified
charger_screen_enabled
display_panel
bootloader_version
radio_version
Содержимое этого раздела отображается командой fastboot oem device-info. Перед загрузкой загрузчик проверяет данные именно этого раздела.FRP (Factory Reset Protection) — Специальный раздел, созданный для сохранения информации об аккаунтах производителей смартфона (Например, Mi Account на Xiaomi). Хитрость заключается в том, что при сброче настроек FRP не стирается, поэтому избавиться от входа в ми аккаунт на украденном сяоми у вас не получится.DEVCFG - используется TZ для обновлений.LKSECAPP - онлайн-проверка и обновление компонентов RPM.TZLIMITS - драйвер Qualcomm Limits Management Hardware. Хранит метаданные для вторичного загрузчика SBL.SYSCFG - Регулятор Qualcomm Core Power Reduction для повышения производительности и энергосбережения процессора приложений за счет управления напряжением.DIP, MDTP - проверка загрузки. Данный раздел реализует технологию Qualcomm SafeSwitch для блокировки и отслеживания украденных телефонов.CMNLIB, KEYMASTER, SEC - верификация загрузки по хэшу. Если хэш ОС не совпадает с хэшем, пописанным в keymaster, ваш телефон не загрузит ОС. Это главная причина, почему нельзя прошить кастомную прошивку на заблокированный загрузчик.OEMKEYSTORE - относится к data Full Disc Encryption (FDE).MCFG (Modem Configuration) - на устройствах с двумя SIM-картами загружает файлы MBN (двоичные файлы модема).SPLASH - заставка или загрузочный логотип, который появляется при загрузке устройства на этапе ABOOT. После него уже подгружается бутанимация «Powered by Android».CHGLOGO - тот самый экран зарядки разряженного телефона.MSADP, APDP, DPO - политика отладки.EFS — раздел, содержащий информацию про IMEI, SN и IMEI SV.
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_razrabotka_pod_android (Разработка под Android), #_android, #_partitions, #_partition_table, #_razmetka_pamjati (разметка памяти), #_razrabotka_pod_android (
Разработка под Android
)
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 20-Апр 08:29
Часовой пояс: UTC + 5