- Содержание статьи
- Содержание статьи
- Кому НЕ нужны root-права
- Общая информация
- Что такое root-права?
- Что такое Root?
- Зачем это нужно?
- Какие минусы и опасности получения прав суперпользователя?
- Как получить root на моем устройстве?
- Что делать, если Root так и не был получен?
- Графически приложения от имени суперпользователя
- Так стоит ли «рутовать» Android?
- Установка и настройка
- Зачем вообще «рутуют» Android?
- Какие программы для получения root самые популярные?
- Чем опасно «рутование»? Что может пойти не так?
- А что в «рутованном» Android с вредоносными приложениями?
- В каких странах чаще всего «рутуют»?
- Работает ли антивирус в «рутованном» Android
- Полезное
- Немного истории
- Как был получен root на HTC Dream G1
- Способы получения root
- Причина #6. X-Tools
- Причина #7. Двойная загрузка
- Переключение на суперпользователя в терминале
- Присоединяйся к сообществу «Xakep. ru»!
- Причина #3. Обход ограничений маркета
- Причина #10. Тюнинг системы
- Причина #9. Бэкап
- Вход под суперпользователем
- Тонкая настройка
- Причина #8. Полная отвязка от Google и других сервисов
- Получение прав root без переключения
- Опасности root-прав
- Мой набор Magisk-модулей
- Настройка Magisk или как пройти SafetyNet
- Как получить root-права?
- Причина #2. Системные функции
- Причина #1. Bloatware
- Зачем нужны root-права?
- Root в Android 7
- Причина #4. Реклама
- Причина #5. Xposed
- Выводы
- Выводы
- Выводы
Содержание статьи
У многих пользователей устройств на Android рано или поздно возникает желание их «рутануть». Давайте разберемся, какие от этого могут появиться преимущества, какие у Android с root-правами недостатки — и стоит ли вообще это делать.
Доброго времени суток всем моим читателям! Сегодня, продолжая цикл статей о кастомизации своего устройства, расскажу о том что такое права «root», зачем они нужны, кому они абсолютно точно не нужны и, если вы все-таки решили, как их получить.
Содержание статьи
Android — самая кастомизируемая мобильная ОС большой тройки. Возможности сторонних приложений здесь очень широки, а сама ОС построена вокруг идеи о взаимозаменяемых компонентах, так что никто не ограничивает тебя в выборе софта. Не нравится рабочий стол — поставь другой, не устраивает «звонилка» — замени, не хватает выдвигаемой панели для запуска приложений, как в Ubuntu Touch, — в маркете полно приложений с такой функциональностью. Зачем же тогда получать root? Ведь система и без того поощряет кастомизацию и расширение.
Кому НЕ нужны root-права
Именно так. Если вы сидите на данном ресурсе и дочитали до этого момента, полагаю, вы настроены решительно и будет проще перечислить все ПРОТИВ, нежели все ЗА. Преимуществ у расширенных прав действительно много, но это силой надо уметь управлять. Таким образом, список пользователей, которым я бы не рекомендовал получать root, можно сформулировать примерно так:
Ваш телефон на гарантии (при получении root гарантия почти всегда снимается)
Вы не можете сформулировать, зачем они вам нужны
Вы работаете на телефоне с информацией содержащую банковскую/государственную/иную тайну
У вас нет возможности сделать полный backup всех разделов системы, равно как и нет возможности восстановить устройство в случае утраты работоспособности из-за root-прав
Общая информация
В операционных системах семейства Linux реализован принцип разграничения пользовательских привилегий, то есть у разных учетных записей разный объем прав доступа к каталогам, файлам и программам. Максимальными правами наделена встроенная учетная запись root. Вновь создаваемые пользовательские аккаунты обычно существенно ограничены в доступе к системным конфигурационным файлам, управлении сервисами, установке и удалении программных пакетов. При этом работа в операционной системе под учетной записью root настоятельно не рекомендуется, прежде всего в целях безопасности. В этом случае на помощь приходит утилита командной строки sudo.
Команда sudo позволяет запускать отдельные команды с повышением привилегий (по умолчанию с правами root) пользуясь непривилегированной учетной записью. Давайте разберемся, что же требуется для работы этой утилиты.
Что такое root-права?
Сразу оговорюсь — я не буду вдаваться в технические детали реализации самого процесса рутирования телефона, поскольку недостаточно компетентен в этом, да и статья не про это.
Простыми словами — это права суперпользователя, которые вы можете делегировать одним приложениям и отказывать в доступе к ним другим. С этими правами приложения могут использовать команду su и обходить стандартные ограничения Android, получать доступ к системным файлам и папкам, внедряться в память других процессов и так далее.
Зачастую, в схеме root имеются 2 части — сервер, который выполняет основную программную работу и клиент, который необходим для взаимодействия пользователя с первым, позволяя гибко настраивать систему выдачи этих самых прав.
Подробнее вы можете почитать на сайтах, как ни странно, компаний, разрабатывающих антивирусные решения, вроде Eset или Kaspersky, поскольку данный вопрос непосредственно связан с безопасностью системы Android.
Как вы знаете, Linux очень серьезно относится к управлению пользователями и предоставлению им прав на работу с системой. Обычный пользователь может записывать файлы только в свой каталог и каталог /tmp/. Также есть возможность читать некоторые файлы в корневой файловой системе. Но вы не можете устанавливать программы, ведь для этого нужно право на запись, не можете изменять атрибуты файлов, не можете запускать сервисы, не можете читать некоторые файлы логов и еще много чего не можете.
В Linux управлять корневой файловой системой и создавать там файлы имеет право только пользователь root.
В этой статье мы рассмотрим какие программы нужны для того, чтобы получить права root пользователя linux, как они работают, как выполнять программу с правами root от обычного пользователя и как запускать графические программы с правами root. А также выясним что такое sudo в чем разница su или sudo.
Очень долго перечислять чего не может обычный пользователь Linux, проще сказать на что у него есть право, а именно при стандартной настройке полномочий для файлов в Linux, обычный пользователь может:
- Читать, писать и изменять атрибуты файлов в своем каталоге
- Читать, писать, изменять атрибуты файлов в каталоге /tmp
- Выполнять программы там, где это не запрещено с помощью флага noexec
- Читать файлы, для которых установлен флаг чтения для всех пользователей.
Если же нужно сделать что-то большее нам понадобятся права root пользователя linux. У root есть право делать все в вашей файловой системе независимо от того какие права установлены на файл.
Очень часто владелец Android планшета или телефона сталкивается с загадочным словосочетанием «root права». Что же это такое?
Пользователи linux , что такое права доступа root обычно знают, а для Windows пользователей — это возможность входа в систему от имени администратора. Если коротко, root права дают нам возможность делать с системой все что заблагорассудится: удалять, редактировать, добавлять файлы в том числе и системные.
А что же конкретно мы можем получить, имея root права? Вот примерный
список возможностей, которые открываются перед пользователем системы Android, обладающего root правами:
Процедура получения root на разных устройствах происходит по-своему. На некоторых достаточно установить универсальное приложение, некоторым требуется своя программа, а на некоторые сначала нужно разблокировать загрузчик системы, но существуют универсальные программы, с помощью которых можно получить root права на большинстве Android устройств.
К таким приложениям относятся программы Z4Root, Universal Androot, SuperOneClick, однако они могут не работать с операционной системой Android весии 2.3 и старше.
Для получения root прав в системе Android 2.3 GingerBread можно воспользоваться программой GingerBreak.
Получение root прав на устройствах с операционной системой Android Honeycomb 3.0 пока требует умения работы с программой adb, и процедура носит индивидуальный характер для каждого устройства.
Как получить root права на:
Root для Samsung Galaxy Note (и других устройств) с помощью DooMLoRD Easy Rooting Toolkit
Acer Iconia Tab A500.
Acer Iconia Tab A100
Amazon Kindle Fire
Archos 80 G9
Asus Eee Pad Transformer и Asus Eee Pad Transformer Prime с помощью ViperMOD PrimeTime
Asus Eee Pad Transformer в Android 3.2
Dell Streak 7
Lenovo IdeaPAD A1
Motorola Xoom в Android 3.1.
Samsung Galaxy Tab 10.1.
Samsung Galaxy Tab 8.9
Samsung Galaxy Tab 7.0 Plus
Sony Tablet S
Viewsonic Viewpad 10S.
Как получить root права, установить Clockwork Mod и прошить кастомную Android 3.1 прошивку на Asus Eee Pad Transformer.
Уровень сложности: для продвинутых. Несмотря на то, что операционная система Android является гораздо более открытой, чем большинство конкурентов, все же в ней тоже существуют свои запреты и ограничения. Обычному пользователю не позволят бесцеремонно вмешиваться в работу системных программ, удалять важные файлы или делать потенциально опасные настройки. Однако, все эти возможности становятся доступны в том случае, если владелец получает права суперпользователя или так называемый root. В этой статье мы расскажем, какие дополнительные возможности это дает, чем опасно и как это сделать.
Что такое Root?
Рутирование устройства означает получение прав суперпользователя, что примерно соответствует аналогичному понятию из мира Linux. Благодаря этому вы сможете выполнять практически любые действия, в том числе потенциально опасные. Другими словами, это получение полного контроля над своим устройством.
Зачем это нужно?
Среди преимуществ можно выделить следующее:
- получение доступа и возможность изменения системных файлов и приложений;
- возможность установки множества приложений, которые требуют для своей работы root:
- установка сторонних прошивок и модов;
- удаление предустановленных программ и прочего мусора;
- активация многих дополнительных функций Android;
- увеличение производительности и автономности с помощью специальных программ и твиков.
Какие минусы и опасности получения прав суперпользователя?
В Интернете достаточно страшилок по этому поводу и некоторые из них имеют под собой почву. Итак, среди недостатков root замечены следующие:
- это лишает вас гарантии (на самом деле все признаки этой операции можно устранить);
- вы не сможете получать обновления по воздуху от производителя;
- в некоторых случаях процедура получения прав суперпользователя грозит выходом из строя вашего устройства (но чаще всего гаджет можно оживить).
Как получить root на моем устройстве?
Процедура получения прав суперпользователя, как правило, не сложная и при внимательном выполнении всех инструкций проходит без всяких проблем. Более того, создано несколько универсальных утилит, которые автоматизируют этот процесс и делают доступным даже самым начинающим пользователям. Одной из самых известных является Framaroot. Эта программа позволяет рутировать очень большое количество разных устройств. И даже если название вашего гаджета отсутствует в списке поддерживаемых, все равно имеет смысл попробовать, так как есть довольно большая вероятность получения root, а негативных последствий точно не будет.
Итак, для получения root с помощью программы Framaroot необходимо выполнить следующие действия.
2. Установите программу из загруженного apk-файла на свое устройство.
3. Запустите утилиту. В том случае, если устройство поддерживается программой, то на главном экране вы увидите выпадающий список возможных действий, среди которых есть варианты для получения и удаления root. Кроме этого, чуть ниже имеется одно или несколько названий эксплоитов, которые доступны для применения.
4. Тапните по одному из доступных эксплоитов и через пару секунд появится подсказка, описывающая результаты его работы. Если один способ не срабатывает, то попробуйте другой. Иногда бывает, что при получении прав суперпользователя Framaroot аварийно закрывается. В этом случае просто перезапустите программу и попробуйте еще раз.
5. Как только вы получите подсказку, что устройство успешно рутировано, следует перезагрузить устройство.
Что делать, если Root так и не был получен?
Framaroot является достаточно универсальной программой, но даже она не может обеспечить успешную работу на всем спектре Android-устройств. В этом случае посетите форум нашего сайта, найдите тему, посвященную вашему устройству и там вы, скорее всего, обнаружите очень подробные и действенные инструкции, посвященные получению прав суперпользователя именно на вашем смартфоне или планшете.
Графически приложения от имени суперпользователя
Для запуска графических приложений от имени суперпользователя существуют специальные утилиты. Они сохраняют все необходимые переменные окружения и полномочия. В KDE это команда kdesu, а в Gnome команда gksu.
Просто наберите gksu или kdesu, а затем нужную команду:
Эта команда запустит файловый менеджер KDE с правами суперпользователя. В Gnome это будет выглядеть вот так:
Программа запросит пароль, уже в графическом окне, а потом откроется файловый менеджер.
Так стоит ли «рутовать» Android?
Использовать систему с правами суперпользователя — это как водить многотонный грузовик. Если вы действительно умеет это делать — то почему бы и нет. Но если не умеете — то сначала стоит получить необходимые знания и навыки. В общем, если вопрос «Как пропатчить KDE2 под FreeBSD?» у вас ассоциируется исключительно с аниме, то «рутовать» Android мы вам не советуем.
Еще несколько советов:
- Старайтесь устанавливать программы из официальных магазинов. Впрочем, не стоит забывать о том, что и в Google Play регулярно пролезают трояны.
- Поэтому как на «рутованных», так и на » нерутованных» Android устанавливать стоит только известные приложения от известных разработчиков, и только те, которые вам действительно нужны.
- Проверить устанавливаемое приложение можно антивирусом, например нашим бесплатным Kaspersky Internet Security для Android.
Установка и настройка
В ОС Ubuntu sudo включена по умолчанию, а в Debian, если в процессе установки не был выбран соответствующий пакет, скорее всего будет следующая картина:
Значит, требуется установить недостающий пакет. Обновляем информацию о репозиториях и устанавливаем sudo:
apt-get update
apt-get install sudo
Дожидаемся окончания процесса:
После успешной установки потребуется сконфигурировать sudo, определив, какие пользователи или группы смогут использовать повышение привилегий и в каком объеме. Все эти настройки хранятся в конфигурационном файле /etc/sudoers, однако вносить в него изменения напрямую настоятельно не рекомендуется. Для этих целей используется специальная команда:
которая запускает текстовый редактор с конфигурационным файлом:
За предоставление прав здесь отвечают две строки:
root ALL=(ALL:ALL) ALL
%sudo ALL=(ALL:ALL) ALL
Первая строка назначает права для учетной записи root, вторая устанавливает права для членов группы sudo, которая была создана при установке пакета (знак % перед названием означает, что имя относится к группе пользователей). Соответственно, у нас есть два основных способа предоставить пользовательской учетной записи право использовать sudo:
После изменения членства в группе, потребуется заново авторизоваться в этой учетной записи для применения новой конфигурации. Данный метод рекомендуется в тех случаях, когда пользователю необходимо предоставить полные права.
Добавлять новую запись рекомендуется в тех случаях, когда список привилегий будет корректироваться (об этом чуть позднее). Если мы внесли изменения в файл, нужно их сохранить нажатием сочетания клавиш Ctrl-O и выйти из редактора — Ctrl-X.
Теперь можно проверить корректность работы:
Зачем вообще «рутуют» Android?
Получение прав суперпользователя, в народе известное как «рутование», позволяет получить полный контроль над устройством. Обладая правами суперпользователя на устройстве, можно сделать практически все что угодно. Поэтому и существует огромное количество приложений (в том числе и в официальном магазине Google Play), требующих root-права для работы.
Чаще всего такие права нужны для того, чтобы делать нечто такое, что в Android обычно сделать невозможно — например, ограничивать сетевую активность некоторых или всех приложений, удалять надоевшие предустановленные приложения, разгонять процессор и так далее.
Вот наиболее популярные причины, по которым пользователи «рутуют» свои Android-устройства (здесь и далее списки составлены по данным, полученным из Kaspersky Security Network):
- Установка приложений для взлома игр. Такие приложения получают доступ к памяти игр, чтобы изменять в них те или иные параметры или позволять играть бесплатно.
- Работа с файловой системой. В первую очередь права супервользователя используются для удаления системных и предустановленных приложений. Кроме того, неограниченный доступ к файловой системе может пригодиться для восстановления удаленных файлов, перемещения приложений на карту памяти, а также для работы «рут-эксплореров» — программ для работы с файлами с расширенными возможностями.
- Тонкая настройка, разгон или очистка устройства. Под разгоном имеется в виду повышение тактовой частоты процессора устройства, чтобы оно быстрее работало.
- Перепрошивка. В первую очередь – для установки нештатных прошивок, сделанных энтузиастами.
Какие программы для получения root самые популярные?
По нашим данным, для получения прав суперпользователя люди чаще всего используют вот эти приложения (в порядке убывания популярности):
- Kingroot
- 360 Root
- Framaroot
- Baidu Easy Root
- Towelroot
- One Click Root
- Mgyun
К сожалению, многие из этих программ либо сами показывают рекламу, либо устанавливают на устройство дополнительные приложения, содержащие рекламные модули. Строго говоря, такое поведение нельзя назвать вредоносным, но ничего приятного в этом нет.
На всякий случай обращаем ваше внимание на то, что этот «хит-парад» не является нашей рекомендацией по использованию приложений для «рутования», он всего лишь отражает их популярность среди пользователей.
Чем опасно «рутование»? Что может пойти не так?
Как мы уже сказали, права суперпользователя позволяют получить полный контроль над устройством. И помимо указанных выше преимуществ, у этого есть и недостатки.
Важно понимать, что наличие у владельца устройства прав суперпользователя в системе нарушает главные принципы безопасности Android. То есть получение root — это по сути взлом операционной системы вашего планшета или смартфона вашими же руками.
В обычной ситуации все приложения в Android работают в изолированных средах (так называемых «песочницах», sandbox) и не могут получить доступ к другим приложениям или к системе. Но, обладая правами суперпользователя, приложение может выйти из своей изолированной среды и получить полный контроль над устройством.
При наличии прав суперпользователя приложения могут творить на устройстве все, что им заблагорассудится, — например, просматривать, изменять или удалять любые файлы, в том числе необходимые для работы устройства.
Стоит учитывать, что даже в легитимных, «чистых» приложениях бывают ошибки. Так что неприятности могут произойти в том числе «не специально», а просто из-за того, что разработчики где-то что-то не так сделали.
Также следует иметь в виду, что часто в результате «рутования» теряется гарантия устройства. А иногда в процессе получения прав root можно нарушить работу устройства так, что оно превратится в натуральный кирпич, вообще не подающий никаких признаков жизни, — и деньги вам за него не вернут.
А что в «рутованном» Android с вредоносными приложениями?
Для вредоносных приложений после получения прав суперпользователя наступает полное раздолье. Собственно, многие из троянов для Android как раз и пытаются всеми силами «получить рута». Если же пользователь сделал это самостоятельно — это просто подарок для разработчиков зловреда.
Что могут делать мобильные трояны при наличии прав суперпользователя:
- Воровать пароли из браузера — именно это делал банковский троян Tordow.
- Скрытно покупать приложения на Google Play — этим промышляют трояны Guerrilla и Ztorg.
- Подменять адреса в браузере — такой идеальный фишинг реализован в трояне Triada.
- Скрытно устанавливать приложения, в том числе в системные разделы.
- Модифицировать прошивку так, что даже после сброса устройства до заводских установок троянец останется на устройстве.
- Некоторые троянцы-вымогатели используют права суперпользователя для того, чтобы надежней закрепиться в системе.
Стоит отметить, что в большинстве указанных случаев зловреды способны сами получить права суперпользователя на устройстве с помощью использования уязвимостей в системе. Но некоторые зловреды используют уже существующие права. Кроме того, по нашим данным порядка 5% зловредов проверяют наличие прав рута на устройстве — например, так делает мобильный троян Obad.
В каких странах чаще всего «рутуют»?
По нашей статистике чаще всего это делают в Венесуэле — 26% пользователей из этой страны пользуются «рутованными» смартфонами. Среди африканских стран лидирует Алжир — 19% смартфонов там работают с правами суперпользователя. В Азии Android с root наиболее популярен в Бангладеш — 13%. Ну а в Европе на первом месте Молдова с впечатляющими 15%.
Что касается России, то у нас «рутованными» смартфонами пользуются 6,6% владельцев Android-устройств — и это близко к среднемировому показателю (7,6%).
Вот что еще интересно: по нашей статистике, топ-10 стран, в которых чаще всего «рутуют» Android, и топ-10 стран, в которых чаще всего случаются атаки на мобильные устройства, совпадают на 60%. А 9 из 10 самых «рутованных» стран входят в топ-25 самых атакуемых.
Работает ли антивирус в «рутованном» Android
К сожалению, преимуществами получения прав суперпользователя пользуются в основном плохие парни — хорошим парням приходится играть по правилам. Так что эффективность работы антивируса после получения на устройстве прав суперпользователя не повышается, а вот у вредоносных приложений может появиться масса новых способностей по обходу защиты.
Конечно, все зависит от конкретного зловреда и от того, насколько хорошо он умеет использовать возможности «рутованной» системы. Но в целом можно сказать одно: риск того, что защитное решение пропустит угрозу на «рутованном» устройстве, выше, чем на устройстве без прав суперпользователя.
Полезное
В состав sudo входит команда sudoedit, которая запускает текстовый редактор с указанным файлом сразу с повышенными привилегиями, то есть вместо команды:
sudo nano /etc/network/interfaces
Если требуется длительная работа в режиме повышенных привилегий и вводить sudo для каждой команды неудобно, можно запустить через sudo экземпляр командного интерпретатора:
и продолжить работу в нем — все команды будут запускаться с повышенными правами. По завершении работы выходим из интерпретатора командой exit.
Немного истории
Обладатели ранних версий Android обычно получали права root с использованием какой-либо уязвимости в системе безопасности Android или одного из системных приложений, установленных производителем. Использование уязвимостей позволяло приложению «вырваться» из песочницы и получить права системного процесса через эскалацию привилегий.
Чтобы не повторять процесс каждый раз и чтобы предоставить возможность и другим приложениям использовать права суперпользователя, в системный раздел помещали файл su
(как правило, в каталоге /system/xbin/
) и приложение для обработки запросов прав root (в /system/app/
). Чтобы получить права root, приложение запускало su, в этот момент срабатывал менеджер обработки запросов и запрашивал у пользователя подтверждение.
Такая схема прекрасно работала во всех версиях Android вплоть до пятой, а добытый с ее помощью root-доступ чаще всего не мешал получать обновления прошивок и даже иногда сохранялся после таких обновлений. Популярностью пользовались многочисленные приложения, эксплуатировавшие одну или несколько уязвимостей (например, Towelroot). Со временем большую аудиторию набрали китайские приложения KingRoot и Kingo Root, включавшие в себя большие коллекции эксплоитов, которые скачивались непосредственно в момент запуска с китайских серверов. В случае успешной эскалации привилегий эти приложения прописывали в системный раздел много интересного; удалить их можно было либо вместе с root-доступом, либо с помощью специального «чистильщика», сделанного разработчиком SuperSU Chainfire.
В Android 5.0 была введена новая система обновлений. Теперь в файле OTA изменения прописывались не на файловом, а на блочном уровне; чтобы не повредить файловую систему, инсталлятор обновления подсчитывал контрольную сумму системного раздела. Естественно, записанный в раздел /system
файл su
изменял контрольную сумму раздела, и обновление не устанавливалось (а в тех случаях, когда оно все-таки ставилось, был высокий шанс получить на выходе «кирпич»).
Шестая версия Android принесла и обновленную систему безопасности, которая (временно) сделала невозможным получение прав суперпользователя простой записью приложения в системный раздел. В результате появился обходной путь — так называемый systemless root, внедряющий su в ramdisk вместо модификации системного раздела. На некоторых устройствах с «бессистемным» root-доступом даже получалось устанавливать OTA-обновления; впрочем, гарантии тут никакой.
Как был получен root на HTC Dream G1
Впервые root был получен на первом в мире Android-устройстве HTC Dream G1, выпущенном в далеком 2008 году. На устройстве был запущен сервис Telnet с правами root и без аутентификации. Для получения временного root-доступа было достаточно подключиться к смартфону по Telnet, для постоянного — залить в системный раздел бинарный файл su.
Способы получения root
Раньше, когда деревья были высокими а слоны мохнатыми, во времена Android ~4, существовали специальные утилиты как на само устройство так и на ПК, с помощью которых можно было получить root.
Если выражаться точнее, эти утилиты взламывали систему одним из множества способов и снисходительно делились с вами кусочком этого доступа.
Большая часть таких утилит была на китайском языке и тыкаться приходилось буквально вслепую. Вот самые яркие представители этого класса:
King Root (не путать с Kingo Root)
Преимущества такого способа получения очевидны — простота получения и относительно высокий шанс успеха. Однако такие недостатки как шпионаж, фоновая установка ПО и в целом непрозрачность схемы, как по мне, перекрывают это преимущество с лихвой. Тем более, что на последних версиях Android вероятность успеха получения прав с помощью этих утилит всё ниже. Не рекомендую данный способ к применению.
В определенный момент, как альтернатива этим утилитам, на арену рутирования выходит OpenSource-проект Magisk разработанный, несомненно, талантливым, программистом, под ником topjohnwu.
Главная особенность данного метода — возможность «внесистемного» внесения изменений с помощью подключаемых модулей. Это означает, что с выключением Magisk-модуля, отменялись изменения в системе, которые вносил этот модуль.
Работает это, на самом деле, проще чем можно подумать. В корне файловой системы создается «зеркало» раздела data (так и называется — data_mirror) и необходимые изменения вносятся в систему посредством создания символических ссылок на этот раздел.
Также, старые версии Magisk «из коробки» способны скрыть факт наличия root-прав от программ, которые не любят их (банковские приложения, например). Новые версии требуют установки дополнительных модулей.
Причина #6. X-Tools
Почти все инструменты для перехвата трафика и пентестинга требуют доступ к низкоуровневым функциям ядра, таким как возможность создавать RAW-пакеты и переключение сетевого адаптера в режим мониторинга. Android не открывает доступ к таким функциям сторонним приложениям, но когда есть root — преград нет.
После получения root на смартфоне/планшете можно использовать огромное количество разнообразных инструментов, таких как сетевой сканер Nmap, представленный в маркете в нескольких вариантах (например Network Mapper), снифер tcpdump (Shark for Root), знаменитый инструмент для перехвата и анализа пакетов Intercepter-NG и даже легендарный Linux-дистрибутив Kali. В последнем случае, правда, понадобится один из Нексусов либо смартфон OnePlus One. О том, как его установить, читай в статье «Атака со смартфона».
Причина #7. Двойная загрузка
Имея root, на смартфоне можно организовать двойную, тройную и какую угодно другую загрузку. Просто устанавливаем MultiROM Manager, нажимаем кнопку Install, перезагружаемся и получаем смартфон, на который можно установить сколько угодно прошивок, причем не только Android, но и Ubuntu Touch, Sailfish OS или Firefox OS.
Все, что требуется для этого сделать, — это найти нужную прошивку для своего аппарата, положить ее на карту памяти, перезагрузиться в recovery (включение с зажатой кнопкой увеличения громкости) и прошить ее через меню Advanced -> MultiROM -> Add ROM. При следующей загрузке новая прошивка появится в загрузочном меню. И ее даже можно будет поменять местами с основной.
Переключение на суперпользователя в терминале
Теперь мы подошли к более интересному и практичному. С помощью специальных утилит вы можете переключить текущий эмулятор терминала в окружения суперпользователя и выполнять все следующие команды не от своего имени, а от его, таким образом, дав программе права root linux. Для этого существует утилита su. Вообще говоря, эта утилита позволяет не только переключаться на пользователя root но и на любого другого пользователя, но по умолчанию используется именно root. Рассмотрим ее подробнее. Команда su linux имеет следующий синтаксис:
Вот ее основные опции:
- -c, —command — выполнить команду
- -g, —group — установить основную группу пользователя (только для root)
- -G —supp-group — дополнительные группы пользователя (только для root)
- -, -l, —login — режим входа, будут очищены и инициализированы с учетом нового пользователя все переменные окружения, а также изменен домашний каталог
- -p, —preserve-environment — сохранить переменные окружения
- -s, —shell — задать оболочку для входа
- —version — отобразить версию программы.
Теперь немного поэкспериментируем, чтобы понять как работает команда su linux.
Сначала выполним su без параметров, но для начала создадим переменную окружения, чтобы проверить как с ними обходится эта команда:
Теперь смотрим что получилось:
Из этих команд мы видим, что теперь мы пользователь root, но домашней директорией считается директория нашего предыдущего пользователя и наша переменная не сохранилась также изменилась переменная PATH, теперь там добавлен путь /sbin.
И повторим ту же комбинацию:
Та же ситуация, только на этот раз изменена ко всему еще и домашняя директория на директорию root. Но мы можем сохранить наши переменные окружения, если это нужно, для этого есть опция -p:
Как видите, наша переменная осталась. Вы также можете переключится на любого другого пользователя. Например:
su - test
Более подробно о команде su вы можете почитать в отдельной статье. Получение прав суперпользователя таким способом используется во многих дистрибутивах, например, Debian, OpenSUSE, ArchLInux, Gentoo и т д. Но в Ubuntu, как дистрибутиве для начинающих вход под пользователем root отключен. Это сделано потому, что это тоже не очень безопасно, вы можете забыть что выполняете команду от root и что-то натворить в системе. Поэтому переходим к следующей программе.
Присоединяйся к сообществу «Xakep. ru»!
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку!
Подробнее
Причина #3. Обход ограничений маркета
При заливке приложения в маркет у каждого разработчика есть масса опций для фильтрации устройств, с которыми должно быть совместимо приложение. Это могут быть модель устройства, архитектура процессора и даже мобильный оператор и страна. Если твое устройство не пройдет такой фильтр, то запрашиваемое приложение просто не будет найдено либо ты увидишь пометку «Приложение несовместимо с вашим устройством» в веб-версии маркета.
Причина #10. Тюнинг системы
Последняя причина, по которой стоит получить root, — это так называемая оптимизация системы. Я не просто так говорю «так называемая» и не случайно поставил эту причину на последнее место. Дело в том, что практически не существует способов повысить производительность системы на стоковой прошивке смартфона нормального производителя системы. Все, что ты выиграешь, — это максимум 1–2%.
С другой стороны, оптимизацию стоит делать на неоптимизированных прошивках китайских смартфонов и в специфических ситуациях, когда одним из аспектов работы системы можно пожертвовать в угоду другому (например, закрытие всех приложений перед запуском игры). Но и здесь надо быть осторожным и понимать, что ты делаешь.
Причина #9. Бэкап
Начиная с версии 3.1 в Android существует встроенный механизм бэкапа, скрытый от пользователя, но используемый такими инструментами, как, например, Helium. Однако сам по себе он очень простой и позволяет сделать бэкап только сторонних приложений и их настроек, что очень далеко от понятия «полный бэкап системы».
Однако есть и инструмент, способный сбэкапить абсолютно все, включая все приложения, их настройки, настройки самой системы, а также выполнить множество сервисных функций, таких, например, как заморозка приложений, когда система не видит программу, но сама программа присутствует на устройстве. Приложение носит имя Titanium Backup, и, конечно же, оно требует права root.
Вход под суперпользователем
Вы получите полноценное окружение root с возможностью выполнять все действия, но такой способ очень непрактичный, так как вы теряете все преимущества использования графического интерфейса.
Тонкая настройка
Таким образом, обычный пользователь может запускать команды с правами учетной записи root не зная ее пароль. Это очень удобно, но может быть небезопасно — есть ли возможность ограничить круг команд, которые можно исполнять посредством sudo? Да, и поможет нам в этом тот же самый конфигурационный файл. Снова запускаем visudo и разбираемся дальше. Нас интересуют параметры, указанные после имени пользователя:
Разберем их подробнее:
- ALL=(ALL:ALL) ALL — первый параметр определяет к какому хосту применяется конфигурация. При использовании выделенного сервера параметр можно оставить без изменений;
- ALL=(ALL:ALL) ALL — параметры в скобках определяют с полномочиями какого пользователя (первый параметр) и/или группы (второй параметр) будет выполняться команда. По умолчанию sudo выполняет команду от имени root, однако при запуске с ключом –u можно указать другую учетную запись, а с ключом –g другую группу, чьи полномочия будут использованы при запуске;
- ALL=(ALL:ALL) ALL — третий параметр определяет к каким файлам и командам относятся данные настройки.
Исходя из вышесказанного, при необходимости определить перечень разрешенных команд заменяем последний параметр ALL тем, что нам требуется, перечисляя команды через запятую. Например, строка:
Причина #8. Полная отвязка от Google и других сервисов
Кроме того что помогает избавиться от Bloatware (см. причину номер один), root также позволяет полностью отвязать смартфон от каких-либо сервисов сторонних компаний, будь то Google или сервисы самого производителя устройства. В журнале уже была опубликована большая статья, посвященная этой теме, поэтому не буду повторяться, скажу лишь, что дополнительные сведения о том, какие компоненты системы сливают информацию, а какие нет, всегда можно узнать на профильных форумах, посвященных конкретному устройству или компании-производителю.
Получение прав root без переключения
Чтобы реализовать максимально безопасный интерфейс для работы с правами суперпользователя в Linux была разработана команда sudo. Давайте рассмотрим что такое sudo. Эта команда пишется перед каждой командой, которую нужно выполнить от имени суперпользователя, и для ее выполнения нужно ввести пароль уже не root, а всего лишь вашего пользователя. Так же, как и в предыдущей, в этой утилиты есть свои опции. Сначала рассмотрим синтаксис:
- -b — выполнять запускаемую утилиту в фоне
- -E — сохранить переменные окружения
- -g — запустить команду от группы
- -H — использовать домашний каталог
- -l — показать список полномочий в sudo для текущего пользователя
- -r — использовать для команды роль SELinux
- -s — использовать оболочку
- -u — запустить команду от имени пользователя, если не задано используется root
- -i — не выполнять команду, а войти в оболочку, эквивалентно su —
Вы можете выполнить те же эксперименты, только для этой команды, чтобы понять как использовать команду sudo. Например:
sudo -u test ls
Использование sudo — это рекомендованный способ выполнять команды от имени суперпользователя в Linux. Так вы не забудете с чем имеете дело и меньше всего рискуете повредить систему. Более подробно о команде sudo читайте здесь. Но остался еще один нерешенный вопрос — как быть с графическими утилитами? Ведь команда sudo их не запускает, а запускать графическую оболочку от имени root небезопасно. Это мы и рассмотрим далее.
Опасности root-прав
Не буду утверждать, что root-права это безопасно — любой необкатанный magisk модуль может привести систему в нерабочее состояние, при неумелом редактировании системных файлов система также придет в негодность, а функционал программ, запрашивающих root не всегда прозрачен. Не давайте root права приложениям, которым, по вашему мнению, они не нужны! Периодически такие права запрашивают Яндекс Карты, статистики ради или для чего-то еще — неизвестно, но проверять не хочется.
Говорить о том, что наличие root как-то сильно ослабляет защиту системы тоже не буду — доступ вполне себе контролируемый, и если вы будете соблюдать элементарную цифровую гигену, никаких проблем не будет.
Самое опасное, наверное — потеря гарантии производителя, что логично.
Мой набор Magisk-модулей
Busybox — дает доступ приложениям к встроенному busybox от Magisk
No Storage Restricts — убирает ограничения в выборе папок в файловом менеджере
LuckyPatcher — его модуль нужен для переноса приложений в системный раздел
Move Certificates — перенос пользовательских сертификатов в систему
NFC Screen Off — работа NFC при выключенном экране
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Получали ли вы Root на своем устройстве?
Нет и не планирую
Нет, но хочу попробовать
Да, но сейчас не имею
Да, пользуюсь root-правами
Проголосовали 127 пользователей.
Воздержались 9 пользователей.
Настройка 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-права?
Мы, наконец, переходим от скучных лекций к решительным действиям.
Для получения таких прав, вы можете воспользоваться одной из перечисленных выше утилит, но только в том случае, если у вас есть возможность восстановить систему и нет возможности установить 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», которое при первом запуске обновится и будет работать. Самое важно и интересное кроется в настройке.
Причина #2. Системные функции
При всей дружелюбности к разработчикам сторонних приложений, Android не позволяет им запускать руки слишком далеко, накладывая определенные ограничения. Например, современные версии Android уже не дают сторонним приложениям переводить смартфон в режим полета или включать GPS-модуль, так что виджеты, умеющие это делать, обычно требуют root.
Также вполне очевидно, что Android не позволит стороннему софту лезть в низкоуровневые настройки и уж тем более не даст прямой доступ к драйверам или прослойке HAL, обеспечивающей интерфейс между Android и железными компонентами. Между тем такой доступ может открыть большие и нередко просто необходимые каждому пользователю возможности. Приведу три примера.
- CF.lumen — приложение вклинивается между видеодрайвером и системой и позволяет менять цветопередачу экрана в зависимости от времени суток. Вечером экран будет иметь более теплые оттенки (отливая желтизной), а днем стандартные, холодные. Как результат, глаза меньше устают при чтении без внешнего освещения, а выработка твоим организмом мелатонина, влияющего на легкость засыпания, не приостанавливается. По сути, это аналог приложения f.flux для Маков и iOS (и с недавнего времени Android), RedShift для Windows и Linux и функции Night Shift в iOS 9.3.
- Recently изменяет поведение кнопки «Запущенные приложения» в Android 5.0+, а точнее возвращает ее к поведению предыдущих версий Android. После активации приложения кнопка будет показывать только реально запущенные приложения, а не все, что ты запускал за последнюю неделю.
- Naptime — приложение для тюнинга режима энергосбережения Doze в Android 6.0. Позволяет снизить (или повысить) тайм-аут, по истечении которого смартфон входит в режим агрессивного энергосбережения (по умолчанию девайс должен пролежать в спокойствии час). Подробнее читай в статье «Дозируй батарею правильно!».
Причина #1. Bloatware
Практически все устройства на базе Android поставляются с огромным количеством предустановленных приложений. Так, в прошивках HTC в каталогах /system/app
и /system/priv-app
находится около 400 пакетов, и это не только языковые пакеты и компоненты сервисов самой компании, но и приложения Google, которая требует, чтобы смартфон с предустановленным Google Play Market также содержал и несколько десятков других приложений компании (Gmail, Google Drive, Google Keep и другие).
При достаточном объеме встроенной памяти это может показаться не слишком серьезной проблемой, однако многие из этих приложений не просто установлены и «спокойно лежат» в своих каталогах, а стартуют при загрузке системы, могут будить устройство с помощью AlarmManager (служба, собирающая статистику, например) и просыпаться в ответ на системные события (ты установил сторонний диалер, а встроенный все равно просыпается при звонке). Так что прощай, заряд батареи и свободная оперативка.
Имея права root, удалить «блоат» очень просто. Для этого есть множество приложений, которые легко найти в маркете по запросу «system app remover». Придется, конечно, разобраться, какие приложения можно удалять, а какие лучше оставить, но эту информацию легко найти на форумах, в том числе русскоязычных.
Зачем нужны root-права?
Честно говоря, когда мне задают вопрос, зачем я получал root-права на своем девайсе, я иногда впадаю в ступор, поскольку использую какое-то специфичное ПО, требующее таких разрешений достаточно редко и точечно.
Как хорошие примеры могу привести эффективное использование программ-firewalls, которые с помощью расширенных прав могут более гибко и эффективно контролировать траффик. Также, программы предназначенные для очистки «мусорных» файлов работают гораздо эффективнее, как и разнообразные файловые менеджеры, которые могут позволить вам редактировать системные файлы. Программы для резервного копирования приложений могут сохранять все данные приложения.
Отдельно хотелось бы упомянуть Xposed Framework — специализированное ПО в виде фреймворка, позволяющее одним приложениям изменять поведение системных функций Android в других приложениях и получать более полный доступ к их ресурсам. Например, именно на этом принципе основан Xposed-модуль для перевода текста на любой язык прямо в целевом приложении.
Root в Android 7
Особняком стоят устройства, выпущенные с Android 7 на борту (впрочем, то, о чем мы сейчас будем писать, относится и ко многим устройствам, которые получают Android 7 в качестве обновления).
Как ты, наверное, знаешь, механизм безопасной загрузки (Verified Boot) был реализован в Android давным-давно, еще в версии 4.4 KitKat. Его цель — защитить пользователя от атак, направленных на модификацию системы и внедрение в нее кода еще до начала загрузки системы. Для этого он использует скрытый в модуле TEE ключ, чтобы сверить цифровую подпись загрузчика, далее загрузчик сверяет цифровую подпись раздела boot, а он, в свою очередь, проверяет целостность системного раздела с помощью механизма dm-verity (Device Mapper verity).
Такая цепочка проверок (называемая root of trust) позволяет удостовериться в целостности и отсутствии модификаций в любом компоненте загрузки, начиная от загрузчика и заканчивая самой ОС. Но если большинство устройств под управлением Android 4.4–6.0 (за редкими исключениями вроде смартфонов BlackBerry и Samsung с активированным Knox) в случае неуспешной проверки просто выводили предупреждение, но продолжали загрузку, то в Android 7.0 ситуация изменилась и новая-старая функция проверки целостности системы стала обязательной.
Чем это грозит? Тем, что старый метод получения root через эскалацию привилегий в Android 7 просто не работает. Даже если приложения класса KingRoot, Kingo Root и им подобные смогут рутануть девайс (а в данный момент они не могут), устройство после этого просто не загрузится.
Как это обойти? Разблокировать загрузчик штатными средствами и установить SuperSU или Magisk. В этом случае загрузчик просто отключит механизм Verified Boot. Однако не стоит даже пытаться взломать загрузчик на устройствах, не предполагающих такую возможность. Даже если это удастся сделать, взломанный загрузчик не пройдет проверку цифровой подписи — и смартфон превратится в кирпич.
Причина #4. Реклама
Но если у тебя есть root, проблема решается очень просто, причем раз и навсегда, на уровне всей системы. Достаточно установить AdAway, нажать кнопку «Загрузка файлов и применение блокировки рекламы» и перезагрузиться. В дополнение к полному избавлению от рекламы ты получишь сокращение потребления трафика, так как хосты, раздающие рекламу, жестко блокируются на самом низком уровне (если быть точным, они просто перенаправляются на localhost с помощью файла /system/etc/hosts
).
Причина #5. Xposed
Xposed — это фреймворк, позволяющий приложениям вклиниваться в работу любого компонента системы или приложения и изменять его поведение (так же как это делает фреймворк MobileSubstrate для iOS). Простыми словами — Xposed позволяет устанавливать твики, так же как это позволяет делать Cydia в iOS.
Твиков для Xposed существует сотни, буквально на все случаи жизни. С их помощью можно изменять внешний вид системы (твики GravityBox и Android Theme Engine), тонко настраивать прошивки от производителей (Sense Toolbox, XTouchWiz), запускать приложения в плавающем окне (XHaloFloatingWindow), изменять системные настройки отдельно для каждого приложения (App Settings позволяет менять язык, DPI, ориентацию экрана и многое другое), отзывать полномочия на доступ к функциям системы у приложений (XPrivacy) и многое другое.
Выводы
Как видишь, причин получить права root огромное количество, и, я уверен, ты нашел в них те, что тебе действительно необходимы. Да, права root приносят и некоторые опасности, такие как повышенный риск заразиться действительно серьезным вирусом, а также ограничения (например, Сбербанк на root-устройстве позволяет выполнять операции только по шаблонам). Однако наивно было бы думать, что, если ты сможешь получить права root, этого не сможет сделать тот же вирус или человек, решивший похитить деньги с твоей карты.
Выводы
Вот и все. Теперь вы знаете как получить права суперпользователя в Linux, знаете как использовать команду sudo и в чем разница sudo или su. Теперь программы, требующие дополнительных привилегий в системе, не вызовут у вас проблем. Если остались вопросы, пишите в комментариях!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Выводы
Root-права — мощный инструмент, который дает широкий доступ к системе, но как и любой инструмент, им нужно уметь пользоваться, а в неумелых руках он принесет больше вреда, чем пользы.