Устройства Android содержат несколько разделов или определенных секций памяти, предназначенных для размещения конкретных частей программного обеспечения устройства. Каждый раздел содержит образ раздела (файл IMG) или снимок всего программного обеспечения для этого раздела. На рисунке 1 показана структура основных разделов на устройстве:

Рисунок 1. Схема расположения основных перегородок.
Разделительные перегородки подразделяются на три категории:
Системные разделы — это разделы, которые обновляются при обновлении операционной системы и других компонентов.
system,bootиinit_bootявляются основными системными разделами.Разделы поставщика содержат код, специфичный для устройства и оборудования, который может никогда не обновляться после первоначального выпуска. Разделы
vendor,vendor_bootиodmявляются основными разделами поставщика.Необновляемые разделы — это разделы, содержимое которых либо не обновляется, либо обновляется данными пользователя.
Код в системном и сторонних разделах может взаимодействовать, используя стабильный интерфейс, называемый интерфейсом поставщика (VINTF) .
Системные разделы
Ниже приведён список всех системных разделов и их назначение:
bootраздел. Этот раздел содержит универсальный образ ядра (GKI). Этот раздел также содержит универсальный образ оперативной памяти (ramdisk) на устройствах, выпущенных под управлением Android 12 и более ранних версий. Для получения дополнительной информации об универсальном образе оперативной памяти см. раздел «Содержимое универсального образа оперативной памяти» .Раздел
init_boot(Android 13 и выше). Этот раздел содержит универсальный образ оперативной памяти (ramdisk). В Android 11 и 12 универсальный образ оперативной памяти находится вbootразделе.systemраздел. Этот раздел содержит образ системы, используемый для OEM-продуктов.Раздел
system_ext. Этот раздел содержит системные ресурсы и проприетарные системные модули, расширяющие общий образ системы вsystemразделе.Раздел
system_dlkm. Этот раздел содержит модули GKI. Дополнительную информацию об этом разделе см. в разделе «Реализация раздела для модулей GKI» .Раздел, относящийся
product. Этот раздел может содержать модули, специфичные для конкретного продукта, которые не входят в состав других разделов.Раздел
pvmfw. В этом разделе хранится защищенное программное обеспечение виртуальной машины (pvmfw), которое является первым кодом, выполняемым в защищенных виртуальных машинах. Для получения дополнительной информации см. раздел «Защищенное программное обеспечение виртуальной машины» .Раздел
generic_bootloader. Этот раздел содержит универсальный загрузчик.
Разделы поставщика
Ниже приведён список всех разделов, созданных поставщиками, и их назначение:
Раздел
vendor_boot. Этот раздел содержит загрузочный код, специфичный для конкретного производителя. Для получения дополнительной информации см. раздел «Загрузочные разделы производителя» .Раздел
recovery. В этом разделе хранится образ восстановления, который загружается во время процесса обновления по беспроводной сети (OTA). Устройства, поддерживающие бесшовные обновления, могут хранить образы восстановления в виде оперативной памяти (ramdisk), содержащейся в образеbootилиinit_boot. Для получения дополнительной информации о бесшовных обновлениях см. раздел A/B (бесшовные) обновления .Раздел
misc. Этот раздел используется разделом восстановления и имеет размер 4 КБ или больше.Раздел
vbmeta. Этот раздел содержит информацию о проверенной загрузке для всех разделов. Эта информация подтверждает, что образы, установленные в каждом разделе, являются доверенными. Для получения дополнительной информации о проверенной загрузке см. раздел «Проверенная загрузка» .Раздел
vendor. Этот раздел содержит все исполняемые файлы, специфичные для конкретного поставщика и недостаточно универсальные для распространения в AOSP.Раздел
vendor_dlkm. Этот раздел содержит модули ядра от поставщика. Хранение модулей ядра от поставщика в этом разделе вместо разделаvendorпозволяет обновлять модули ядра без обновления разделаvendor. Для получения дополнительной информации см. разделы Vendor и ODM DKLM .Раздел
odm. Этот раздел содержит оригинальные модификации, внесенные производителем оригинального оборудования (ODM) в пакеты поддержки плат (BSP) поставщиков систем на кристалле (SoC). Такие модификации позволяют ODM заменять или модифицировать компоненты SoC, а также реализовывать модули ядра для компонентов, демонов и функций, специфичных для конкретной платы, на уровнях аппаратной абстракции (HAL). Этот раздел является необязательным. Как правило, он используется для хранения модификаций, позволяющих устройствам использовать один образ поставщика для нескольких вариантов аппаратного обеспечения. Для получения дополнительной информации см. разделы ODM .Раздел
odm_dlkm. Этот раздел предназначен для хранения модулей ядра ODM. Хранение модулей ядра ODM в этом разделе, а не в разделеodm, позволяет обновлять модули ядра ODM без обновления разделаodm. Для получения дополнительной информации см. разделы Vendor и ODM DKLM .Раздел
radio. Этот раздел содержит образ радиомодуля и необходим только для устройств, в которых радиомодуль имеет специализированное программное обеспечение в отдельном разделе.
Необновляемые разделы
Ниже приведён список всех необновляемых разделов и их назначение:
Раздел
cache. Этот раздел содержит временные данные и является необязательным, если ваше устройство использует бесшовные обновления. Этот раздел не обязательно должен быть доступен для записи из загрузчика, но должен быть стираемым. Размер раздела зависит от типа устройства и наличия свободного места вuserdata; как правило, достаточно 50–100 МБ.Раздел
userdata. Этот раздел содержит установленные пользователем приложения и данные, включая данные о настройках.Раздел
metadata. Если ваше устройство использует шифрование метаданных , этот раздел содержит ключ шифрования метаданных. Размер этого раздела составляет 16 МБ или больше, он не зашифрован, и его данные не сохраняются в виде снимков. Этот раздел удаляется при сбросе устройства до заводских настроек.
Правила и рекомендации по обновлению раздела имущества.
Мы рекомендуем обновить все системные разделы целиком, а также все разделы, относящиеся к конкретному производителю. Обновив весь набор разделов, вы сможете проверить, остаются ли интерфейсы между образами в каждом разделе стабильными.
Независимо от способа обновления разделов, следующие разделы необходимо обновить из-за тесной взаимосвязи зависимостей и отсутствия стабильных API:
- Разделы
bootиsystem_dlkm - разделы
init_boot,system,system_extиproduct
Динамические разделы
Устройства под управлением Android 11 и выше поддерживают динамические разделы — систему разделения пользовательского пространства Android, позволяющую создавать, изменять размер или удалять разделы во время беспроводных обновлений (OTA). Дополнительную информацию см. в разделе «Динамические разделы» .
Варианты продукции Soong
Система сборки Soong использует варианты образов для разделения зависимостей сборки. Нативные модули ( /build/soong/cc ) могут изменять модули системных процессов на основной вариант, а модули процессов сторонних разработчиков — на вариант сторонних разработчиков; модуль в одном варианте образа не может быть связан с другими модулями в другом варианте образа.
В Android 12 и выше системный модуль с vendor_available: true создает вариант поставщика в дополнение к основному варианту. Для создания варианта продукта необходимо определить параметр product_available: true . Некоторые библиотеки VNDK без product_available: true недоступны для модулей продукта.