🎭 Magisk — systemless-root и модули для Android
О чём заметка
Magisk — самый популярный способ получить root-права на Android, работающий «поверх» системы (в userspace). Заметка объясняет, что это такое, зачем нужен и как устроен (systemless-патч загрузочного образа, модули, Zygisk, скрытие root). Это обзорная (теоретическая) заметка; пошаговая установка вынесена в Установку Magisk. Родственный, но иначе устроенный подход — root через ядро — описан в KernelSU; сравнение двух подходов — в разделе ReSukiSU против Magisk».
TL;DR
- Magisk (автор — topjohnwu / John Wu) даёт root, патча загрузочный образ (
boot.imgилиinit_boot.img) и подгружая суперпользователя при загрузке. Это userspace-root, «надстройка над системой». - Ключевая идея — systemless: системный раздел физически не меняется, модификации накладываются поверх. Поэтому их легко откатить.
- Возможности: выдача root приложениям, модули (systemless-моды), Zygisk (код в процессах приложений), DenyList/скрытие root от банков и античитов.
- Ставится почти на любое устройство и не требует GKI-совместимого ядра — в отличие от KernelSU. Зато обнаруживается относительно легче.
- Пошаговая установка (требования, патч образа, Samsung, OTA) — в отдельной заметке.
Что такое Magisk и чем он отличается от KernelSU
Root (суперпользователь) на Android — это права делать то, что обычно запрещено: менять системные файлы, блокировать рекламу на уровне системы, удалять предустановленные приложения, тонко настраивать сеть. Общее введение в root есть в обзорной заметке про KernelSU; здесь — про конкретно магисковый подход.
Magisk получает эти права так: он патчит загрузочный образ устройства (boot.img/init_boot.img) — точнее, встроенный в него ramdisk (маленькую стартовую файловую систему). При загрузке магисковый код (magiskinit) стартует раньше системы, поднимает демон и выдаёт root. То есть суперпользователь работает в пользовательском пространстве (userspace), поверх системы.
Проще говоря: Magisk — это «заплатка на загрузчик системы», которая при каждом старте подсовывает Android свой слой с правами root. Само ядро Linux при этом не трогается.
Ключевое отличие от ReSukiSU: там root встроен в само ядро, здесь — поверх системы. Отсюда практическая разница:
- Плюс Magisk: ставится почти на всё, не зависит от версии/сборки ядра (GKI не обязателен). Именно поэтому Magisk часто оказывается практичнее на кастомных ROM вроде LineageOS, где готовый модуль KernelSU не встаёт в самосборное ядро.
- Минус Magisk: раз это «надстройка сверху», проверяющим приложениям её относительно легче обнаружить, чем root в ядре.
Полное сравнение с таблицей и разбором «когда что выбрать» — в заметке про ReSukiSU.
Что значит «systemless» и зачем это нужно
Systemless — центральное понятие Magisk. Модификации применяются без изменения системного раздела: физически /system остаётся нетронутым, а Magisk лишь накладывает поверх него слой изменений (через overlay/bind-mount). Система «видит» изменённые файлы, но на диске оригинал цел.
Зачем так:
- Легко откатить — отключил модуль, и всё вернулось.
- Не ломает проверки целостности раздела так грубо, как прямая правка
/system. - Переживает часть обновлений проще (хотя обновление прошивки всё равно затирает патч загрузочного образа — см. раздел про OTA).
Возможности
Модули (systemless-моды)
Модуль Magisk — это пакет, который накладывает свои файлы поверх системы без её изменения. Так ставят системные твики, шрифты, аудио-моды, правки build.prop, hosts-файлы для блокировки рекламы и т.д. Модули включаются/выключаются в приложении Magisk и не портят систему необратимо.
Zygisk
Zygisk — «Magisk внутри Zygote». Zygote — процесс Android, из которого порождаются все приложения. Zygisk позволяет модулям выполнять код в контексте каждого приложения. На этом механизме работает, например, LSPosed — фреймворк для перехвата методов приложений в рантайме. Zygisk также нужен для качественного скрытия root.
DenyList и скрытие root
DenyList — список приложений, от которых Magisk прячет факт root и своё присутствие (отключает в их процессах Zygisk-инъекции и root). Используется, чтобы банковские, платёжные приложения и игры с античитом не видели root.
Скрытие root — «гонка вооружений», гарантий нет
Сокрытие (DenyList + Zygisk-модули вроде Shamiko, плюс обход Play Integrity) работает не всегда: системы проверки постоянно обновляются. Это непрерывное соревнование, поэтому 100%-й гарантии обхода конкретной проверки нет ни у Magisk, ни у SUSFS в KernelSU. Для kernel-root скрытие в среднем даётся легче, но абсолютной защиты не даёт никто.
Root и обновления прошивки (OTA)
Как и любой root, живущий в загрузочном разделе, Magisk слетает после обновления прошивки — OTA перезаписывает boot/init_boot, и патч исчезает. Это свойство подхода, а не баг конкретного решения; та же механика описана для ReSukiSU.
На практике это значит, что root приходится накладывать заново после каждого апдейта. На современных A/B-устройствах это делается прямо на телефоне через функцию «Install to Inactive Slot (After OTA)» — пошагово процедура описана в Установке Magisk.
📚 См. также
- Установка Magisk — пошагово: требования, проверка Ramdisk, патч
boot/init_boot, Magisk in Recovery, Samsung, удаление, OTA - LSPosed и Xposed — модификация приложений в рантайме поверх Zygisk (нужен root с включённым Zygisk)
- Zapret2 как Magisk-модуль — практический пример «зачем root»: системный обход блокировок (DPI) для всех приложений без VPN
- ReSukiSU — форк SukiSU для root через ядро — альтернативный подход (root в ядре), с разделом сравнения с Magisk
- Обход блокировок на Android — смежная тема: DPI и блокировки на телефоне (root не требуется, но иногда с ним удобнее)
- 🔗 Репозиторий Magisk на GitHub — исходники, релизы (в т.ч. Canary)
- 🔗 Официальная документация Magisk — гайды и внутреннее устройство
🤖 Эти статьи открыты — можно обучать на них ИИ
При желании вы можете натренировать ИИ на наших статьях. Исходное форматирование и скачивание всего репозитория одним zip-архивом доступны в Forgejo: исходник этой заметки · весь репозиторий.