Рутинг
Рутинг (англ. Rooting) — процесс получения прав суперпользователя (root) на устройствах под управлением операционной системы Android или оболочек Android. Основными целями рутинга являются снятие ограничений производителя либо оператора связи, манипулирование системными приложениями и возможность запуска приложений, требующих прав администратора, а также получения доступа к системным файлам[1][2]. Устройство, прошедшее процесс рутинга, называется рутированным. Практически схожая с рутингом операция для устройств на базе Apple iOS называется Jailbreak, а для устройств на базе Windows Phone — HardSPL.
Описание
Все приложения Android исполняются в изолированной среде[3] и обычно не имеют доступа к другим компонентам платформы и их данным. Разделы, содержащие системные файлы, монтируются в режиме только для чтения. Данные ограничения призваны защитить систему от вредоносного программного обеспечения, потенциально опасной модификации системных настроек пользователем и обеспечить защиту платных приложений от неправомерного копирования.
Пользователь root имеет неограниченный доступ к любому файлу системы независимо от выставленных ограничений прав доступа[4]. Соответственно, приложение, исполняемое от имени root-доступа, также имеет неограниченные права.
Процесс
Процесс рутинга может различаться для различных устройств, но обычно он состоит из следующих этапов:
- Подготовка устройства (например, включение режима отладки по USB, понижение версии прошивки, копирование файлов на карту памяти, разблокирование загрузчика и т. д.);
- Копирование исполняемого файла su в каталог, указанный в переменной PATH (например /system/xbin/su);
- Установка прав запуска с помощью команды chmod.
Для управления правами используются приложения SuperSU и Magisk с графическим интерфейсом.
Виды Root-прав
- Full Root — полные и постоянные root-права без ограничений.
- Shell Root — постоянные root-права, но без доступа к изменению каталога /system.
- Temporary Root — временные root-права. Если нет возможности получить полный Root, получить временный обычно можно всегда. После перезагрузки права суперпользователя пропадают, как и все внесенные изменения. Временные права могут давать некоторые приложения для получения Root-прав[5].
Способы получения Root-прав
Для получения root прав используются различные кастомные рекавери, такие как TWRP, OrangeFox Recovery или CWM, после чего требуется прошить zip-файл SuperSu или Magisk. Также для Magisk имеется способ использующий изменение boot.img в системе, используя его замену с помощью ADB.
На данный момент существует два варианта получения прав root:
- SuperSU (до Android 6)
- Magisk (с Android 5 (6 для версии 26.1) и выше)
Эти программы не используют эксплоиты для получения root прав., а также не используют ПК в большинстве случаев.
Также метод виртуальной ОС — VMOS.
Преимущества и недостатки рутинга
Преимущества:
- Получение информации, которая недоступна с правами обычного пользователя.
- Блокирование рекламы и, соответственно, экономия трафика.
- Контроль действий приложений.
- Установка системных приложений, которым необходимы права root.
- Замена и удаление стандартных программ.
- Разгон или снижение частоты работы процессора.
- Перенос данных и создание резервных копий приложений.
Недостатки:
- Потеря гарантии производителя (не для всех устройств).
- Потеря обновления «по воздуху» (OTA) (не для всех прошивок).
- Отключение системы защиты телефона от вредоносного ПО и несанкционированного доступа (не для всех устройств).
- На большинстве смартфонов без разблокировки загрузчика получение прав суперпользователя невозможно.
- Лишение доступа к приложениям с защитой от Root-прав, если Root не замаскирован.
- Существует вероятность сделать устройство полностью неработоспособным.
Позиция производителей
Официально root-доступ поддерживается только на моделях телефонов для разработчиков (en:Android Dev Phone). Рутинг остальных аппаратов приводит к аннулированию гарантии[6]. Для их защиты производители применяют различные методики: например, блокируют загрузку неподписанной электронной цифровой подписью прошивки, запрещают запись в системную область на аппаратном уровне[7].
В отличие от операционной системы iOS, устанавливаемой в устройства Apple, операционная система Android позволяет устанавливать приложения не только из Google Play, но и из других источников, однако некоторые операторы и производители блокируют загрузку приложений из неофициальных источников. Например, Kindle Fire от Amazon позволяет устанавливать приложения только с Amazon Market. Аналогично блокируется установка приложений на Barnes & Noble Nook Tablet[8].
С развитием альтернативных прошивок, таких как CyanogenMod, MIUI и других, производители пересмотрели свою позицию по рутингу и установке неофициальных прошивок. Они либо поставляют устройства с разблокированным загрузчиком либо предоставляют возможность его разблокировки пользователем. Помимо этого, в CyanogenMod и некоторых других кастомных прошивках имеются по умолчанию все функции root-профиля.
Правовая информация
26 июля 2010 года Бюро охраны авторских прав США официально подтвердило легальность рутинга, запуска несанкционированных приложений сторонних разработчиков и снятия SIM lock[9].
См. также
Примечания
- ↑ Что такое Root права и для чего они нужны? - 4pda
- ↑ Root права Архивная копия от 28 марта 2018 на Wayback Machine - acer-liquid.su
- ↑ Безопасность в Android — Справка // Google Play
- ↑ Права доступа | Linux: Введение . Дата обращения: 18 июля 2012. Архивировано 15 января 2012 года.
- ↑ Что такое Root-права на android и как их получить Архивная копия от 26 июня 2012 на Wayback Machine - android4all
- ↑ Root или не Root, вот в чём вопрос Архивная копия от 18 марта 2013 на Wayback Machine / Habr.com
- ↑ Делаем S-OFF на HTC Desire // d51x.ru / Архивная копия от 10 декабря 2011 на Wayback Machine
- ↑ Kindle Fire and Nook Tablet both get 'upgraded' with reduced functionality Архивная копия от 8 января 2012 на Wayback Machine / ITWorld (англ.)
- ↑ Federal Register / Vol. 75, No. 143 / Tuesday, July 27, 2010 / Rules and Regulations Архивная копия от 20 января 2022 на Wayback Machine (англ.)