Скачиваем и устанавливаем ADB, драйверы и Fastboot. Замена системных файлов Android с помощью adb Получение роот прав с помощью утилиты adb

В сети легко найти как получить рут доступ для почти любого устройства на Android. Программы для этого и методики отличаются, но вариант всегда есть. Большинство, получив рут, даже не задумываются о том, как он был получен. Я не смогу рассказать про все способы и как они работают. Но я смогу рассказать про одну интересную вещь, которая связана с получение root доступа.

Я предполагаю, что читатели хотя бы поверхностно знаю об утилите для Android - ADB . Если кто-то еще не слышал, можете легко поиском найти что это такое. Это утилита для отладки устройств. С её помощью можно получить доступ к командной строке (shell ) устройства на Android , передавать и принимать файлы и делать много интересных вещей. В большинстве скриптов для получения рута или всяких модов для вашего устройства так или иначе используется ADB.

У ADB есть команда root . Она должна перевести режим работы в root доступ. Казалось бы так можно элементарно получить рут на любом устройстве. Но работает она не всегда. Часто, даже на устройстве с уже полученными root правами при попытке выполнить "adb root" можно получить следующую ошибку:

adb cannot run as root in production builds

Что значит, что ADB не будет запускаться из-под root"а в продакшен (финальном) билде (речь о прошивке). Если у вас есть рут, вы можете и без этого зайти в шелл (adb shell ), и уже там получить root права, набрав su . При этом adb root упорно не будет работать, сетуя на продакшен билд.

Сделано это конечно же специально , чтобы не дать получить root на реальных устройствах для конечных пользователей. С другой стороны некоторые прошивки без проблем дают выполнить эту команду или даже скажут, что ADB уже работает от root"а, если в них это разрешено.

Раз работает по разному в разных прошивках , догадливый читатель поймет, что это может регулироваться какой-то настройкой . И если эту настройку сменить, то можно будет получить root просто через adb root. Конечно же так и есть. Но конечно же эта настройка храниться в "недрах" прошивки и просто так её поменять не дадут. Во всяком случае в современных прошивках без наличия root прав заранее точно не получится "на лету".

Настройки эти являются обычными свойствами (prop) , навроде тех, что хранятся в build.prop . Называются ro.debuggable и ro.secure . Только хранятся они в /default.prop . Т.е. в отличии от build.prop , которых хранится в /system , эти хранятся прямо в корне . Проблема в том, что даже если при наличии root прав отредактировать этот файл, то изменения не вступят в силу, а после перезагрузки содержимое файла вернется назад .

Дело в том, что default.prop , как и вся корневая файловая система в Android не является обычной. Это специально подготовленный образ ramdisk . Т.е. он загружается из прошивки в память (ОЗУ) и все изменения происходят только в памяти . Следовательно после перезагрузки все изменения теряются . Для их редактирования нужно снять образ раздела BOOT , распаковать его, достать оттуда образ ramdisk"а (initramfs ) и отредактировать в нём default.prop. Далее проделать всё в обратном порядке. Но как записать данные назад, если нет доступа? Хорошо, если root у нас уже есть и мы просто хотим напрямую разрешить adb root по каким-то причинам. А если root еще нет? Получается проблема - чтобы получить root, нужно иметь root.

Чтобы статья не получилась слишком длинная, я разбил её на две части. Продолжение о том, как можно обойти это дело вы сможете прочитать

Data-lazy-type="image" data-src="http://androidkak.ru/wp-content/uploads/2015/08/Android-Root..jpg 500w, http://androidkak.ru/wp-content/uploads/2015/08/Android-Root-300x127.jpg 300w" sizes="(max-width: 500px) 100vw, 500px">
Если вы открыли эту статью, то вы наверняка уже имеете хоть какое-то представление о правах суперпользователя. Но на тот редкий случай, если вы являетесь обычным пользователем Android и открыли статью из праздного интереса – небольшой ликбез.

Права суперпользователя, они же рут-права (от английского “root”, что значит “корень”) – это возможность записывать, изменять и удалять информацию, находящуюся в системном (или корневом) разделе файловой системы. Данное понятие схоже с правами администратора на Windows и применяется на операционных системах, основанных на UNIX (Linux, Android, Tizen и т.д.)

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

Какие последствия влечет за собой получение рут-прав

Data-lazy-type="image" data-src="http://androidkak.ru/wp-content/uploads/2015/08/vnimanie.jpg" alt="обратите внимание" width="145" height="121" srcset="" data-srcset="http://androidkak.ru/wp-content/uploads/2015/08/vnimanie..jpg 300w" sizes="(max-width: 145px) 100vw, 145px"> Прежде всего, ответьте на вопрос – читали ли вы гарантийное соглашение, которое прилагалось к вашему телефону? Если читали – то вы знаете, что получение рут-прав – это серая зона и останется ли ваша гарантия при вас по завершении процесса, зависит только от политики производителя.
Далее, запомните одну вещь – суперпользователь даёт вам полный доступ. ПОЛНЫЙ. То есть если вам вдруг придет в голову удалить важные системные файлы – вас никто не остановит. Так что внимательно следите, какие программы получают от вас данные права, а также консультируйтесь с другими, более опытными пользователями Android перед тем, как делать какую-нибудь глупость.

Какие преимущества можно получить при наличии root-прав

Data-lazy-type="image" data-src="http://androidkak.ru/wp-content/uploads/2015/08/android-vigody.jpg" alt="Выгоды получения прав" width="159" height="50" srcset="" data-srcset="http://androidkak.ru/wp-content/uploads/2015/08/android-vigody..jpg 300w" sizes="(max-width: 159px) 100vw, 159px"> Список того, что можно сделать при наличии root-прав просто огромен. Только взгляните на наиболее популярные причины получения прав суперпользователя!

ВАЖНО: В скобках указана программа, которая позволяет выполнить данное действие.

  1. Удаление предустановленных программ а-ля Facebook или Twitter из системного раздела (Titanium Backup);
  2. Перенос кеша приложений с внутренней карты памяти на внешнюю (FolderMount);
  3. Перенос раздела с приложениями на карту памяти (Xposed App2SD);
  4. Глобальная модификация интерфейса с возможностью тонкой настройки (практически все модули Xposed);
  5. Отключение рекламы во всех приложениях (Adaway);
  6. Взлом покупок в приложениях с PlayMarket (Freedom);
  7. Отключение проверки лицензии в невзламываемых приложениях, а также их взлом (Lucky Patcher).

Читайте также: Fastboot Mode на Андроиде: установка, настройка и выход

И это ещё не всё! Фактически, имея root-доступ к вашему телефону, вы можете сделать из него практически всё что угодно. И если ваш запал ещё не остыл – давайте перейдём к собственно процессу получения рут-прав.

Инструкция

data-lazy-type="image" data-src="http://androidkak.ru/wp-content/uploads/2015/08/Android-s-root-pravami.jpg" alt="Рутированный Андроид" width="165" height="91" srcset="" data-srcset="http://androidkak.ru/wp-content/uploads/2015/08/Android-s-root-pravami..jpg 300w" sizes="(max-width: 165px) 100vw, 165px">
К несчастью, просто так включить root-доступ на Android нельзя – производители постарались обезопасить свои творения от кривых рук пользователей и это, на самом деле, правильно – иначе число обращений в сервисные центры выросло бы в разы. Но это не значит, что получить рут-права нельзя совсем. Более того, для большинства телефонов эта процедура является крайне будничной и занимает всего несколько минут.

Существует множество способов получения root-прав и как и в наших других инструкциях, мы пойдём от простого к сложному.

1. С самого устройства

Data-lazy-type="image" data-src="http://androidkak.ru/wp-content/uploads/2015/08/google-play-logo-274x300.png" alt="google play market" width="92" height="100" srcset="" data-srcset="http://androidkak.ru/wp-content/uploads/2015/08/google-play-logo-274x300..png 405w" sizes="(max-width: 92px) 100vw, 92px"> Несмотря на то что многие производители максимально закрывают доступ к своим смартфонам, хакеры со всего мира время от времени находят лазейки, которые позволяют получить права всего одним нажатием на экран. А другие производители просто доверяют своим пользователям и даже публикуют алгоритмы обхода своей защиты. Именно на таком принципе и основаны различные автоматические получатели root-прав, наиболее известным из которых является KingRoot.

Всё, что требуется для получения root-прав на устройстве с помощью KingRoot – это нажать одну кнопку. Из недостатков KingRoot – не самый привычный старым пользователям Android менеджер прав. Вместо привычного SuperSU, KingRoot использует собственную программу, которая, впрочем, не особо отличается от SuperSU в вопросах функциональности.

Помимо KingRoot, популярностью пользуется программа Framaroot, а также многочисленные другие приложения для Андроид-устройств, например, VRoot,

2. С помощью ПК и специальных программ

Data-lazy-type="image" data-src="http://androidkak.ru/wp-content/uploads/2015/08/android-i-pk-300x258.jpg" alt="Подключение андроида к ПК" width="150" height="129" srcset="" data-srcset="http://androidkak.ru/wp-content/uploads/2015/08/android-i-pk-300x258..jpg 473w" sizes="(max-width: 150px) 100vw, 150px"> Если передать инструкции для разблокировки изнутри Android-системы нельзя, это ещё не значит, что этого нельзя сделать совсем. По крайней мере, согласно этому принципу оперируют такие программы, как SuperOneClick, Kingo и многие другие. В качестве основы своей работы они используют USB-соединение Андроид-смартфона и ПК, через которое и подаются команды.

Читайте также: Как пользоваться смартфоном или планшетом на Андроиде новичку

Для того чтобы получить возможность так делать, вам нужно включить в настройках вашего Android-смартфона опцию “Отладка по USB”. Находится она в скрытом разделе “Для разработчиков”, а чтобы открыть этот раздел (если он закрыт), зайдите в раздел “О планшете” и десять-пятнадцать раз нажмите на пункт “Версия сборки”.

После того как вы её включили просто подключите ваш Андроид-смартфон к ПК (в режиме Mass Storage, естественно) и запустите выбранную вами программу, после чего следуйте инструкциям по работе с ней. О том, какую именно программу выбрать и как именно ею пользоваться, вам придётся думать самостоятельно – число Android-устройств слишком велико, чтобы можно было с уверенностью сказать, какие именно из них работают с одной программой, а какие – с другой.

3. С помощью ПК и ADB-терминала

data-lazy-type="image" data-src="http://androidkak.ru/wp-content/uploads/2015/08/android-pc-adb-300x258.jpg" alt="Соединение телефона и компьютера по adb-протоколу" width="150" height="129" srcset="" data-srcset="http://androidkak.ru/wp-content/uploads/2015/08/android-pc-adb-300x258..jpg 473w" sizes="(max-width: 150px) 100vw, 150px"> Если производитель вашего смартфона очень любит свою паранойю и при этом достаточно успешен, чтобы позволить себе нанять много талантливых программистов для мало кому нужного дела (особенно этим грешит Sony) – получить рут-права с помощью KingRoot или Kingo не выйдет. Точно так же, как не выйдет и получить root на устройствах с нестандартной начинкой (скажем на линейке Asus Zenfone или китайских Андроид-планшетах построенных на Intel Atom). В этом случае придётся воспользоваться помощью компьютера и adb-интерфейса.

Для тех, кто не знает, что такое adb, отвечаем. ADB – это специальный протокол, который позволяет вашему Андроид-устройству получать инструкции с компьютера по USB-кабелю. Благодаря тому, что ADB является частью самой системы Android, такие команды в большинстве случаев имеют более высокий приоритет, чем защитные решения производителя телефона.

Для нормальной работы ADB с вашим телефоном вам понадобится как минимум:

  • Компьютер с операционной системой Windows 7 (более новые ОС могут работать нестабильно или вообще не работать с нужными драйверами);
  • Набор adb-драйверов для вашего устройства (обычно выдаётся производителем);
  • USB-кабель;
  • Собственно, смартфон с включённой в настройках опцией “Отладка по USB”;
  • Распакованный в папку “X://ADB”, где X – (желательно) несистемный диск, архив с ADB-терминалом.

Существует множество инструментов для работы с подключенным с помощью USB-кабеля или Wi-Fi смартфоном. Особо развитые инструменты позволяют перемещать файлы, устанавливать и удалять софт, просматривать контакты, делать скриншоты экрана и даже отправлять СМС, однако ни один графический инструмент не сравнится с мощью, которую может дать консоль Android. В этой статье мы поговорим об ADB (Android Debug Bridge) - стандартном инструменте для отладки и работы с консолью Android с компа.

Описанные в статье команды можно выполнять непосредственно на устройстве, скачав из маркета эмулятор терминала , но удобнее это делать, конечно же, с компа через adb.

Основы работы с ADB

Для начала работы с ADB его следует активировать на устройстве и установить утилиту adb и драйверы на комп. Первая задача выполняется с помощью включения «Отладки по USB» в пункте настроек «Для разработчиков» (если этот пункт скрыт, нажми семь раз на номер сборки в меню «О телефоне»).

Для установки ADB на комп качаем Adb Kit и распаковываем в любую папку (рекомендую использовать названия папок без русских символов). Также скачиваем и устанавливаем драйверы ADB .

Работать с adb нужно из командной строки. Нажимаем Win + R и вводим cmd, далее переходим в папку, в которой лежит adb. Для моей папки команда будет следующей:

Cd \android

Чтобы не проделывать все эти манипуляции каждый раз, можно добавить нужную папку в переменную Path. Для этого необходимо зайти в «Панель управления -> Система -> Дополнительные параметры системы -> Переменные среды», найти переменную Path и добавить в конец строки, через точку с запятой, путь до папки с adb. Теперь после запуска консоли можно сразу вводить необходимые команды.

Проверим наше подключение к телефону с помощью следующей команды (она должна вывести список подключенных устройств):

Adb devices

С ADB можно работать через Wi-Fi. Для этого нужны права root и приложение WiFi ADB . Запускаем приложение, жмем переключатель и подсоединяемся к смартфону с помощью команды connect и показанного приложением IP-адреса:

INFO

Скопировать вывод консоли после выделения мышкой, а также вставить скопированную команду или имя файла в консоль можно правой кнопкой мыши. Включается в свойствах консоли.

Установка программ

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

Adb install d:/downloads/имя_файла.apk

В команду также можно добавить дополнительные ключи. Полезными будут - переустановить приложение с сохранением данных и -d - установить версию меньше текущей.

Программы можно и удалять, но для этого нужно знать название пакета (как узнать, расскажу чуть позже). На примере игры Angry Birds Seasons команда будет выглядеть так:

Adb uninstall com.rovio.angrybirdsseasons

Бэкап приложений

В Android есть встроенные функции бэкапа, которые также можно запустить с помощью командной строки. Для этого используется команда adb backup и набор опций:

Adb backup [опции] <приложения>

  • -f указывает имя создаваемого файла и его расположение на компе. При отсутствии ключа будет создан файл backup.ab в текущем каталоге;
  • -apk|-noapk указывает, включать ли в бэкап только данные приложения или сам.apk тоже (по умолчанию не включает);
  • -obb|-noobb указывает, включать ли в бэкап расширения.obb для приложений (по умолчанию не включает);
  • -shared|-noshared указывает, включать ли в бэкап содержимое приложения на SD-карте (по умолчанию не включает);
  • -all указывает на необходимость бэкапа всех установленных приложений;
  • -system|-nosystem указывает, включать ли в бэкап системные приложения (по умолчанию включает);
  • - перечень пакетов для бэкапа.

Если мы хотим создать бэкап всех несистемных прог, включая сами.apk, в определенное место, то команда будет выглядеть так:

Adb backup -f c:\android\backup.ab -apk -all -nosystem

После ввода необходимо подтвердить начало выполнения бэкапа на самом устройстве. Для восстановления полученного бэкапа нужно выполнить соответствующую команду:

Adb restore c:\android\backup.ab

Консоль в консоли

Наряду с упомянутой консолью, которая является DOS-консолью под Windows, в Android существует и своя. Она вызывается через adb shell и представляет собой по сути стандартную Linux-консоль, но с неполным набором команд, расширить который можно, установив из маркета BusyBox. Использовать эту консоль можно двумя способами. В интерактивном режиме она запускается командой

Adb shell

В консоли появляется знак $ (далее по тексту этот знак будет означать необходимость ввода предварительной команды adb shell), и после этого можно вводить серию команд, получая после каждой отклик. Второй способ - если необходимо ввести только одну команду, можно писать ее подряд за adb shell.

В шелле работают стандартные команды для копирования, перемещения и удаления файлов: cp , mv и rm . Можно менять каталоги (cd ) и смотреть их содержимое (ls ). Кроме стандартных Linux-команд, о которых можно узнать из любого справочника, в Android есть несколько своих специализированных инструментов, но, чтобы использовать некоторые из них, придется получить на смартфоне права root, а после запуска консоли выполнять команду su:

Adb shell su

Это нужно делать, если в ответ на какую-либо команду ты видишь строку, похожую на «access denied» или «are you root?». В случае успеха знак $ сменится на #.



Создание скриншота

Выполняется одной строчкой:

Adb shell screencap /sdcard/screen.png

После этого картинку нужно выдернуть из устройства командой adb pull :

Adb pull /sdcard/screen.png

В recovery скриншот можно сделать следующей командой:

Adb pull /dev/graphics/fb0

Затем необходимо преобразовать файл fb0 в нормальное изображение с помощью FFmpeg, который нужно скачать и положить в папку с adb. Расширение необходимо ставить своего устройства:

Ffmpeg -f rawvideo -pix_fmt rgb32 -s 1080x1920 -i fb0 fb0.png

Запись видео, происходящего на экране устройства

adb shell screenrecord --size 1280x720 --bit-rate 6000000 --time-limit 20 --verbose /sdcard/video.mp4

Данная команда начнет записывать видео с разрешением 1280 x 720 (если не указать, то будет использовано нативное разрешение экрана устройства), с битрейтом 6 Мбит/с, длиной 20 с (если не указать, то будет выставлено максимальное значение 180 с), с показом логов в консоли. Записанное видео будет находиться в /sdcard (файл video.mp4).

INFO

Все запущенные из консоли и в adb shell процессы, занимающие некоторое время для выполнения, можно прервать с помощью комбинации Ctrl + C. Выйти из шелла и вернуться к выполнению обычных команд adb - Ctrl + D.

Управление приложениями

Для управления приложениями используются две команды: pm (package manager) - менеджер пакетов и am (activity manager) - менеджер активностей. У данных команд есть немало ключей, которые можно посмотреть на портале разработчиков . Остановимся на некоторых.

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

Продолжение доступно только подписчикам

Вариант 1. Оформи подписку на «Хакер», чтобы читать все материалы на сайте

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов.

Для linux. [Это пакет инструментов для разработчиков под Android]

  • Распакуйте директорию /tools на рабочий стол. [Возможно для этого понадобится установить архиватор 7zip. Он есть в репозиториях Ubuntu.]
  • Создайте директорию "bin" и поместите туда программу ADB:
  • mkdir -p ~/bin
    mv ~/Desktop/tools/adb ~/bin/

    2. Сбор необходимой информации

    • На вашем телефоне перейдите Насторйки=>Приложения=>Разработка (Settings=>Applications=>Development) и включите опцию Отладка по USB(USB debugging)
    • Подключите ваш телефон к компьютеру. [*В режиме телефона, не в режиме USB накопителя]
    • В терминале на компьютере выполните "lsusb " без кавычек
    • Одна из строк в результате должна быть похожа на что-то вроде (в зависимости от производителя вашего телефона):
    • Запишите или запомните первые 4 символа после ID. Это идентификатор производителя (Vendor ID, в нашем примере 04e8). Номера Bus и Device будут разными всякий раз при переподключении телефона к компьютеру или после его перезагрузки.
    • В терминале выполните "id " без кавычек, эта команда покажет имя и группу пользователя под которым вы вошли в систему (если вы не уверены, что знаете их точно)

    3. Установка првила Udev для работы ADB

    • Откройти любимый текстовый редатктор с правами root. Например, в терминале Kubuntu наберите "kdesudo kate ".
    • Вставьте следующую строку без переносов в редактор и измените как указано ниже:

    SUBSYSTEM=="usb", SYSFS{idVendor}=="<идентификатор производителя Vendor ID>", OWNER="<имя пользователя>" GROUP="<имя группы>"

    Для нашего примера "< идентификатор производителя Vendor ID > " заменяем "04e8". Не трогаете кавычки но заменяете < > и все, что в нутри.

    • Сохраните файл по этому пути /etc/udev/rules.d/51-android.rules
    • И ещё по этому пути /lib/udev/rules.d/51-android.rules

    [Примечание: Вообще вам нужен первый из них, но он может отличаться в разных системах]

    • В терминале, наберите ls /etc/udev/rules.d/51-android.rules дабы убедиться, что файл на месте, аналогично для второго пути.
    • Перезапустите udev или перезагрузите компьютер чтобы изменения вступили в силу

    [Примечание: в некоторых руководствах при настройке првил udev рекомендуется устанавливать права доступа 0666 которые открывают доступ к файлу всем. Здесь мы назначаем доступ одному пользователю, которому это нужно, так будет безопаснее. Приоритет правила установили 51, это не принципиально, можно назначить и другой.]

    4. Проверяем что получилось

    • В терминале наберите "lsusb ", как делали это ранее
    • Одна из строк должна быть похожа на:

    Bus 001 Device 002: ID 04e8:681c Samsung Electronics Co., Ltd

    • В данный момент нас интересуют номера после Bus и Device, которые, возможно, изменились если вы перезагрузили компьютер.
    • В терминале выполните "ls -l /dev/bus/usb/001/002 " ВНИМАНИЕ 001/002 это Bus/Device из примера выше, замените Bus/Device на цифры из вашего вывода команды "lsusb ".
    • Если в результате команды имя пользователя и группа отличаются от "root root" можно продолжать дальше. Если это не так, перечитайте и повторите шаги 2 и 3.
    • *Убедитесь что ваш телефон все еще в режиме Отладка по USB . Должен быть красный треугольник с восклицательным знаком в строке состояния вашего телефона (зависит от темы и версии Android).
    • В терминале наберите "sudo adb devices " [*sudo понадобится только при первом запуске adb.]

    Вы должны увидеть свой телефон в списке.

    Замечание. Предварительное рутование может и не потребоваться при переходе непосредственно на нестандартные прошивки, такие как: CM7 или MIUI через Odin/Heimdall, в любом случае вам потребуется ADB (см. пункты 1-4) Samsung Fascinate Root Package
    Эти файлы необходимы, хотя драйвера не нужны для Linux.

    6. Распаковка 4-х файлов в ~/bin
    Эту директорию мы создали в шаге 1, там уже должен быть файл adb. Вы можете распаковать куда-нибудь загруженный архив и поместить необходимые файлы в ~/bin (это su, rage.bin, busybox, Superuser.apk).

    7. Переход в ~/bin
    В терминале наберите "cd ~/bin ", а затем "ls ", должно быть 5 файлов.

    8. Перенос файлов на телефон и запуск root:
    Выполните каждую из следующих строк по отдельности в терминале, скопируйте и встаьте (жмите Enter после вставки каждой строки):

    ./adb push su /sdcard/su
    ./adb push rage.bin /data/local/tmp/rage.bin
    ./adb push busybox /sdcard/busybox
    ./adb shell

    [Примечание: символ приглашения ввода строки должен измениться на

    $ , это означает, что мы удаленно подключились к телефону]

    cd /data/local/tmp

    chmod 0755 rage.bin

    ./rage.bin

    [Примечание: Эта комманда определит ограничение процесса, найдет номер процесса adb, а затем запускает процессы до исчерпания этого ограничения. Вы быстро вернетесь в строк сприглашением $, но ЭТО НЕ ВСЕ. ЖДИТЕ пока не выведется что-то похожее на "[+] Forked 3705 childs." и вы вернетесь в свою домашнюю директорию.]

    9. Зафиксируем права root

    • В терминале вернитесь в директорию ~/bin введите "./adb shell "

      На этот раз вы должны получить приглашение # вместо $ . Это означает, что теперь вы удаленно зашли на телефон как root.

    • Скопируйте и вставьте каждую строку по отдельности (жмите Enter после каждой строки):

    mount -t rfs -o remount,rw /dev/block/stl9 /system
    cd /system/xbin
    cat /sdcard/su > su
    cat /sdcard/busybox > busybox
    chmod 4755 su
    chmod 4755 busybox
    exit
    ./adb install Superuser.apk

    10. Убедимся что получили права root

    • Перезапускаем телефон
    • В терминале выполняем "~/bin/adb shell "
      Вы должны получить приглашение $
      Выполните "su "
      На телефоне должно появиться всплывающее сообщение где запрашивается подтверждение использования прав суперпользователя. После того, как вы разрешите, приглашение должно измениться на #

    Это сообщение будет появляться всякий раз, когда вы устонавливаете и запускаете программу требующую привелегий пользователя root.
    Теперь запустите приложение SuperUser, оно должно показать список программ имеющих привелегии root пользователя.

    Если у вас есть смартфон с операционной системой Android и вы часто с ним экспериментируете, что-то настраиваете или перепрошиваете, то, скорее всего, вы уже знакомы с инструментом ADB или (Android Debug Bridge). Это программа для управления смартфоном через компьютер по USB, которая содержит множество полезных команд.

    Вы можете просматривать журналы, устанавливать и удалять приложения, управлять устройством и выполнять множество других полезных команд. Из этой статьи вы узнаете как пользоваться ADB в Linux, мы рассмотрим полезные команды ADB для пользователей Android и подробно разберем эту утилиту. Но сначала рассмотрим как установить сам инструмент на компьютер.

    Программа ADB входит в стандартный набор утилит Android SDK. Вы можете установить эту среду и получите нужную утилиту. Но не всегда хочется тянуть на компьютер целую среду исполнения. Иногда нужна только одна программа. Ее можно очень просто установить отдельно. В Ubuntu для этого можно выполнить команду:

    sudo apt install android-tools-adb

    Для Red Hat, CentOS команда будет немного отличаться:

    sudo yum install android-tools-adb

    Если вам нужно установить ADB в Windows, то придется скачать пакет SDK Platform Tools из официального сайта.

    Подготовка смартфона

    Для того чтобы вы смогли использовать adb вместе со своим смартфоном вам необходимо включить режим отладки по USB. Эта возможность скрыта во всех версиях Android начиная с 4.2. Чтобы стать разработчиком сначала зайдите в "Настройки" -> "О телефоне" и семь раз нажмите на пункте "Номер сборки" :

    Затем в главном меню настроек появится пункт "Для разработчиков" :

    Тут необходимо поставить галочку напротив раздела "Разрешить отладку по USB" :


    Теперь ваш телефон готов к работе с adb. Подключите его по USB к вашему компьютеру и начнем работать.

    Полезные команды ADB

    Перед тем как мы сможем управлять устройством, необходимо еще кое-что сделать. Команде adb требуется специальная служба для связи с Android необходимо ее запустить. Для этого используйте такую команду:

    adb start-server

    После завершения работы вы можете отключить службу чтобы она не потребляла лишние ресурсы:

    Теперь можно выполнять adb команды для android.

    Список устройств

    Первым делом, посмотрим список подключенных устройств к нашему компьютеру. Для этого используется команда devices:

    Если к системе подключено несколько смартфонов, то по умолчанию действия будут применяться к первому. Но вы можете задать нужное имя устройства с помощью опции -s. Например:

    adb -s 0123456789ABCDEF logcat

    Также указать имя устройства, к которому необходимо применять команды программы adb можно с помощью переменной ANDROID_SERIAL:

    export ANDROID_SERIAL=0123456789ABCDEF

    Тогда все команды adb будут применяться к устройству, указанному в этой переменной.

    Состояние устройства

    С помощью команды get-state вы можете узнать состояние устройства:

    Команда вернет одно из значений: device - работает, bootloader - загружается, offline - выключено. С помощью команды status-window можно постоянно отслеживать состояние:

    adb status-window

    Просмотр журналов

    Самое частое действие, которое приходится делать разработчикам и тестировщикам мобильных приложений в поиске ошибок - это просмотр журналов системы и приложений. Для этого применяется команда logcat:

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

    adb logcat -d > ~/android.log

    С помощью опции -c можно очистить все логи на устройстве:

    Не всегда нужно смотреть полный системный лог, иногда будет достаточно только увидеть сообщения нужной программы.. Для этого просто укажите имя пакета:

    adb logcat com android.settings

    С помощью опции --log-level можно установить уровень подробности сообщений, доступны такие варианты: V, D, I, W, E, F, S. Для выбора подробности вывода укажите нужную букву через двоеточие после имени приложения:

    adb logcat com android.settings:E

    Или выведем только ошибки для всей системы целиком:

    Передача файлов на устройство

    Если вам нужно быстро отправить файл на устройство, для этого можно использовать команду push. Вот ее синтаксис:

    $ adb push /адрес/локального/файла /адрес/удаленного/файла

    Например, загрузим файл из домашней папки на устройство:

    adb push ~/file /sdcard/file

    Файл будет мгновенно передан на устройство и вы можете в этом убедиться. Дополнительно можно использовать опцию -p для отображения прогресса, а также опцию -a чтобы сохранить оригинальный timestamp.

    Таким же образом вы можете скачать файл с устройства. Синтаксис команды pull:

    $ adb push /адрес/удаленного/файла /адрес/локального/файла

    Например, скопируем отправленный файл обратно:

    adb pull /sdcard/file ~/file1

    Установка приложений

    С помощью adb можно напрямую устанавливать приложения. Эта возможность может быть очень удобной для разработчиков. Команде install нужно передать только адрес apk файла:

    adb install ~/Momentum_apkpure.com.apk

    После этого приложение установлено и готово к работе на вашем устройстве. Если вам нужно обновить приложение до более новой версии, тогда используйте опцию -r. Это очень важно. Иначе получите ошибку:

    adb -r install~/Momentum_apkpure.com.apk

    Еще доступны опции -s - для установки на флешку и -d - для понижения версии программы.

    Удаление приложений

    Удалить приложение тоже очень просто. Для этого достаточно передать имя его пакета команде uninstall. Например, удалим браузер Firefox:

    adb uninstall org.mozilla.firefox

    Резервное копирование

    Вы можете создать резервную копию своей прошивки и всех системных файлов Android для того, чтобы ее потом очень просто и быстро восстановить. Для этого используется команда backup. Сначала рассмотрим ее синтаксис:

    $ adb backup опции пакеты

    Опции указывают какие данные нужно копировать. Каждая опция может иметь приставку no, которая означает, что эти данные копировать не нужно. Рассмотрим основные опции:

    • -apk - сохранять apk файлы для программ, по умолчанию отключено;
    • -obb - сохранять расширения установленные расширения apk файлов в формате obb. По умолчанию отключено;
    • -shared - сохранять данные приложений из SD карты или памяти телефона, отключено;
    • -all - сохранить все установленные приложения;
    • -system - сохранить системные приложения, эти приложения уже входят в список all.

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

    adb backup -apk -obb -shared -all -f backup.ab

    С помощью опции -f мы задаем имя файла архива, он будет сохранен в текущей папке. Если его не задать, то имя по умолчанию будет backup.ab. Вам нужно будет подтвердить создание копии на телефоне, можно ввести пароль для шифрования:

    Для восстановления из резервной копии используйте команду restore. Ей достаточно передать адрес файла:

    adb restore android.ab

    В утилиты adb есть даже команды для перезагрузки устройства. Можно просто перезагрузить смартфон с помощью команды reboot:

    Можно загрузиться в режим recovery:

    adb reboot recovery

    Или в режим настройки загрузчика:

    adb reboot bootloader

    Консоль Android

    С помощью команды shell вы можете войти в консоль Android и выполнять там необходимые действия. Здесь доступно большинство привычных нам команд linux. Мы подробно рассматривали все доступные команды в статье . Сейчас же поговорим про саму команду shell и приведем несколько примеров. Чтобы войти в консоль наберите:

    adb shell ls /system

    Например, с помощью такой команды вы можете сделать снимок экрана:

    adb shell screencap -p /sdcard/screenshot.png

    А так можно снять экран смартфона на видео:

    adb shell screenrecord /sdcard/video.mp4

    Выводы

    В этой статье мы рассмотрели как пользоваться утилитой adb для управления Android смартфоном, а также основные команды программы adb, которые вы можете применять. Команды adb shell - это те же команды, что вы можете выполнять в терминале Android, поэтому нет смысла их разбирать еще раз. Надеюсь, информация из этой статьи была вам полезной.

    Об авторе

    Основатель и администратор сайта сайт, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux интересуюсь всем, что связано с информационными технологиями и современной наукой.



    Похожие публикации