Почему рутирующие приложения больше не работают?

10

Пару лет назад было легко получить root права на любое устройство: установите KingRoot, KingoRoot или подобное приложение, нажмите большую кнопку ROOT и позвольте ему сделать все остальное. Примерно через 5 минут зеленый "Root Succeeded!" появится всплывающее окно, и мы можем выбрать сохранение корневого приложения или удалить его и установить чистое приложение корневого менеджера, такое как SuperSU / Superuser.

Как они работают? Почему они больше не работают? И если они работают, я должен их использовать или нет?

сверхзвуковой
источник
2
Это может быть полезно, особенно в VERIFIED / SECURE BOOTразделе: forum.xda-developers.com/android/general/…
Ирфан Латиф

Ответы:

16

У меня был этот вопрос несколько месяцев назад, и я нашел этот ответ в ходе некоторых исследований, поэтому я решил поделиться своим исследованием на этом сайте, ответив на мой вопрос, рассматривая ложную информацию в Интернете. (Например, официальный сайт KingoRoot говорит, что он может получить root права на Android Oreo, что является абсолютно неверной информацией)

Как работают рутирующие приложения?

Существует довольно много приложений для рутинга, KingRoot, KingoRoot, Z4Root, Root Genius, Universal Androot, чтобы назвать несколько популярных / бывших популярных приложений. Все они используют эксплойты / уязвимости / лазейки в ОС Android, чтобы предоставить себе привилегии, зарезервированные для системных приложений или даже самой ОС Android. И затем они монтируют в режиме чтения / записи каталог с именем, в /systemкотором находятся процессы, необходимые для запуска системы и системных приложений, и помещают двоичный файл с именем suв место каталога, а именно /system/bin/su. Если для какого-либо приложения требуется root, приложение запускает этот двоичный файл, и вы видите подсказку, разрешить или запретить root-доступ.

Обнаруженные эксплойты / уязвимости получают CVEID, а затем подробно описываются на веб-сайте CVE и исправляются в бюллетенях по безопасности Android . Примером является печально известная уязвимость DirtyC0W, которой был присвоен CVEID CVE-2016-5195, который преследовал и до сих пор поражает старые ядра Linux. Почти все приложения, упомянутые выше, используют эту уязвимость.

Почему рутирующие приложения больше не работают?

Как упоминалось в бюллетенях выше, Google исправляет ряд проблем в Android каждый месяц. Таким образом, объем уязвимостей сильно уменьшается. Все уязвимости, которые до настоящего времени использовались приложениями для рутинга, были исправлены в заплатках безопасности где-то в январе 2018 года .

Но могут быть проблемы, которые некоторые производители забыли пропатчить! Что насчет них?

На Android 6.0.0 или новее это просто приведет к тому, что устройство больше не загружается. Чтобы понять причину этого, мы должны взглянуть на концепцию, названную Chain of Trust .

Chain of Trust , сокращенно CoT, представляет собой механизм безопасности, который был введен для защиты ОС Android от вирусов и несанкционированных модификаций. Он работает как цепочка аппаратного и программного обеспечения, где каждая часть проверяет следующую часть. Пошагово:

  1. При включении устройства запускается аппаратная функция (иногда называемая загрузочным ПЗУ). Загрузочный диск записан на аппаратном уровне и не может быть изменен.
  2. Загрузочное ПЗУ проверяет первое программное обеспечение в CoT, загрузчик, который является необработанным двоичным двоичным файлом, иногда называемым предварительным загрузчиком. (Также загрузочное ПЗУ иногда загружается и использует специальные пользовательские разделы / двоичные файлы в зависимости от поставщика). Если загрузчик не проходит проверки, устройство выключается. Если он проходит, загрузочное ПЗУ запускает загрузчик.
  3. Загрузчик проверяет параметры, переданные ему загрузочным ПЗУ, и выбирает соответствующий режим загрузки. Обычные режимы загрузки, которые существуют практически на каждом устройстве, это обычная загрузка Android, восстановление и Fastboot / Download.

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

Если загрузчик разблокирован, он не проверяет следующую часть CoT, а непосредственно загружает ее.

  1. Следующая часть называется загрузочным разделом . Он обрабатывает способ загрузки самой системы. В версиях Android на / новее, чем 6.0.0 (Lollipop), он также проверяет, не повреждена ли система, и, если она изменена, отключается.

Как уже упоминалось вначале, эти корневые приложения используют уязвимости для модификации /system, что подтверждается загрузочным разделом, как упоминалось на этапе 4 выше. Поэтому любая модификация приведет к тому, что устройство не загрузится. Это состояние обычно называют «мягким кирпичом», который может быть исправлен только повторной вспышкой.

Поэтому новые устройства требуют разблокировки загрузчика, если вы хотите получить root права на свое устройство. Эти устройства рутируются путем прошивки восстановления с большим количеством опций, чем при обычном восстановлении (например, TWRP, ClockWorkMod), обычно называемого пользовательским восстановлением, и использования его для изменения загрузочного раздела (и отключения проверки системы). Также можно напрямую изменить загрузочный раздел без специального восстановления.

Некоторые производители предоставляют способ разблокировки загрузчика, а некоторые - нет. Популярные устройства с заблокированными загрузками (например, заблокированные устройства Samsung S с носителем в США), как правило, используются сообществом моддингов Android.

Мое устройство по-прежнему Android 5.1.1 или старше! Должен ли я использовать их для root?

Большинство из этих старых устройств могут получить root-права с помощью рутирующих приложений. Итак, вы могли бы. Тебе следует? Это зависит от ваших предпочтений. Доступ с правами root дает власть над всем в ОС, а с доступом с правами root обычно не требуется даже микросекунды, чтобы убедиться, что ваше устройство больше никогда не загрузится. Весьма вероятно, что рутирующие приложения никогда этого не сделают, но они могли. Кроме того, с помощью root приложение может получить доступ ко всему, что делает ваше устройство, и ко всему, что оно хранит в своей памяти, включая информацию о вашей кредитной карте, пароли и т. Д. Если это звучит как серьезная угроза конфиденциальности для вас, возможно, не используйте корневые приложения. Если вас это не волнует, вы можете попробовать их.

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

Кроме того, KingoRoot известен тем, что отправлял на свои серверы высокочувствительные данные, такие как IMEI и серийный номер. Скорее всего, они никогда не будут их использовать, но, в конце концов, это ваше решение. А KingRoot известен тем, что он установил в свой SDK бэкдор, который позволял некоторым приложениям получать root-доступ неавторизованным пользователем.

Вывод

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

Я надеюсь, что мои исследования помогут в будущем кому-то, кто столкнется с той же проблемой, что и я. :)

сверхзвуковой
источник