Почти каждый пользователь Android, который хоть немного интересовался возможностями системы, слышал про root, но не всегда понимает что это, зачем этом и как это установить. В данном материале я отвечу на эти вопросы, за исключением установки, потому что вывод из всего нижеперечисленного - "root - дыра в безопасности, устанавливать его можно только тем, кто четко понимает, зачем и для чего ему нужен root"."Root/rooting/рутирование" в Android относится к процессу получения повышенных привилегий (root-прав) на устройстве, что позволяет пользователям получить доступ и контроль над файловой системой и компонентами операционной системы на более глубоком уровне, чем обычным пользователям.
Технически root в Android означает получение суперпользовательских (или администраторских) прав на уровне операционной системы. При рутировании устанавливается программное обеспечение, такое как Superuser (обычно сокращенно как su), которое действует как мост между обычными приложениями и суперпользовательскими правами. Когда приложение запрашивает выполнение команды с повышенными привилегиями, su перехватывает запрос и предоставляет необходимые права.Кастомные recovery и прошивки: Получение root-доступа часто сопровождается установкой кастомного recovery, такого как TWRP (Team Win Recovery Project). Это позволяет пользователям создавать резервные копии системы, устанавливать кастомные ROM и прошивки, а также применять различные системные манипуляции.
Root-доступ позволяет пользователю выполнять системные вызовы и изменять библиотеки, что дает возможность вносить изменения в ядро операционной системы и другие компоненты.При рутировании устройства может потребоваться изменение настроек SELinux, системы обеспечения безопасности в Android. Это может снизить уровень защиты устройства, но также открывает доступ для более глубоких системных модификаций.
Крайне не рекомендую лезть в настройки SELinux, без понимания того, что это такое!
Использование root может повлечь за собой риски, такие как потеря гарантии, возможные проблемы безопасности и стабильности системы.
Все современные методы получения root обязательно сопряжены с разблокировкой загрузчика, за исключением пары устройств, где можно заблокировать загрузчик при использовании KernelSU (о нем позже).
Блокировка загрузчика при наличии root в 99% случаев приводит к "кирпичу", т.е. смартфон становится непригодным к использованию.
Загрузчик (bootloader) на смартфоне - это программная часть, которая запускает операционную систему устройства при включении. Он является первым шагом в загрузке устройства и загружает операционную систему из внутренней памяти устройства.
Разблокировка загрузчика - это процесс, который позволяет пользователю изменять или заменять операционную систему на устройстве. Обычно загрузчик ограничивает установку только тех программ, которые были одобрены производителем. Разблокировка загрузчика позволяет загружать кастомные операционные системы, кастомные recovery и другие системные изменения.
Процесс разблокировки загрузчика включает в себя изменение настроек устройства так, чтобы оно принимало загрузку кастомных элементов. Это может потребовать выполнения определенных команд или использования специальных инструментов, предоставляемых производителем устройства или сообществом разработчиков.
Разблокировка загрузчика может сбросить данные на устройстве и, что более важно, может отменить гарантию производителя. Также, неправильное выполнение этого процесса может привести к нестабильности устройства или "кирпичу". Поэтому разблокировка загрузчика рекомендуется только опытным пользователям, которые понимают возможные риски и последствия этой процедуры.
Если рассматривать современные методы получения root-доступа, то их в данный момент 4:
Коротко опишу процесс установки для тех, кто всё же решит попробовать, что это такое:Надо через приложение Magisk пропатчить boot-образа прошивки и прошивка пропатченного boot.img в /boot на устройстве, на некоторых устройствах Google Pixel патчить надо init_boot и прошивать в раздел init_boot. Не вижу смысла писать более подробную инструкцию, потому что новичкам это не надо, а опытным пользователям будет достаточно и этого.
Сейчас Magisk теряет свою актуальность, потому что его проблемно скрыть от других приложений, что может вызвать сбои в работе некоторых приложений, в т.ч. банковских и приложений для оплаты по NFC. Но Magisk является основой для более продуманных решений и в нем впервые появилось такое решение, как Zygisk.Zygisk - платформа для создания расширенных модулей Magisk. Функция появилась в версии 24.0, когда была удалена функция MagiskHide. Denylist также появилась в версии 24.0, она пришла на замену MagiskHide, и позволяет скрывать некоторые компоненты Magisk от приложений.
Zygisk представляет собой интеграцию модуля Magisk в Zygote — процесс запуска приложений в Android. Эта технология позволяет Magisk работать в рамках Zygote, обеспечивая тем самым более глубокую интеграцию и взаимодействие с системой Android на уровне, который ранее был недоступен.
Zygote — это процесс в Android, который запускается при старте системы и служит шаблоном (родительским процессом) для каждого приложения, запускаемого на устройстве. Встраиваясь в Zygote, Zygisk позволяет модулям Magisk исполняться в контексте каждого приложения, что открывает новые возможности для модификации и расширения функциональности приложений и самой системы без изменения исходных системных файлов.
Основные преимущества Zygisk:
Хорошее решение, но у него не самая удобная установка, но данное решение часто уже встроено в кастомные прошивки, если используется кастомная прошивка со встроенной поддержкой KSU, то рекомендую использовать именно это решение. Для KernelSU существует отдельный модуль для реализации Zygisk - ZygiskNext (https://github.com/Dr-TSNG/ZygiskNext), в совокупности с Play Integrity Fix и Shamiko можно скрыть наличие root от приложений, которым root не требуется.
Процесс установки KernelSU при наличии поддержки в прошивке очень простой и сводится к скачиванию и установки приложения с официального гитхаба.
Данное решение в совокупности с Shamiko и Play Integrity Fix Next позволяет практически полностью скрыть наличие root на устройстве от других приложений.Установка аналогичная Magisk.
Преимущества APatch
Я рассказал о 4х актуальных на данный момент способах получения root. Теперь стоит подытожить, для чего же может понадобиться root:
Для обычного пользователя, он может понадобится для задач по типу установки YouTube ReVanced взамен, а не рядом с оригинальным приложением YouTube, для блокировки рекламы при помощи AdAway (в качестве альтернативы я рекомендую NextDNS или любой другой блокировщик рекламы на уровне DNS, но можно и совместить), улучшить звук устройства при помощи ViperFX, для некоторых устройств, в т.ч. для Google Pixel есть Magisk-модули для улучшения связи и активации VoWiFi и VoLTE в странах СНГ, но всё это лишь добавляет немного комфорта в использовании устройства и не имеет ничего общего с безопасностью. Помимо этого при наличии root можно отключить различные отслеживающие трекеры и завернуть трафик в Tor или VPN (WireGuard) на уровне системы, но за это приходится иметь дыру в безопасности в виде разблокированного загрузчика, поэтому я НЕ рекомендую использовать root новичкам, а опытным пользователям, только если они осознают все риски.
- Superuser (Суперпользователь): После успешного рутирования устройства пользователь становится суперпользователем, что означает, что он имеет полный контроль над системой и может выполнять действия, которые обычно ограничены без root-прав.
- Удаление системных приложений: С root-правами можно удалить или изменить предустановленные приложения и компоненты операционной системы, которые обычно недоступны для изменения.
- Твикинг и настройка: Root также открывает доступ к различным инструментам и приложениям, которые позволяют пользователю настраивать параметры системы, производительность, а также применять различные твики для оптимизации устройства.
Технически root в Android означает получение суперпользовательских (или администраторских) прав на уровне операционной системы. При рутировании устанавливается программное обеспечение, такое как Superuser (обычно сокращенно как su), которое действует как мост между обычными приложениями и суперпользовательскими правами. Когда приложение запрашивает выполнение команды с повышенными привилегиями, su перехватывает запрос и предоставляет необходимые права.Кастомные recovery и прошивки: Получение root-доступа часто сопровождается установкой кастомного recovery, такого как TWRP (Team Win Recovery Project). Это позволяет пользователям создавать резервные копии системы, устанавливать кастомные ROM и прошивки, а также применять различные системные манипуляции.
Root-доступ позволяет пользователю выполнять системные вызовы и изменять библиотеки, что дает возможность вносить изменения в ядро операционной системы и другие компоненты.При рутировании устройства может потребоваться изменение настроек SELinux, системы обеспечения безопасности в Android. Это может снизить уровень защиты устройства, но также открывает доступ для более глубоких системных модификаций.
Крайне не рекомендую лезть в настройки SELinux, без понимания того, что это такое!
Использование root может повлечь за собой риски, такие как потеря гарантии, возможные проблемы безопасности и стабильности системы.
Все современные методы получения root обязательно сопряжены с разблокировкой загрузчика, за исключением пары устройств, где можно заблокировать загрузчик при использовании KernelSU (о нем позже).
Блокировка загрузчика при наличии root в 99% случаев приводит к "кирпичу", т.е. смартфон становится непригодным к использованию.
Загрузчик (bootloader) на смартфоне - это программная часть, которая запускает операционную систему устройства при включении. Он является первым шагом в загрузке устройства и загружает операционную систему из внутренней памяти устройства.
Разблокировка загрузчика - это процесс, который позволяет пользователю изменять или заменять операционную систему на устройстве. Обычно загрузчик ограничивает установку только тех программ, которые были одобрены производителем. Разблокировка загрузчика позволяет загружать кастомные операционные системы, кастомные recovery и другие системные изменения.
Процесс разблокировки загрузчика включает в себя изменение настроек устройства так, чтобы оно принимало загрузку кастомных элементов. Это может потребовать выполнения определенных команд или использования специальных инструментов, предоставляемых производителем устройства или сообществом разработчиков.
Разблокировка загрузчика может сбросить данные на устройстве и, что более важно, может отменить гарантию производителя. Также, неправильное выполнение этого процесса может привести к нестабильности устройства или "кирпичу". Поэтому разблокировка загрузчика рекомендуется только опытным пользователям, которые понимают возможные риски и последствия этой процедуры.
Если рассматривать современные методы получения root-доступа, то их в данный момент 4:
- Magisk;
- KernelSU;
- Magisk Delta/Kitsune Mask;
- APatch.
1. Magisk
Magisk (https://github.com/topjohnwu/Magisk) - это инструмент для рутирования Android-устройств, который позволяет получить root-доступ, а также обеспечивает более высокий уровень контроля и гибкости в управлении устройством. Magisk призван минимизировать воздействие на системные файлы, что делает его более безопасным и удобным в использовании по сравнению с устаревшими методами рутирования.Ранее Magisk был довольно популярным решением, для получения root, поскольку его установка практически всегда универсальная.Коротко опишу процесс установки для тех, кто всё же решит попробовать, что это такое:Надо через приложение Magisk пропатчить boot-образа прошивки и прошивка пропатченного boot.img в /boot на устройстве, на некоторых устройствах Google Pixel патчить надо init_boot и прошивать в раздел init_boot. Не вижу смысла писать более подробную инструкцию, потому что новичкам это не надо, а опытным пользователям будет достаточно и этого.
Сейчас Magisk теряет свою актуальность, потому что его проблемно скрыть от других приложений, что может вызвать сбои в работе некоторых приложений, в т.ч. банковских и приложений для оплаты по NFC. Но Magisk является основой для более продуманных решений и в нем впервые появилось такое решение, как Zygisk.Zygisk - платформа для создания расширенных модулей Magisk. Функция появилась в версии 24.0, когда была удалена функция MagiskHide. Denylist также появилась в версии 24.0, она пришла на замену MagiskHide, и позволяет скрывать некоторые компоненты Magisk от приложений.
Zygisk представляет собой интеграцию модуля Magisk в Zygote — процесс запуска приложений в Android. Эта технология позволяет Magisk работать в рамках Zygote, обеспечивая тем самым более глубокую интеграцию и взаимодействие с системой Android на уровне, который ранее был недоступен.
Zygote — это процесс в Android, который запускается при старте системы и служит шаблоном (родительским процессом) для каждого приложения, запускаемого на устройстве. Встраиваясь в Zygote, Zygisk позволяет модулям Magisk исполняться в контексте каждого приложения, что открывает новые возможности для модификации и расширения функциональности приложений и самой системы без изменения исходных системных файлов.
Основные преимущества Zygisk:
- Zygisk улучшает способность пользователя скрывать факт наличия root-доступа от определенных приложений и служб, что особенно важно для приложений банков и других, которые не работают на устройствах с root-доступом из соображений безопасности;
- Поскольку Zygisk работает в контексте Zygote, модули могут вносить изменения в работу приложений на лету, без необходимости модифицировать APK-файлы приложений;
- Zygisk обеспечивает высокий уровень совместимости с различными версиями Android и устройствами благодаря тому, что он работает на уровне Zygote, который является фундаментальной частью Android;
- Интеграция с Magisk облегчает процесс обновления и управления модулями, делая весь процесс более удобным и менее рискованным для пользователя (модуль обновляется через само приложение Magisk, если разработчик встроил такую функцию).
2. KernelSU
KernelSU/KSU (https://github.com/tiann/KernelSU) - root-решение на основе ядер GKI под Android. Работает в режиме ядра и предоставляет Root-права для пользовательских приложений непосредственно в пространстве ядра. Если по-простому, то пользователь сам выбирает, какие приложения могут запрашивать root-доступ, а в случае Magisk любое приложение может запросить root, если оно не занесено в Denylist.Чтобы победить фрагментацию, начиная с Android 11 и версии ядра 5.4 Google обязует производителей устройств использовать GKI — общее для всей устройств ядро, собранное и подписанное Google. Все изменения, которые раньше были патчами вендоров поверх ядра, должны быть вынесены в специальные модули ядра GKI modules, которым запрещено использовать структуры ядра напрямую — вместо этого они должны линковаться с обёртками, предоставленными Google в Kernel Module Interface (KMI). KMI гарантирует стабильность ABI в рамках одной и той же версии ядра и Android, например, android13-5.10.Хорошее решение, но у него не самая удобная установка, но данное решение часто уже встроено в кастомные прошивки, если используется кастомная прошивка со встроенной поддержкой KSU, то рекомендую использовать именно это решение. Для KernelSU существует отдельный модуль для реализации Zygisk - ZygiskNext (https://github.com/Dr-TSNG/ZygiskNext), в совокупности с Play Integrity Fix и Shamiko можно скрыть наличие root от приложений, которым root не требуется.
Процесс установки KernelSU при наличии поддержки в прошивке очень простой и сводится к скачиванию и установки приложения с официального гитхаба.
3. Magisk Delta/Kitsune Mask
Magisk Delta/Kitsune Mask (https://github.com/HuskyDG/magisk-files) - форк Magisk с улучшенными механизмами скрытия root, на момент написания статьи Canary-версия Kitsune Mask имеет встроенный модифицированный ZygiskNext с более продуманными механизмами скрытия. Имеет функцию SuList, когда пользователь сам выбирает, какие приложения могут отправлять запрос на root-доступ, в то время как в обычном Magisk наоборот - пользователь выбирает, какие приложения НЕ могут отправлять такой запрос (Denylist), что не очень логично, потому что, как правило, приложений, требующих root намного меньше, чем остальных.Данное решение в совокупности с Shamiko и Play Integrity Fix Next позволяет практически полностью скрыть наличие root на устройстве от других приложений.Установка аналогичная Magisk.
4. APatch
APatch (https://github.com/bmax121/APatch) - приложение для получения рут прав. Работает в режиме ядра и предоставляет Root-права для пользовательских приложений непосредственно в пространстве ядра. Если по-простому, то это тот же KernelSU, только с установкой, как у Magisk, но с некоторыми перспективными разработками.Преимущества APatch
- APM: Поддержка модуля Magisk.
- KPM: Kernel Patch Module support. (Позволяет внедрять любой код в ядро, доступны функции ядра inline-hook и syscall-table-hook).
- APatch опирается на KernelPatch.
- Исходный код для APatch UI и APM был скопирован и модифицирован из KernelSU.
Я рассказал о 4х актуальных на данный момент способах получения root. Теперь стоит подытожить, для чего же может понадобиться root:
Для обычного пользователя, он может понадобится для задач по типу установки YouTube ReVanced взамен, а не рядом с оригинальным приложением YouTube, для блокировки рекламы при помощи AdAway (в качестве альтернативы я рекомендую NextDNS или любой другой блокировщик рекламы на уровне DNS, но можно и совместить), улучшить звук устройства при помощи ViperFX, для некоторых устройств, в т.ч. для Google Pixel есть Magisk-модули для улучшения связи и активации VoWiFi и VoLTE в странах СНГ, но всё это лишь добавляет немного комфорта в использовании устройства и не имеет ничего общего с безопасностью. Помимо этого при наличии root можно отключить различные отслеживающие трекеры и завернуть трафик в Tor или VPN (WireGuard) на уровне системы, но за это приходится иметь дыру в безопасности в виде разблокированного загрузчика, поэтому я НЕ рекомендую использовать root новичкам, а опытным пользователям, только если они осознают все риски.