Android rooting - это процедура, которая позволяет пользователям телефонов, смартфонов, планшетов (и других устройств, на которых установлена OS Android) получить привилегированный контроль в пределах подсистем Android ("root access", доступ суперпользователя - что это значит, будет обсуждено ниже). Здесь и далее перевод статьи из Википедии [3].
Rooting часто выполняется с целью преодолеть ограничения, которые вводят производители оборудования на некоторых устройствах. Если эти ограничения снять, то можно удалить или заменить системные приложения, изменить их настройки. Можно также запустить специализированные программы, которые требуют прав уровня администратора, или можно выполнить другие действия, которые по-другому выполнить нельзя (если это не работает для рядового пользователя с обычными правами на Android). На Android выполнение rooting-а может также упростить полное удаление и замену операционной системы устройства, обычно это делается с целью установить более свежую версию операционной системы или альтернативной прошивки, даже если это не было предусмотрено производителем.
Так как Android произошел от ядра Linux, то rooting для устройства Android аналогичен получению административных привилегий на Linux или любой другой операционной системы семейства Unix (FreeBSD или OS X).
Root access иногда сравнивают с джаилбрейком (jailbreaking, можно перевести как "побег из тюрьмы") устройств, работающих на операционной системе Apple iOS. Однако здесь используется другие концепции. В тоталитарном мире iOS технические ограничения означают следующее:
1. Нельзя инсталлировать или загрузить модифицированную или полностью новую операционную систему (это делает "locked bootloader", защищенный бутлоадер). 2. Нельзя загрузить на устройства неподписанные приложения. 3. Нельзя запустить установленные пользователем приложения с привилегиями root (нельзя запустить приложение вне окружения защищенной "песочницы").
Обход всех этих ограничений вместе составляют термин "jailbreaking" устройств Apple. Т.е. jailbreaking влечет за собой преодоление нескольких типов средств защиты iOS одновременно. В отличие от Apple, намного меньшее количество устройств на Android блокируют свои загрузчики, и многие вендоры, такие как HTC, Sony, Asus и Google явно предоставляют возможность разблокировать устройство, и даже полностью заменить операционную систему. Обычно также предоставляется возможность запуска сторонних приложений на Android без необходимости разрешений root. Таким образом третий аспект джайлбрейкинга iOS, касающийся получения прав суперпользователя, коррелирует с Android rooting.
[Описание Android rooting]
Rooting позволяет всем приложениям, которые установил пользователь, запускать привилегированные команды, которые обычно недоступны для устройств в конфигурации по умолчанию, как они поступают из торговой сети. Rooting требуется для продвинутых и потенциально опасных операций, включая модификацию или удаление системных файлов, удаление приложений, установленных дистрибьютором или производителем, а также низкоуровневый доступ к оборудованию (перезагрузка, управление подсветкой и индикаторами состояния, или перекалибровка тачскрина). Обычная инсталляция для rooting-а также включает в себя приложение Суперпользователя, которое управляет удовлетворением запросов от приложений на получение прав root. Вторичная операция рутинга - разблокировка верификации бутлоадера, что требуется для удаления или замены инсталлированной операционной системы. В отличие от iOS jailbreaking, rooting не требуется для запуска приложений, полученных не из Google Play Store, что иногда называют "сторонней загрузкой" (sideloading). Android OS поддерживает эту возможность изначально двумя способами: через разрешение опции "Unknown sources" (неизвестные источники) в меню Настройки (Settings), и через Android Debug Bridge (ADB). Однако некоторые дистрибьюторы, наподобие AT&T, не разрешают (это задано в firmware) инсталляцию сторонних приложений, хотя некоторые устройства (включая Samsung Infuse 4G) не попадают под это ограничение, и компания AT&T с некоторых пор сняла ограничение на несколько более старых устройств. С 2012 года Amazon Kindle Fire по умолчанию имеет для установки приложений Amazon Appstore вместо Google Play, хотя как и большинство других устройств Android, Kindle Fire позволяет стороннюю загрузку приложений из неизвестных источников, и приложение "easy installer" в магазине Amazon Appstore делает эту процедуру простой. Другие производители устройств Android могут в будущем обращаться к другим источникам распространения программ. Доступ к альтернативным приложениям может требовать rooting-а, однако это необходимо не всегда. Rooting на телефоне Android позволяет пользователю модифицировать или удалить системные файлы, и это позволяет выполнить в будущем различные тонкие настройки и использовать приложения, которые требуют доступа root.
[Проблемы, связанные с Android rooting]
В прошлом многие производители пытались делать телефоны с невозможностью получить права root (unrootable), с применением жестких методов защиты (наподобие Droid X), однако и эти модели подвержены получению прав root различными способами. Для новых телефонов, или телефонов, к которым только что вышло обновление (для них пока нет возможности получить root), появление процедуры rooting-а занимает обычно несколько месяцев.
В 2011 году компании Motorola, LG Electronics и HTC добавили функции защиты в свои устройства на уровне аппаратуры - в попытке запретить пользователям получать права root на потребительских устройствах Android. Например, Motorola Droid X имеет защищенный загрузчик (security boot-loader), который переводит телефон в режим восстановления "recovery mode", если пользователь попытался загрузить неподписанное firmware (прошивку) в свое устройство, и Samsung Galaxy S II отображает желтый треугольник в качестве индикатора, если firmware устройства было модифицировано.
[Процедура выполнения Android rooting]
Процесс rooting-а происходит по-разному в зависимости от устройства, однако обычно rooting включает использование ошибок в защите firmware устройства, затем производится копирование исполняемого файла su в место расположения (путь, PATH) текущего процесса (например /system/xbin/su), и ему предоставляются права на выполнение командой chmod. Приложение супервизора наподобие SuperUser или SuperSU могут регулировать и запоминать в логе запросы на предоставление прав от других приложений. Множество руководств, учебников и процедур автоматизации имеется для популярных устройств Android, что делает процедуру rooting-а быстрой и простой.
Например, сразу после выхода HTC Dream (HTC G1) была найдена уязвимость, что быстрый ввод на клавиатуре интерпретировался как команда в привилегированном окружении (root shell). Несмотря на то, что Google быстро выпустила патч для исправления этой уязвимости, подписанный образ старого firmware остался в общем доступе, что давало пользователям возможность сделать "обновление вниз" (downgrade) и затем использовать оригинальный эксплоит для получения root access. Когда эксплоит обнаружен, может быть высвечен запрос к пользователю на проведение восстановления, который пропускает процедуру проверки цифровой подписи пакета обновления firmware. В свою очередь, используя пользовательское восстановление, модифицированное обновление firmware может быть установлено, что обычно включает утилиты (например приложение Superuser), необходимые для приложений при запуске с правами root.
В телефонах под брендом Google - Nexus One, Nexus S, Galaxy Nexus, Nexus 4 и Nexus 5, как и в планшетах Nexus 7 и Nexus 10, можно разблокировать загрузчик, если просто подключить устройство к компьютеру, когда активен режим загрузки (boot-loader mode) и запустить программу Fastboot с командой "fastboot oem unlock". После подтверждения предупреждения загрузчик будет разблокирован, так что новый образ системы может быть записан напрямую во flash без необходимости какого-либо эксплоита.
[Как реагируют на rooting производители оборудования]
До начала 2010 года производители планшетов и смартфонов обычно отказывали в поддержке модифицированных устройств, на которых установлено стороннее firmware. Производители выразили беспокойство по поводу возможного неправильного функционирования устройств, на которых выполняется неофициальное программное обеспечение, и связали с этим чрезмерные затраты на поддержку таких устройств. Кроме того, firmware наподобие CyanogenMod иногда предоставляли возможности, которые иначе предоставляли поставщики на платной основе (например, tethering - использование телефона как точки доступа в Интернет). В результате во многих устройствах были реализованы препятствия для rooting-а, такие как защищенные загрузчики (locked bootloaders) и ограниченный доступ к правам root. К примеру, с конца декабря 2011, Barnes & Noble и Amazon.com, Inc. начали продвигать автоматическое обновление firmware по беспроводному соединению (over-the-air firmware updates, обновления OTA), 1.4.1 для Nook Tablets и 6.2.1 для Kindle Fires, которое устраняло возможность получения пользователями доступа к устройству с правами root. Обновление Nook Tablet 1.4.1 также устраняло возможность загрузки сторонних приложений, которые поступили не из официального магазина приложений Barnes & Noble. Однако популярность программного обеспечения, разрабатываемого комьюнити пользователей, росла, и постановление Copyright Office and Librarian of Congress (США) разрешило использовать джайлбрейкинг мобильных устройств, после чего производители и дистрибьюторы скорректировали свою позицию по отношению к CyanogenMod и других распространяемых неофициальных пакетов firmware, и с некоторыми моделями, включая HTC, Samsung, Motorola и Sony Ericsson, даже предоставили активную техподдержку и поощрение разработки. В 2011 году необходимость обхода аппаратного ограничения для установки неофициальных программ уменьшилась, так как количество "незаблокированных" устройств стало увеличиваться. Эти устройства поставлялись без блокировки загрузки стороннего firmware или с загрузчиками, которые можно было разблокировать, как сделано в сериях телефонов Nexus. Производитель устройств HTC объявил, что будет поддерживать производителей программного обеспечения, и для всех устройств загрузчики будут делаться разблокированными. Однако некоторые производители, такие как Verizon Wireless и AT&T продолжали блокировку OEM-устройств HTC или Motorola, за исключением специальных моделей, предназначенных для разработчика ("developer edition" devices) которые продавались только по контракту.
Австралия. Rooting любого устройства является законным, если это делается с целью запуска невредоносных приложений.
Европа. Организация Free Software Foundation Europe утверждает, что получение прав root или перепрошивка любого устройства являются законными. В соответствии с European Directive 1999/44/CE, замена оригинальной операционной системы на другую не снимает с устройства установленную законом гарантию на аппаратуру в течение 2 лет, если продавец устройства не может доказать, что модификация вызвала соответствующий дефект.
Соединенные Штаты. 26 июля 2010 служба защиты прав United States Copyright Office представил новую поправку, которая делает официально легальным получение прав root в устройстве и запуск на нем приложений стороннего происхождения, а также разрешено разблокировать любой сотовый телефон, чтобы его можно было использовать у любого оператора.
28 октября 2012 US Copyright Office обновли поправки к закону. Теперь rooting смартфонов все еще остается легальным "когда вмешательство произведено с целью предоставить функциональную совместимость [с законно полученным программным обеспечением] приложений на телефонной трубке с компьютерными программами". Однако U.S. Copyright office отклонил расширение этой поправки на планшеты - утверждая, что термин "планшет" широк и неточно указан, так что освобождение для этого класса устройств может дать нежелательные побочные эффекты.
[Ссылки]
1. Я знаю: что такое Root для Android site:4pda.ru. 2. Root-права site:droid-life.ru. 3. Android rooting site:en.wikipedia.org. 4. Framaroot программа для получения root-прав site:androidpit.ru.