Содержание статьи
- Немного теории
- Magisk
- Устанавливаем
- Вариант 1: смартфон рутован
- Вариант 2: смартфон не рутован
- Удаление Magisk
- Модули
- ViPER4Android
- Xposed framework
- Terminal debloater
- Android Runtime Optimization
- Другие модули
- Volume Steps Increase
- Google Dialer
- Terminal App Systemizer
- Universal init.d enabler
- Mute UI
- F-Droid Privileged Extension installer
- Пишем собственный модуль
- Заключение
Немного теории
Чтобы понять принцип работы Magisk, начнем с так называемого несистемного root (systemless root).
Традиционно, чтобы получить root на смартфоне или планшете, необходимо было разместить файл su (который отвечает за повышение привилегий) в каталог /system/xbin/, то есть в системный раздел. Это действие изменяло его хеш-сумму, из-за чего терялась возможность установки ОТА-обновлений.
Более того, с выходом Marshmallow Google позаботилась о безопасности, основы которой были заложены в Lollipop, сделав невозможной корректную установку su в /system. Chainfire, разработчик SuperSU, начал поиск обходных путей, результат которого стал довольно неожиданным.
Вместо того чтобы размещать su в /system, он внедрил его в boot-раздел, содержащий ядро и так называемый RAM-диск. Последний представляет собой образ файловой системы, который загружается в оперативку на стадии начальной загрузки Android. RAM-диск содержит базовые компоненты системы, которые должны быть запущены еще до того, как раздел /system будет подключен.
Оказалось, что если внедрить su прямо в RAM-диск, то можно одним махом обойти все защитные механизмы Android и, кроме того, обеспечить нормальную работу OTA. Такой способ рутинга получил название systemless root (несистемный root) и стал основным в SuperSU для устройств, работающих на Android Marshmallow и Nougat. Стоит отметить, что этот способ также применим и для устройств Samsung, работающих на версии 5.1 (или новее).
Несистемный root имеет свои преимущества и недостатки. Основной недостаток в том, что он не работает на устройствах с заблокированным загрузчиком по умолчанию, — конечно, могут быть и обходные пути, но они специфичны для каждого устройства.
Однако несистемный root универсальнее традиционного. Во многих случаях он не ломает OTA-обновления. Несистемный способ «чище», так как он не добавляет и не изменяет файлы в разделе /system. Это означает, что удалить или скрыть root будет намного легче. После сброса к заводским настройкам возможность root-доступа будет удалена.
Последнее преимущество — это, конечно, палка о двух концах. Большинство пользователей предпочло бы, чтобы root-доступ все же остался, но для восстановления root-доступа нужно будет просто прошить файл SuperSU.
Magisk
Информация, изложенная выше, преследует одну цель — помочь понять, что systemless — это удобно и не страшно. Ведь Magisk использует именно такой способ работы с системой. Далее мы остановимся на особенностях Magisk более подробно.
Итак, Magisk — это утилита, которая патчит раздел boot и дает возможность устанавливать различные системные моды в режиме systemless. Она позволяет запускать скрипты на разных этапах монтирования и подменять файлы (например, build.prop) еще до монтирования раздела /data, скрывать наличие root и Xposed от приложений и сервисов типа Android Pay, Samsung Pay или Сбербанк Онлайн, а также спокойно получать OTA-обновления стоковых прошивок.
Однако главное преимущество Magisk в том, что при модификации RAM-диска он прописывает в него лишь загрузчик модификаций, тогда как сами моды хранятся в разделах /data и /cache. В результате после перепрошивки не нужно будет применять все моды заново, достаточно всего лишь установить Magisk, и он загрузит их все автоматически.
Также стоит отметить и другие возможности: подмену состояния загрузчика для других прог и состояния KNOX для устройств Samsung; несколько точек входа/инъекций для разработчиков, надежно гарантирующие паузы при загрузке до тех пор, пока не сработают все изменения; режим post-fs (cache), который срабатывает до того, как монтируется раздел /data, и позволяет, например, менять bootanimation; удаление dm-verity, forceencrypt; встроенный BusyBox, встроенная возможность подмены файла /etc/hosts (для блокирования рекламы).
Устанавливаем
Для работы Magisk необходим Android 5.0 и выше, разблокированный загрузчик и кастомный рекавери. Magisk не работает на смартфонах Pixel, Pixel XL и некоторых Asus. Может работать некорректно (не будет работать Magisk Hide и, как результат, SafetyNet) на стоковых прошивках Samsung и их модах.
Может быть два варианта установки Magisk в зависимости от того, есть ли на смартфоне root.
Вариант 1: смартфон рутован
Устанавливаем Magisk Manager из Google Play. Запускаем приложение, соглашаемся дать ему права root и устанавливаем, следуя подсказкам приложения.
Вариант 2: смартфон не рутован
Скачиваем актуальный установочный архив Magisk и прошиваем с помощью TWRP. Если есть желание использовать SuperSU вместо встроенного в Magisk менеджера root-доступа, то шьем SuperSU перед Magisk.
Стоит иметь в виду: если требуется легкое скрытие рута и минимум проблем с SafetyNet (то есть минимум проблем с Android/Samsung Pay, банками, играми), следует использовать root, встроенный в Magisk. Ты можешь справедливо заметить, что SuperSU можно скрыть с помощью suhide.zip, но он не всегда работает так, как нам хочется. В некоторых случаях он вызывает bootloop и необходимость восстановления из бэкапа.
Установка Magisk через TWRP и первый запуск |
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»