Skip to content

Модульная система: Magic Mount ​

ShizuSU — форк второго поколения SukiSU-Ultra; его модульная система напрямую наследует решение Magic Mount от SukiSU-Ultra (из реализации Magisk от 5ec1cff).

Magic Mount — единственный механизм монтирования модулей в ShizuSU: ShizuSU не использует архитектуру OverlayFS metamodule официального KernelSU, поэтому не существует сосуществования «двух модульных систем». После установки ShizuSU модули, изменяющие файлы /system, работают из коробки — устанавливать metamodule не требуется.

Каркас KernelSU и модульная система Magic Mount ​

ShizuSU состоит из двух параллельных основных подсистем с чёткими, непересекающимися обязанностями:

ПодсистемаОбязанностьОписание
Каркас ядра KernelSUАвторизация и управление rootРаботает в пространстве ядра: авторизация su, контроль доступа по белому списку, ограниченные root-права (uid / gid / groups / capabilities / SELinux), интерфейсы уровня ядра
Модульная система Magic MountУстановка модулей и systemless-монтированиеНакладывает каталог system модуля на системный раздел через bind mount, обеспечивая модификацию без изменения системы

Разделение труда можно резюмировать так:

  • Каркас KernelSU отвечает на вопрос «кому доступен root»: выдача, изоляция и аудит su происходят в пространстве ядра и не могут быть обойдены из пользовательского пространства.
  • Magic Mount отвечает на вопрос «как модули изменяют систему»: монтирование, наложение, объединение и скрытие файлов модулей выполняет Magic Mount, не касаясь физических разделов.

Они находятся в параллельных отношениях, а не во вложенных: каркас KernelSU обеспечивает root-возможности, Magic Mount — возможности монтирования модулей, и вместе они формируют полный root-опыт ShizuSU.

Почему Magic Mount? ​

SukiSU-Ultra (и наследующий его ShizuSU) выбрал Magic Mount вместо архитектуры OverlayFS metamodule официального KernelSU, потому что:

  • Более стабильная основа: Magic Mount происходит из зрелой реализации Magisk (5ec1cff), долго проверенной на множестве устройств и в экосистеме модулей.
  • Лучшая совместимость модулей: модули экосистемы Magisk, зависящие от монтирования каталога system, можно использовать напрямую — без metamodule и без конвертации.
  • Меньше поверхность обнаружения: монтирование выполняется через bind mount; сам ShizuSU не зависит от особенностей OverlayFS, поэтому приложениям сложнее его детектировать.
  • Проще развертывание: не нужно устанавливать meta-overlayfs и другие metamodule — модули работают сразу после установки ShizuSU.

Как работает Magic Mount ​

Magic Mount использует bind mount для «наложения» содержимого модуля на системные каталоги:

  1. Модули размещаются в /data/adb/modules/<ID-модуля>/, где каталог system/ соответствует системному разделу.
  2. При загрузке ShizuSU обходит все включённые модули и bind mount каталог system/ каждого модуля в соответствующий путь внутри /system.
  3. Файлы с одинаковыми именами: файлы модуля переопределяют системные файлы.
  4. Каталоги с одинаковыми именами: каталог модуля объединяется с системным каталогом (файлы модуля накладываются сверху).
  5. Удаление системных файлов: монтируя соответствующий путь из каталога модуля как пустой каталог (whiteout), системный файл «скрывается».
  6. Замена системных каталогов: монтируя соответствующий путь как пустой каталог, заменяется весь каталог.

Весь процесс лишь читает каталоги модулей и системные каталоги и не изменяет физические разделы — в этом и заключается смысл systemless (без изменения системы).

Отличия от официального KernelSU ​

Официальный KernelSUShizuSU (на основе SukiSU-Ultra)
Механизм монтирования модулейOverlayFS (требуется metamodule, например meta-overlayfs)Magic Mount (встроенный, metamodule не нужен)
Модули, изменяющие /systemТребуется сначала установить metamoduleРаботают напрямую
Совместимость с модулями MagiskЧастичная (зависит от metamodule)Прямая совместимость

Примечание о миграции

Если вы использовали официальный KernelSU и установили metamodule (например, meta-overlayfs), после перехода на ShizuSU он больше не нужен: просто устанавливайте и используйте обычные модули напрямую.

Разработка модулей ​

Структура модулей ShizuSU полностью совпадает с Magisk (module.prop, system/, post-fs-data.sh, service.sh и т.д.), поэтому разработчики модулей Magisk могут начать сразу. Подробнее см. Руководство по разработке модулей.

Выпускается под лицензией GPL3.