Модульная система: 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 для «наложения» содержимого модуля на системные каталоги:
- Модули размещаются в
/data/adb/modules/<ID-модуля>/, где каталогsystem/соответствует системному разделу. - При загрузке ShizuSU обходит все включённые модули и bind mount каталог
system/каждого модуля в соответствующий путь внутри/system. - Файлы с одинаковыми именами: файлы модуля переопределяют системные файлы.
- Каталоги с одинаковыми именами: каталог модуля объединяется с системным каталогом (файлы модуля накладываются сверху).
- Удаление системных файлов: монтируя соответствующий путь из каталога модуля как пустой каталог (whiteout), системный файл «скрывается».
- Замена системных каталогов: монтируя соответствующий путь как пустой каталог, заменяется весь каталог.
Весь процесс лишь читает каталоги модулей и системные каталоги и не изменяет физические разделы — в этом и заключается смысл systemless (без изменения системы).
Отличия от официального KernelSU
| Официальный KernelSU | ShizuSU (на основе 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 могут начать сразу. Подробнее см. Руководство по разработке модулей.
