Тотальное подчинение Андроид

КАК ПОЛУЧИТЬ ROOT ПРАВА
И МОДИФИЦИРОВАТЬ ANDROID OS

Рутинг, рекавери, мод, цианоген… За каких-то три года вокруг Android’a сформировалось сплоченное и невероятно активное сообщество хакеров и программистов, которые придумали свой собственный язык, огромное количество различных хаков, модов и альтернативных прошивок, ориентироваться в которых неподготовленному пользователю весьма непросто. Но эта статья поможет тебе найти правильный путь.

В этом FAQ я попытался ответить на самые важные и интересные вопросы,


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

kartinka-android-root

ANDROID БЕЗОПАСЕН? 

Android гораздо безопаснее многих других мобильных операционных систем. Существует три основных механизма, которые защищают Android от вредоносных приложений:

1.    Виртуальная машина. Android-приложения могут получитьдоступ к оборудованию устройства только с помощью прослоек, реализованных виртуальной машиной. Это значит, что все обращения приложений коперационной системе, устройствам и работа с памятью четко контролируются виртуальной машиной и любые злонамеренные действия могут быть пресечены. Например, срыв стека в приложениях, написанных на Java, невозможен в принципе.

2.    Права доступа. Android использует стандартный Liпих-механизмуправления правами доступа для изолирования данных приложений друг от друга. Для каждой устанавливаемой программы система создает нового пользователя и группу

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

  Также стоит отметить, что любая Android-программа должна иметь манифест, который описывает все системные действия, которые может совершать приложение. Во время установки пакета Android сообщает пользователю список этих действий, внимательно изучив который, можно выяснить, способно ли приложение нанести вред системе или унести конфиденциальные данные (все зловредные программы для Android‘a основаны на том,что пользователь просто пропускает этот список мимо глаз).

ЗАЧЕМ РУТИТЬ СВОЙ СМАРТ?

Чтобы получить контроль над устройством. Rooting — это процесс получения прав root на девайсе со всеми вытекающими отсюда преимуществами. Чтобы защитить продукт от криворуких школьников, производители смартфонов блокируют учетную запись пользователя root, однако с помощью различных эксплоитов, действующих против ядра Linux, или дыр, оставленных производителем телефона, владелец может повысить свои привилегии в системе, залить на устройство бинарник su и использовать его для получения прав админа (звучит дико, но чтобы получить root-права на Т-Mobile G1, достаточно было подключиться к телефону с помощью telnet). При этом следует различать постоянный root (когда на устройство заливается su) и временный, полученный с помощью эксплоитов. Некоторые производители (Motorola, привет!) оснащают свои смарты защитой NAND-памяти, используемой для хранения операционной системы, так что смонтировать ее в режиме записи и получить постоянный root не удастся (к слову, эту защиту уже давно научились обходить).

  Рутованный телефон становится гораздо более удобным для продвинутых пользователей. Появляется возможность модифицировать операционную систему, удалять и добавлять системные приложения, установливать busybox, управлять брандмауэром, устанавливать софт, требующий поддержки прав root (например, программу для снятия скриншотов), а также заливать на устройство любые прошивки. Для каждого устройства процесс получения прав root индивидуален,

kartinka-struktura-android

                                                     Архитектура Android OS

однако существует несколько универсальных инструментов, которые используют известные Linux-дыры для получения постоянного root’а на многих устройствах. Из примеров можно привести SuperOneClick  http://u.to/EUaXAg. реализованный в виде десктопного приложения, и z4root http://u.to/sGVBAQ работающий прямо в Android’e.

 

 КАКИЕ БЫВАЮТ АЛЬТЕРНАТИВНЫЕ ПРОШИВКИ?

Альтернативных прошивок существует огромное количество, однако 95 % из них полнейшая ерунда, сделанная за десять минут на коленке:люди просто берут стандартную прошивку, удаляют парочку встроенных приложений, добавляют пару-тройку сторонних, заливают красивую обоину и выпускают это под именем «супер-мега-прошивки от Васи Пупкина». На это барахло даже не стоит тратить свое время. Есть парни посерьезнее, которые берут исходники ванильного Android’a от Google и делают собственную сборку на их основе. В большинстве случаев конечной целью таких прошивок является апгрейд версии и ОС, предустанавливаемой производителем устройства. Наконец, высший пилотаж—это портирование развиваемого сообществом форка Android’a под названием CyanogenMod www.cyanoaenmod.com. Если для твоего устройства есть сборка этого чуда — советую ставить именно его.

В ЧЕМ ОТЛИЧИЕ CYANOGENMOD’A ОТ ВАНИЛЬНОГО АNОRОID’А?

CyanogenMod разрабатывается сообществом, а это значит, что в него добавляются не только те изменения,которые считает полезными Google, но и всё, что может так или иначе пригодиться пользователям, и в особенности гикам и программистам. Прошивка включает в себя множество самых разных оптимизаций кода, которые по тем или иным причинам были отвергнуты Google. Имеется расширенное меню настроек, позволяющее более тонко управлять конфигурацией системы (например включить/выключить JIT, изменить цвет статусной строки, ее положение и содержимое, настроить экран блокировки,повесить на хардварные кнопки альтернативные действия, тонко управлять звуковыми сигналами и многое другое). В прошивке есть механизм принудительного ограничения приложений в возможностях (например, можно запретить игре выход в интернет для показа рекламы), возможность принудительной установки всех приложений на SD-карту, механизм управления темам и оформления, разработанный T-Mobile, есть встроенный фонарик, использующий вспышку камеры, программный эквалайзер, написанное с нуля FM-радио (для устройств с FM-приемником), в выезжающую из статусной строки панель встроен интерфейс управления с возможностями устройства (включение/выключение Wi-Fi, Bluetooth, 3G и т. д.). Имеется предустановленный busybox и SSH-сервер, а также набор первоклассных обоев. В последнее время CyanogenMod обрел просто феноменальную популярность, почти каждый месяц появляются порты на новые устройства (www.cyanoaenmod.com/devices).Также есть большое количество эксnеримен­тальных nортов, еще не одобренных командой
CyanogenMod. Их можно найти в соответствую­щих разделах на xda-developeгs.com

kartinka-cyanogenmod-ustanovka

КАК ПРОШИТЬ ТЕЛЕФОН?

Ответ на этот вопрос зависит от того, какую прошивку ты собираешься накатывать на телефон. Для обновления официальной прошивки от производителя обычно используются специализированные программы, работающие только в Windows. Каждый уважающий себя производитель устройств имеет собственную версию такой программы, собственный формат прошивок и собственный механизм безопасности, не позволяющий заливать на телефон сторонние прошивки (обычно для этого используется проверка сертификата безопасности).


Для заливки прошивок, созданных людьми, не имеющими отношения к производителю (например того же CyanogenMod), используется более универсальный подход. В этом случае телефон следует зарутить, установить на него «кастомный рекавери» (например, с помощью ROM Manager’a из Google Play или в процессе рутинга с помощью SuperOneClick), скинуть на SD-карту zip-архив с прошивкой, зайти в рекавери одним из описанных в следующем вопросе способов и, используя меню «Flash zip from sdcard», установить zip-архив в систему.

kak-proshit-smartfon

ЧТО ТАКОЕ «КАСТОМНЫЙ РЕКАВЕРИ»?

Любое устройство на Android’e (и не только) имеет небольшой раздел на внутренней NAND-памяти, который содержит образ так называемого Recovery—минималистичной ОС, предназначенной для восстановления/ обновления прошивки девайса в случае ее порчи/устаревания, а также для выполнения ряда других сервисных задач,таких как сброс до заводских настроек (вайп). Recovery не зависит от основной ОС,установленной на аппарате, поэтому для входа в нее обычно используется метод выключения и включения аппарата с зажатой клавишей уменьшения громкости (в некоторых девайсах используется другой способ). Далее на экране появляется меню, для навигации по которому используются клавиши громкости (вверх, вниз) и включения (Enter).

Кастомный рекавери—это модификация стандартного Recoveryc гораздо большим набором функций. Обычно такой рекавери предлагает такие функции, как установка любых прошивок без проверки цифровых подписей (основное назначение), полный бэкап существующей прошивки (nandroid backup)и его восстановление, изменение системных настроек Android’a, подготовка карты памяти для переноса приложений или создания swap-раздела, перемонтирование системных разделов в режиме чтения/записи и многое другое. Наиболее популярный и развитый кастомный рекавери на сегодняшний день-это ClockwoгkMod гесоvегу, созданный Koushik Dutta (Koush).

                                КАК ВЫБРАТЬ РАБОЧИЙ СТОЛ ДЛЯ АНДРОИД

kak-vybrat-rabochij-stol

Выбирать между альтернативными рабочими столами, nредставленными в Google Play,
в большинстве случаев бессмысленно.  Почти все они основаны на стандартном Launcheг’e, разработанном Google, и не nредставляют ничего нового, кроме кучи различных и в большинстве
случаев бесnолезных обвесок, мешающих работе. Из всего этого многообразия достойны внимания разве что LauncheгPгo и Zeam.
С другой стороны,  в Google Play есть несколько действительно других рабочих столов, которые
стоит установить хотя бы для разнообразия. Во-первых, это Launcheг7, очень хорошо имитирующий рабочий стол Windows Phone 7, многие из тех, кто установил его <<на посмотреть>>,исnользуют его ежедневно.  Во-вторых, это рабочий стол nод названием 51ide5cгeen [рекомендую с качать бесплатную Ьеtа-версию отсюда: getsatisfaction.com/laгvalabs), который вместо иконок и виджетов выводит на экран
различную nолезную информацию (nогоду, nоследние СМС-сообщения, звонки, nисьма, RSS-новости, сообщения в twitter,  Facebook’e и т. д.)  в виде удобного разворачиваемого сnиска.  Просто обязателен для пробы, однако не совсем nригоден для ежедневного использования из-за своей инородности.
Также советую посмотреть в сторону Simple Home, вобравшего в себя многие из идей Windows Phone 7, и 5рагk’а,  nредставляющего собой нечто среднее между обычным рабочим столом Andгoid’a и 51ide5cгeen.

КАК СДЕЛАТЬ СВОЮ ПРОШИВКУ?

  Есть два способа. Первый и самый трудный: скачать исходники последней версии Android’a и попробовать собрать ОС так, чтобы она корректно работала на Linux-ядре, прошитом в устройстве (будет круто, если удастся раздобыть исходники ядра и нужных модулей, но производители затягивают с процессом открытия кода до последнего). Это потребует глубоких знаний не только в области Android’a, но и во встраиваемых системах. Но можно пойти и по гораздо более простому пути: модифицировать существующую прошивку.

Как уже было сказано выше, подавляющее большинство «авторских» прошивок для Android-смартфонов—это модификации других прошивок, например стоковой, то есть установлен ной на телефон по умолчанию,либо чужой сборки Android’a для данного аппарата. Связано это с тем, что «мод», в отличие от самосборной прошивки, очень легко с делать. По сути, всё, что для этого требуется сделать, это просто распаковать архив с прошивкой, произвести необходимые изменения (заменить/добавить файлы, отредактировать конфиги), запаковать архив и подписать его. Пошагово этот процесс вы глядит так:

Получаем архив с нужной прошивкой:

$ wget http://a.b.с/update.zip

Распаковываем его:

$ mkdir myrom $ cd myrom

$ unzip ../update.zip

В каталоге появится два подкаталога и файл boot.img. Каталог META-INF содержит мета-информацию об обновлении, такую как его создатель, цифровые сертификаты и скрипт обновления META-INF/com/google/android/updater-script, который подготавливает катал оговую структуру, удаляет старые файл ы, информирует Recovery о прогрессе обновления. Файл boot.img — это ядро Linux и загрузочный ram-диск, их можно извлечь с помощью скрипта split_bootimg.pl (goo.gl/QejM9). Наконец, каталог system — самая интересная и полезная часть архива с прошивкой. Это не что иное, как содержимое одноименного системного раздела Android’a, в котором находятся компоненты самой ОС. Здесь есть каталог арр, содержащий все системные приложения (можно удалить те, которые не нравятся, и положить новые), bin и xbin содержат различные Linux-команды (в xbin можно распаковатьсвежий busybox), etc — настройки различных системных демонов, fonts — шрифты, framework — системные Java-библиотеки, файл framework-res.apk содержитстандартные ресурсы системы и приложений, его можно использовать для изменения стандартных иконок, цветов (на xda-developers.com лежит много версий этого файла с различными кастомизациями), lib — Linux-библиотеки (здесь лучше ничего не трогать), media — различные мультимедийные данные, например bootanomation.zip—архив, содержащий анимацию, демонстрируемую при за грузке устройства,здесь же есть каталог audio с рингтонами, звуками оповещения ит. п. (всё в открытом формате Ogg Vorbis, кстати). Каталог usr может содержать всё что угодно, обычно в него попадают файлы различных Linux-демонов и приложений. Файл build.prop описывает прошивку и задает некоторые системные настройки. После того как модификация прошивки будет завершена, можно запаковать файлы обратно в архив:

$ zip -г myupdate.zip *

Архив следует подписать, иначе Recovery не сможет его установить. Делается это с помощью утилиты testsign.jar:

$ wget http://goo.gl/OyBBk $ java -classpath testsign.jar testsign\myupdate.zip myupdate-sign.zip

Заливаем подписанный архив на SD-карту и устанавливаем с помощью Recovery.

КАК РАЗОГНАТЬ ПРОЦЕССОР УСТРОЙСТВА?

Очень просто—зарутить телефон и установить на него приложение SetCPU

доступное в Гугл Плэй. Программа позволяет задать верхнее и нижнее пороговые значения для механизма управления мощностью процессора, а также выбратьодин из нескольких профилей: максимальную производительность, сохранение батареи, минимальную производительность и т. д. Функция управления настройками производительности процессора есть и в CyanogenMod: «Настройки -> Настройки CyanogenMod’a -> Производительность -> Настройки ЦП». Работает она по тому же принципу, что SetCPU.Также в меню «Производительность» можно включить/ выключить JIT-компиляцию, запретить выгрузку рабочего стола из памяти(очень полезно для устройств с малым объемом RAM) и изменить размер VM heap, что в теории может привести к ускорению работы прожорливых до памяти приложений (в этом случае следует выбрать более высокое значение]либо освободить побольше оперативки (меньшеезначение]. Эти настройки можно изменить и с помощью стороннего root-софта, такого как Jitter и VM Heap Tool.

ЧТО ТАКОЕ ADB?

ADB — Это Android Debug Bridge, интерфейс низкоуровневой отладки и управления Android-устройством, который позволяет удаленно отлаживать приложения, устанавливать и удалять их, манипулировать файлами, выполнять команды, просматривать системный журнал и делать множество других полезных вещей.

ПОЧЕМУ TASK KILLER  БЕСПОЛЕЗЕН?

Task Killer — глупость. В большинстве своем люди используют его не для получения какой бы то ни было выгоды, а просто от неумения перестроить свое мышление на новый стиль управления запущенными приложениями. Инженеры, создававшие Android, сделали приложения неубиваемыми не просто так, они отлично понимали, что в условиях постоянного роста объемов памяти в мобильных устройствах лучший способ использовать ее свободное пространство это поместить туда наиболее часто используемые приложения. В результате получился механизм, который оставляет все запущенные приложения висеть в памяти до тех пор, пока ее не станет действительно мало. В этом случае просыпается встроенный в ядро «уборщик», который вытесняет из памяти наиболее редко используемые приложения.

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

Основная проблема этого подхода заключается только в том,что стандартные настройки механизма выгрузки приложений из памяти слишком демократичны. Память освобождается только в том случае, если ее становится действительно мало для загрузки нового приложения, поэтому во время запуска некоторых приложений могут наблюдаться небольшие притормаживания, вызванные работой уборщика. К счастью, уборщик обладает интерфейсом управления, с помощью которого его можно сделать более активным. Для этого имеется файл/sys/ module/lowmemorykiller/parameters, в который записывается шесть значений, управляющих поведением механизма lowmemorykiller:

echo «2568,4896,6144,12288,14336,18432» > /sys/
module/lowmemorykiller/parameters/miпfre

Можно создать соответствующий скрипт в каталоге/system/etc/init.d, но имей в виду, что сценарии из каталога/system/etc/init.d отрабатываются только в кастомных прошивках, да и то не во всех. Возможно, скрипт придется запускать вручную после каждой загрузки операционной системы.

Неплохим дополнением к изменению настроек уборщика будет расчистка списка запускаемых во время старта ОС приложений. Во время загрузки Android запускает кучу «часто используемых» софтин, многие из которых могут тебе никогда и не понадобиться, но тем не менее будут занимать память. Это, кстати, такие программы, как голосовой набор, Bluetooth, календарь, почта (не Gmail, а простая почтовая программа), часы (те, через которые настраивается будильник). Удалить всё это из автозапуска можно с помощью специализированного софта, например Startup Cleaner (бесплатно в Google Play)


До встречи!

 

 

 

 

 

 

1 comment for “Тотальное подчинение Андроид

  1. Стас
    02/04/2013 at 11:54 дп

    А как на многопользовательском Android 4.2 получить root-права только для одного пользователя смартфона?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *