Скажи, ты когда-нибудь вносил изменения в прошивку? Не просто Xposed, а куда более низкоуровневые — например, менял /system/build.prop, удалял системные приложения, устанавливал ViPER4Android, подменял /system/hosts, чтобы заблокировать рекламу. Если ответ «да», то ты не понаслышке знаком с ситуацией, когда одно неверное движение превращает твой смартфон в кирпич, а после обновления системы приходится все делать заново. К счастью, все эти проблемы можно решить, полностью автоматизировав внесение изменений и обезопасив себя от случайных модификаций.
 

Немного теории

Чтобы понять принцип работы 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 и первый запуск
Установка Magisk через TWRP и первый запуск
Установка Magisk через TWRP и первый запуск
Установка Magisk через TWRP и первый запуск
Установка Magisk через TWRP и первый запуск

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии