todo/root/Magisk.md
loop-uh 08b4491545
Some checks failed
Published content check / validate (push) Failing after 3s
Завершить переезд базы знаний на Forgejo
Обновить правила репозитория и подписи исходников в 99 заметках, не затрагивая пользовательские незакоммиченные файлы. Сделать Forgejo Actions содержательным: проверять опубликованный commit, а не пустое рабочее дерево после checkout.
2026-08-07 08:27:28 +03:00

89 lines
12 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
date: 2026-07-18
tags:
- root
- android
- magisk
- systemless
aliases:
- Magisk
- магиск
- systemless root
link: https://github.com/topjohnwu/Magisk
---
# 🎭 Magisk — systemless-root и модули для Android
> [!info] О чём заметка
> **Magisk** — самый популярный способ получить **root-права на Android**, работающий «поверх» системы (в userspace). Заметка объясняет, что это такое, зачем нужен и как устроен (systemless-патч загрузочного образа, модули, Zygisk, скрытие root). Это **обзорная (теоретическая)** заметка; пошаговая установка вынесена в [[root/Magisk-install|Установку Magisk]]. Родственный, но иначе устроенный подход — root **через ядро** — описан в [[root/ReSukiSU|ReSukiSU/KernelSU]]; сравнение двух подходов — в разделе [[root/ReSukiSU#KernelSU/ReSukiSU против Magisk: чем отличается и когда что выбрать|«KernelSU/ReSukiSU против Magisk»]].
## TL;DR
- **Magisk** (автор — topjohnwu / John Wu) даёт root, **патча загрузочный образ** (`boot.img` или `init_boot.img`) и подгружая суперпользователя при загрузке. Это **userspace-root**, «надстройка над системой».
- Ключевая идея — **systemless**: системный раздел физически не меняется, модификации накладываются поверх. Поэтому их легко откатить.
- Возможности: выдача root приложениям, **модули** (systemless-моды), **Zygisk** (код в процессах приложений), **DenyList/скрытие** root от банков и античитов.
- **Ставится почти на любое устройство** и не требует GKI-совместимого ядра — в отличие от [[root/ReSukiSU|KernelSU]]. Зато обнаруживается относительно легче.
- Пошаговая установка (требования, патч образа, Samsung, OTA) — в [[root/Magisk-install|отдельной заметке]].
## Что такое Magisk и чем он отличается от KernelSU
**Root (суперпользователь)** на Android — это права делать то, что обычно запрещено: менять системные файлы, блокировать рекламу на уровне системы, удалять предустановленные приложения, тонко настраивать сеть. Общее введение в root есть в [[root/ReSukiSU#Что такое «root через ядро» и при чём тут KernelSU|обзорной заметке про KernelSU]]; здесь — про конкретно магисковый подход.
Magisk получает эти права так: он **патчит загрузочный образ** устройства (`boot.img`/`init_boot.img`) — точнее, встроенный в него **ramdisk** (маленькую стартовую файловую систему). При загрузке магисковый код (`magiskinit`) стартует раньше системы, поднимает демон и выдаёт root. То есть суперпользователь работает **в пользовательском пространстве (userspace), поверх системы**.
**Проще говоря:** Magisk — это «заплатка на загрузчик системы», которая при каждом старте подсовывает Android свой слой с правами root. Само ядро Linux при этом не трогается.
Ключевое отличие от [[root/ReSukiSU|KernelSU/ReSukiSU]]: там root встроен **в само ядро**, здесь — **поверх системы**. Отсюда практическая разница:
- **Плюс Magisk:** ставится почти на всё, не зависит от версии/сборки ядра (GKI не обязателен). Именно поэтому Magisk часто оказывается практичнее на **кастомных ROM** вроде [[root/ReSukiSU-install#Почему LKM не грузится на кастомном ROM (LineageOS и т.п.)|LineageOS]], где готовый модуль KernelSU не встаёт в самосборное ядро.
- **Минус Magisk:** раз это «надстройка сверху», проверяющим приложениям её относительно легче обнаружить, чем root в ядре.
Полное сравнение с таблицей и разбором «когда что выбрать» — в [[root/ReSukiSU#KernelSU/ReSukiSU против Magisk: чем отличается и когда что выбрать|заметке про ReSukiSU]].
## Что значит «systemless» и зачем это нужно
**Systemless** — центральное понятие Magisk. Модификации применяются **без изменения системного раздела**: физически `/system` остаётся нетронутым, а Magisk лишь **накладывает поверх него слой изменений** (через overlay/bind-mount). Система «видит» изменённые файлы, но на диске оригинал цел.
Зачем так:
- **Легко откатить** — отключил модуль, и всё вернулось.
- **Не ломает проверки целостности раздела** так грубо, как прямая правка `/system`.
- **Переживает часть обновлений** проще (хотя обновление прошивки всё равно затирает патч загрузочного образа — см. [[#Root и обновления прошивки (OTA)|раздел про OTA]]).
## Возможности
### Модули (systemless-моды)
**Модуль Magisk** — это пакет, который **накладывает свои файлы поверх системы** без её изменения. Так ставят системные твики, шрифты, аудио-моды, правки `build.prop`, hosts-файлы для блокировки рекламы и т.д. Модули включаются/выключаются в приложении Magisk и не портят систему необратимо.
### Zygisk
**Zygisk** — «Magisk внутри Zygote». Zygote — процесс Android, из которого **порождаются все приложения**. Zygisk позволяет модулям **выполнять код в контексте каждого приложения**. На этом механизме работает, например, [[root/LSPosed|LSPosed]] — фреймворк для перехвата методов приложений в рантайме. Zygisk также нужен для качественного **скрытия root**.
### DenyList и скрытие root
**DenyList** — список приложений, от которых Magisk **прячет факт root и своё присутствие** (отключает в их процессах Zygisk-инъекции и root). Используется, чтобы банковские, платёжные приложения и игры с античитом не видели root.
> [!warning] Скрытие root — «гонка вооружений», гарантий нет
> Сокрытие (DenyList + Zygisk-модули вроде Shamiko, плюс обход **Play Integrity**) работает не всегда: системы проверки постоянно обновляются. Это **непрерывное соревнование**, поэтому 100%-й гарантии обхода конкретной проверки нет ни у Magisk, ни у [[root/ReSukiSU#SUSFS — скрытие root от приложений|SUSFS в KernelSU]]. Для kernel-root скрытие в среднем даётся легче, но абсолютной защиты не даёт никто.
## Root и обновления прошивки (OTA)
Как и любой root, живущий в загрузочном разделе, **Magisk слетает после обновления прошивки** — OTA перезаписывает `boot`/`init_boot`, и патч исчезает. Это **свойство подхода**, а не баг конкретного решения; та же механика описана для [[root/ReSukiSU-install#Root и обновления прошивки (OTA, кастомные ROM)|KernelSU/ReSukiSU]].
На практике это значит, что root приходится **накладывать заново после каждого апдейта**. На современных **A/B-устройствах** это делается прямо на телефоне через функцию «Install to Inactive Slot (After OTA)» — пошагово процедура описана в [[root/Magisk-install#Root и обновления прошивки (OTA): как не терять root|Установке Magisk]].
## 📚 См. также
- [[root/Magisk-install|Установка Magisk]] — пошагово: требования, проверка Ramdisk, патч `boot`/`init_boot`, Magisk in Recovery, Samsung, удаление, OTA
- [[root/LSPosed|LSPosed и Xposed]] — модификация приложений в рантайме поверх Zygisk (нужен root с включённым Zygisk)
- [[Zapret/magisk-zapret2|Zapret2 как Magisk-модуль]] — практический пример «зачем root»: системный обход блокировок (DPI) для всех приложений без VPN
- [[root/ReSukiSU|ReSukiSU — форк SukiSU для root через ядро]] — альтернативный подход (root в ядре), с разделом [[root/ReSukiSU#KernelSU/ReSukiSU против Magisk: чем отличается и когда что выбрать|сравнения с Magisk]]
- [[Zapret/android|Обход блокировок на Android]] — смежная тема: DPI и блокировки на телефоне (root не требуется, но иногда с ним удобнее)
- 🔗 [Репозиторий Magisk на GitHub](https://github.com/topjohnwu/Magisk) — исходники, релизы (в т.ч. Canary)
- 🔗 [Официальная документация Magisk](https://topjohnwu.github.io/Magisk/) — гайды и внутреннее устройство
---
> [!quote] 🤖 Эти статьи открыты — можно обучать на них ИИ
> При желании вы можете натренировать ИИ на наших статьях. Исходное форматирование и скачивание всего репозитория одним zip-архивом доступны в Forgejo: [исходник этой заметки](https://git.zapret.moe/zapretdiscordyoutube/todo/src/branch/main/root/Magisk.md) · [весь репозиторий](https://git.zapret.moe/zapretdiscordyoutube/todo/src/branch/main).