Доброго времени суток всем моим читателям! Сегодня, продолжая цикл статей о кастомизации своего устройства, расскажу о том что такое права "root", зачем они нужны, кому они абсолютно точно не нужны и, если вы все-таки решили, как их получить.

Цикл статей

Содержание

Что такое root-права?

Сразу оговорюсь — я не буду вдаваться в технические детали реализации самого процесса рутирования телефона, поскольку недостаточно компетентен в этом, да и статья не про это.

Простыми словами — это права суперпользователя, которые вы можете делегировать одним приложениям и отказывать в доступе к ним другим. С этими правами приложения могут использовать команду su и обходить стандартные ограничения Android, получать доступ к системным файлам и папкам, внедряться в память других процессов и так далее.

Зачастую, в схеме root имеются 2 части — сервер, который выполняет основную программную работу и клиент, который необходим для взаимодействия пользователя с первым, позволяя гибко настраивать систему выдачи этих самых прав.

Подробнее вы можете почитать на сайтах, как ни странно, компаний, разрабатывающих антивирусные решения, вроде Eset или Kaspersky, поскольку данный вопрос непосредственно связан с безопасностью системы Android.

Зачем нужны root-права?

Честно говоря, когда мне задают вопрос, зачем я получал root-права на своем девайсе, я иногда впадаю в ступор, поскольку использую какое-то специфичное ПО, требующее таких разрешений достаточно редко и точечно.

Как хорошие примеры могу привести эффективное использование программ-firewalls, которые с помощью расширенных прав могут более гибко и эффективно контролировать траффик. Также, программы предназначенные для очистки "мусорных" файлов работают гораздо эффективнее, как и разнообразные файловые менеджеры, которые могут позволить вам редактировать системные файлы. Программы для резервного копирования приложений могут сохранять все данные приложения.

Отдельно хотелось бы упомянуть Xposed Framework — специализированное ПО в виде фреймворка, позволяющее одним приложениям изменять поведение системных функций Android в других приложениях и получать более полный доступ к их ресурсам. Например, именно на этом принципе основан Xposed-модуль для перевода текста на любой язык прямо в целевом приложении.

Кому НЕ нужны root-права

Именно так. Если вы сидите на данном ресурсе и дочитали до этого момента, полагаю, вы настроены решительно и будет проще перечислить все ПРОТИВ, нежели все ЗА. Преимуществ у расширенных прав действительно много, но это силой надо уметь управлять. Таким образом, список пользователей, которым я бы не рекомендовал получать root, можно сформулировать примерно так:

  • Ваш телефон на гарантии (при получении root гарантия почти всегда снимается)

  • Вы не можете сформулировать, зачем они вам нужны

  • Вы работаете на телефоне с информацией содержащую банковскую/государственную/иную тайну

  • У вас нет возможности сделать полный backup всех разделов системы, равно как и нет возможности восстановить устройство в случае утраты работоспособности из-за root-прав

Способы получения root

Раньше, когда деревья были высокими а слоны мохнатыми, во времена Android ~4, существовали специальные утилиты как на само устройство так и на ПК, с помощью которых можно было получить root.

Если выражаться точнее, эти утилиты взламывали систему одним из множества способов и снисходительно делились с вами кусочком этого доступа.

Большая часть таких утилит была на китайском языке и тыкаться приходилось буквально вслепую. Вот самые яркие представители этого класса:

  • Baidu Root

  • King Root (не путать с Kingo Root)

  • Root Genius

Преимущества такого способа получения очевидны — простота получения и относительно высокий шанс успеха. Однако такие недостатки как шпионаж, фоновая установка ПО и в целом непрозрачность схемы, как по мне, перекрывают это преимущество с лихвой. Тем более, что на последних версиях Android вероятность успеха получения прав с помощью этих утилит всё ниже. Не рекомендую данный способ к применению.

В определенный момент, как альтернатива этим утилитам, на арену рутирования выходит OpenSource-проект Magisk разработанный, несомненно, талантливым, программистом, под ником topjohnwu.

Главная особенность данного метода — возможность "внесистемного" внесения изменений с помощью подключаемых модулей. Это означает, что с выключением Magisk-модуля, отменялись изменения в системе, которые вносил этот модуль.

Работает это, на самом деле, проще чем можно подумать. В корне файловой системы создается "зеркало" раздела data (так и называется — data_mirror) и необходимые изменения вносятся в систему посредством создания символических ссылок на этот раздел.

Также, старые версии Magisk "из коробки" способны скрыть факт наличия root-прав от программ, которые не любят их (банковские приложения, например). Новые версии требуют установки дополнительных модулей.

Как получить root-права?

Мы, наконец, переходим от скучных лекций к решительным действиям.

Для получения таких прав, вы можете воспользоваться одной из перечисленных выше утилит, но только в том случае, если у вас есть возможность восстановить систему и нет возможности установить Magisk. В целом, я всё равно не рекомендую такие утилиты к применению.

Более подробно мы будем рассматривать установку Magisk на примере самой последней версии (25.2).

Предполагается, что вы уже разблокировали загрузчик и установили сторонний recovery. Устанавливать стороннюю прошивку необязательно, это не должно вызвать проблем.

Первым делом нам необходимо, как обычно, сделать полный бекап разделов системы на внешний носитель, вроде sd-карты, чтобы если что-то пойдет не так, вернуть как было.

Следующим шагом будет скачивание установочного файла Magisk (исключительно из официального репозитория!). Если ваш recovery позволяет устанавливать APK как zip-архивы, как, например, OrangeFox, то скачанный файл в исходном виде копируем на внешнюю память устройства, поскольку внутренняя зачастую шифруется и вы просто не найдете этот файл из recovery. В случае, если у вас другой recovery, файл Magisk.apk необходимо переименовать в Magisk.zip и таким же образом скопировать на устройство.

Далее необходимо загрузиться в recovery и сделать отдельно резервную копию раздела boot.img. Далее поясню, зачем.

В Magisk имеется возможность полного удаления root с помощью переименования файла установки в uninstall.zip и прошивки в recovery, НО, он не работает на системах с включенным шифрованием data.

Если вдруг какой-то модуль выведет систему из строя и у вас не будет возможности загрузиться в систему, будет очень проблемно этот самый модуль отключить или отключить весь Magisk.

Имея на руках boot исходной системы (без Magisk) мы сможем восстановить конкретно этот раздел и, в большинстве случаев, работоспособность системы.

После того, как бекапы сделаны, люки задраены, просто прошиваем установочный файл Magisk как любой другой архив через recovery. Всё.

В общем и целом, ничего сложного в самом процессе установки нет, после прошивки и загрузки системы, в меню приложений появится приложение "Magisk", которое при первом запуске обновится и будет работать. Самое важно и интересное кроется в настройке.

Настройка Magisk или как пройти SafetyNet

В новых версиях (24+) Magisk на смену Magisk Hide пришел новый метод сокрытия root — Zygisk. Его название состоит из слов Zygote — материнского низкоуровнего процесса Android, с помощью которого происходит работа Magisk и собственно названия приложения.

По умолчанию этот режим отключен в настройках Magisk, но я рекомендую включить его при первой же возможности.

Сразу после этого необходимо установить два модуля из Github-репозиториев — Universal SafetyNet Fix и Shamico. Первый нужен для прохождения CTS-аттестации (сертификация устройства SafetyNet), а второй для корректной работы функции скрытия root и DenyList magisk. Установка модулей интуитивно понятна и не должна вызвать вопросов.

Не уходя далеко после установки модулей переходим в раздел "Настройка DenyList", не активируя пункт "Активировать DenyList".

В этом меню мы увидим список установленных приложений. Скрытие root по умолчанию применено к сервисам Google, отдельно включать не надо! В большинстве случаев достаточно проставить галочки рядом с приложениями, от которых вы хотите скрыть рут, но бывают случаи, когда это не работает (например, некоторые банковские приложения). Тогда я советую нажать на плашку с названием приложения. Откроется весь список компонентов, от которых скрывается рут и проставить переключатель возле каждого из них. Приложений, которые обходили бы этот метод я еще не видел.

Для закрепления рекомендую использовать функцию "Скрыть приложение Magisk", поскольку его наличие можно вычислить элементарно по списку установленных приложений (так, например, работает MirPay). MagiskManager пересоберется со случайным именем пакета и предложит себя установить.

Если есть возможность, можно ограничить конкретным приложениям доступ к списку приложений с помощью Xposed-модулей вроде Thanox или XPrivacy Lua и тогда скрывать Magisk Manager не обязательно.

После проделанных действий необходимо как можно скорее перезагрузить телефон. Загрузка может быть слегка дольше, чем обычно.

Без должной настройки сервисы Google вскоре заметят чужака в системе и забракуют устройство по CTS.

Скрытие root для приложения необходимо делать до первого запуска целевого приложения! Мне попадались довольно злопамятные программы, которые раз увидев root, сохраняли мой id на сервере, приходилось либо перешивать устройство, либо подсовывать им фейковый Android ID.

Опасности root-прав

Не буду утверждать, что root-права это безопасно — любой необкатанный magisk модуль может привести систему в нерабочее состояние, при неумелом редактировании системных файлов система также придет в негодность, а функционал программ, запрашивающих root не всегда прозрачен. Не давайте root права приложениям, которым, по вашему мнению, они не нужны! Периодически такие права запрашивают Яндекс Карты, статистики ради или для чего-то еще — неизвестно, но проверять не хочется.

Говорить о том, что наличие root как-то сильно ослабляет защиту системы тоже не буду — доступ вполне себе контролируемый, и если вы будете соблюдать элементарную цифровую гигену, никаких проблем не будет.

Самое опасное, наверное — потеря гарантии производителя, что логично.

Выводы

Root-права — мощный инструмент, который дает широкий доступ к системе, но как и любой инструмент, им нужно уметь пользоваться, а в неумелых руках он принесет больше вреда, чем пользы.

Мой набор Magisk-модулей

  • Busybox - дает доступ приложениям к встроенному busybox от Magisk

  • No Storage Restricts - убирает ограничения в выборе папок в файловом менеджере

  • LuckyPatcher - его модуль нужен для переноса приложений в системный раздел

  • Move Certificates - перенос пользовательских сертификатов в систему

  • NFC Screen Off - работа NFC при выключенном экране

Комментарии (18)


  1. andreymal
    24.10.2022 01:10

    В плане безопасности стоит иметь в виду, что при разблокированном загрузчике злоумышленник, получивший физический доступ к устройству, может установить бэкдор (даже если устройство запаролено) https://habr.com/ru/post/541190/


    1. 66demon666 Автор
      24.10.2022 01:12

      FBE шифрование вполне успешно работает на сторонних прошивках


      1. andreymal
        24.10.2022 01:13

        FBE/FDE никак не помогут, почитайте статью по ссылке


        1. axifive
          24.10.2022 01:37
          +1

          Да, легко с физическим доступом внедрить в разделы boot/system/cust/vendor свой вредоносный код и никакое шифрование не поможет. Можно даже ядро пересобрать со своим кодом. Очень плохо, что производители не дают возможности поставить пароль на загрузчик после разблокировки.


      1. dartraiden
        24.10.2022 01:27
        +1

        Только вот шифруется при этом /data, а /system — нет.

        К сожалению, мало существует смартфонов, которые позволяли бы пользователю подписать прошивку своим ключом и заблокировать загрузчик таким образом, чтобы он загружал только прошивки, подписанные этим ключом. Чтобы одновременно не лишать пользователя доверенной загрузки и дать ему контроль над прошивкой. Гугловские Pixel, вроде, такое умеют.


        1. axifive
          24.10.2022 02:10

          1. dartraiden
            24.10.2022 03:12

            Плохо то, что это не стало таким же распространённым стандартом, как Secure Boot на ПК. Где перед покупкой материнки я почти могу быть уверен, что это поддерживается, а для полной уверенности скачать электронное руководство пользователя с описанием настроек прошивки и убедиться.

            На смартфонах же приходится методом тыка с непредсказуемыми результатами. Тот же упомянутый OnePlus: does not work with new firmwares for android 12! will not boot and you will find yourself in edl mode trying to unbrick your phone.


            1. 13werwolf13
              24.10.2022 11:39

              вот бы ещё разработчики прошивок для x86 материнок следовали этому стандарту, а то на некоторых особо всратых custom keys отсутствует как класс (или запрятан и в документации не указано куда как в случае с acer у которых для этого требуется поставить пароль на uefi но в доке об этом не сказано) и в итоге приходится secureboot выключать лишая себя этого слоя защиты чтобы вообще загрузить ОС.


              1. Mike-M
                25.10.2022 16:34

                приходится secureboot выключать лишая себя этого слоя защиты
                Скоро будет пять лет как живу без SecureBoot и прочих надстроек безопасности.
                Ни разу не пожалел.
                Никого не агитирую, просто делюсь личным опытом.


                1. 13werwolf13
                  25.10.2022 16:40

                  Простите за такой пример, но имхо хорошее сравнение: секс без презерватива не всегда приводит к ВИЧ, но рисковать както не хочется.

                  Я понимаю что буткиты штука редкая, но шанс нарваться всё равно выше нуля.


  1. Botvinkin
    24.10.2022 02:32
    +5

    Помню, ещё каких-то пять лет назад я не мог представить себе пользование телефоном без рут-прав. Был ярым сторонником рутования, исходя из принципа «да как они посмели ограничивать меня в доступе к моему же устройству?!»

    Доходило даже до того, что я ставил модули на Xposed Framework для сокрытия рута от приложений, отказывающихся с ним работать.

    А года два назад понял, что либо производители победили, либо я постарел, но больше ставить рут и бороться желания нет. Слишком много программных и аппаратных ограничений: от нерабочих систем оплаты до плавких предохранителей и неработающей камеры (в случае конкретно моего телефона).

    Да и не особо-то этот рут теперь нужен, если подумать. На всякий случай держу под рукой старый телефон с рутом, но не доставал его за эти самые два года ни разу.


    1. nidalee
      24.10.2022 06:28
      +3

      Тоже с 2014 с рутом хожу. Позавчера купил новый смартфон и решил попробовать походить без рута (а вдруг сдохнет внезапно, а я рутом гарантию снял?).
      Рекламу многую режет wireguard через self-hosted wirehole, но не всю (Яндекс свою умеет пропихивать мимо wiregurad, с рутом не справлялся). С этим можно жить.
      Бекапы сделать теперь нельзя нормальные — но, справедливости ради, многие из приложений, которые я хотел бекапить (Notify for Mi Band, например) и так не бекапятся через Titanium Backup (вылетают при запуске после восстановления из бекапа). С этим тоже вроде как можно жить.
      Сторонние клиенты на VK и прочие Instagram рута не требуют вообще. Если бы требовали, то рут пришлось бы накатывать без вариантов.
      Без root доступа к ФС пока справляюсь.
      Кастомизации интерфейса в целом (и статусбара в частности) отсутствуют — но это решилось хардварно отсутствием на смартфоне моноброви или глазка в принципе. Так что больше нет проблемы впихнуть невпихуемое, лезет все.
      А вот отсутствие записи звонков — беда страшная. Попробовал костылями подпереть, но не работает. Вчера буквально подумал «надо переслушать разговор» — а фигу. Теперь, чувствую, придется все же заканчивать эксперимент. Но, пожалуй, погоняю еще пару недель, пока чехол едет.

      Все же проблемы комбинации некоторых смартфонов с рутом решаются еще до покупки отсеиванием всех вариантов, где рут получить нетривиально или где он ломает какой-то встроенный функционал. :)
      Я всех кандидатов просеял через 4pda и остановился в итоге на asus.


      1. byte-coder
        24.10.2022 07:54

        По поводу записи разговоров. У меня Самсунг и Андрюша 12)) Стоит Call Recorder, внутри приложения все настроено, как рекомендовали, по началу тоже не работало, а потом я залез в настройки самого Андрея, открыл "Специальные возможности", далее "Установленные приложения". выбрал свой Кол Рекордер и поставил галку "Включено". После включения спец возможностей запись разговоров пишется нормально. Иногда, раз в неделю где-то, эта настройка слетает, но Кол Рекордер выводит сообщение о том, что нужно включить эту фигню... да, бывает так, что в самый не подходящий момент функция подводит, но жить можно... и я привык без рута... Другие приложения скорей всего тоже будут записывать разговоры, если включить эту настройку. Удачи


        1. nidalee
          24.10.2022 09:56

          Неа, не помогает, только одну сторону пишет.
          А в режиме диктофона не пишет вообще ничего.


          1. 13werwolf13
            24.10.2022 11:41

            использую Cube Call Recorder, чтобы без рута писать разговоры потратил около часа подбирая комбинацию настроек, удалось ровно до обновления прошивки.. теперь планирую таки рутануться


    1. evn
      24.10.2022 09:37

      покупаю телефоны с возможностью записи из коробки.

      Сейчас realme 9 pro+. Пишет исправно. До этого 7 pro был. Запись так же работает.


  1. Aelliari
    24.10.2022 08:00
    +3

    • Ваш телефон на гарантии (при получении root гарантия почти всегда снимается)

    Как минимум спорно. Мало того что разблокировка загрузчика и установка ПО штатная процедура, так ещё при отказе в гарантии им придётся доказать что негарантийный случай наступил в связи с данными манипуляциями.


  1. LeshaRB
    25.10.2022 00:26
    +1

    Также, старые версии Magisk "из коробки" способны скрыть факт наличия root-прав от программ, которые не любят их (банковские приложения, например). Новые версии требуют установки дополнительных модулей

    Так и сейчас магиск это умеет...