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

Утилиты ADB и Fastboot входят в состав комплекта разработки Android SDK (не стоит путать с Android Studio и уж тем более скачивать ее громоздкий установочный файл, если вы, конечно, не собираетесь заниматься разработкой под Android). ADB является инструментом для отладки, который позволяет получить доступ к консоли Андроид с компьютера (), подключив гаджет к ПК по USB. При этом должна быть . Fastboot предназначен для работы с устройством, когда то загружено в одноименном режиме (если такой есть на вашем аппарате).

При помощи ADB можно управлять смартфоном/планшетом с компьютера: сделать бэкап приложений, записать скринкаст, перевести смартфон в режим Recovery и многое другое. Кроме того с ADB можно работать и через Wi-Fi. Для этого на вашем устройстве должны быть получены root-права, а также понадобится специальное приложение, осуществляющее подключение к компу по сети. Например, ADB Wireless либо WiFi ADB. Но это уже материал для отдельной статьи.

Используя Fastboot, вы сможете , кастомные Рекавери ( или ), разблокировать Bootloader (на аппаратах HTC, Motorola, Sony, Nexus, Huawei, последних LG он заблокирован), очищать разделы системы.

Как установить ADB и Fastboot: инструкция

1. Перейдите на официальный сайт, откуда можно скачать Android SDK: https://developer.android.com/studio/index.html . Спуститесь вниз страницы к разделу «Command line tools only» и выберите архив для Windows.

2. Установите галочку в чекбоксе «I have read and agree with the above terms and conditions» и нажмите кнопку «Download Android Command Line Tools for Windows». Начнется загрузка архива.

3. Скачайте его и разархивируйте в корень Диска «C:».

4. Также необходимо загрузить Java Development Kit с официальной страницы . Перейдите на сайт, согласитесь с условиями лицензионного соглашения, отметив пункт «Accept License Agreement», и скачайте версию JDK, соответствующую разрядности вашей системы.

Первый способ

Вернитесь к папке c Android SDK, откройте «tools» и запустите «android».

Отметьте пункт «Android SDK Platform-tools» (а также «Google USB driver», если у вас устройство Nexus) и нажмите «Install Packages».

Про установку драйверов для других аппаратов читайте ниже.

Выберите «Accept License» и нажмите «Install».

Мой лог показал, что возникла ошибка. Но в итоге все завершилось успешно.

По завершении выполнения вышеописанных действий в папке «sdk-tools-windows-version » появится «platform-tools», а в ней будут интересующие нас «ADB» и «Fastboot».

Второй способ

Перейдите в папку «sdk-tools-windows-версия » → «tools» → «bin» и, зажав клавишу «Shift», щелкните правой кнопкой мышки по пустой области. Выберите «Открыть окно команд» либо «Открыть окно PowerShell здесь», если на ПК или ноутбуке установлена одна из последних сборок Windows 10.

Вставьте команду в PowerShell или командную строку (в PowerShell добавьте./ вначале):

Щелкните «Enter», чтобы выполнить команду. Произойдет загрузка файлов и появится запрос на установку:

Чтобы разрешить, введите y , то есть «yes», и нажмите «Enter», после чего начнется установка «platform-tools».

В конце в командной строке отобразится сообщение, что процедура завершилась успешно. А папка «platform-tools» с ADB и Fastboot внутри появится в «sdk-tools-windows-version ».

(!) Если по какой-либо причине не удается установить ADB и Fastboot предыдущими способами, воспользуйтесь третьим вариантом – просто скачайте архив «platform-tools» и разархивируйте на диск «C:».

Устанавливаем драйверы ADB и Fastboot для Windows

Чтобы компьютер смартфон либо планшет, необходимо загрузить драйвер USB:

  • Samsung – драйвер входит в состав утилиты Kies: http://www.samsung.com/ru/support/usefulsoftware/KIES/ либо же его можно скачать отдельно, выбрав нужную модель: http://www.samsung.com/us/support/downloads
  • HTC – в составе HTC Sync Manager: http://www.htc.com/ru/software/htc-sync-manager/
  • Nexus – драйвер Android устанавливается вместе с Android SDK, о чем писалось выше.
  • Huawei – совместно с утилитой HiSuite: http://consumer.huawei.com/minisite/HiSuite_en/index.html
  • LG – установите LG PC Suite: http://www.lg.com/ru/support/software-firmware
  • Motorola – смотрите на этой странице: https://motorola-global-portal.custhelp.com/app/answers/detail/a_id/88481
  • Sony Xperia – драйверы FastBoot для всех моделей находятся здесь: http://developer.sonymobile.com/downloads/drivers/
  • Xiaomi – Mi PC Suite: http://pcsuite.mi.com
  • MTK – для китайских аппаратов на чипах MediaTek: http://online.mediatek.com/Public%20Documents/MTK_Android_USB_Driver.zip
  • Lenovo – выберите модель смартфона, планшета и загрузите ADB драйвер: http://support.lenovo.com/us/en/GlobalProductSelector
  • Решения для девайсов других производителей ищите на их официальных сайтах.

Существуют различные универсальные установщики ADB драйверов (к примеру, этот: http://adbdriver.com/downloads/) – ими тоже можно пользоваться, например, когда по какой-то причине не удалось установить официальное решения.

Если для вашей модели идет драйвер без установщика, придется выполнить следующие действия:

1. Зайдите в «Панель управления» → «Диспетчер устройств». В Windows 10 достаточно нажать правой кнопкой мышки по меню «Пуск» и выбрать «Диспетчер устройств».

2. Найдите в списке девайс для которого нужно установить драйверы. Щелкните правой кнопкой мышки и нажмите «Обновить драйверы».

Как видите, компьютер корректно распознает мой планшет Nexus 7. Если ваш ПК определяет смартфон неправильно или напротив устройства стоит желтый треугольник с восклицательным знаком внутри, «ручная» установка драйверов Android для вас обязательна.

3. Выберите пункт «Выполнить поиск драйверов на этом компьютере».

4. Укажите путь к папке с драйверами на ПК.

Дождитесь завершения установки и затем заново подключите гаджет к компьютеру по USB.

Как начать работать с Fastboot и ADB

Работа с ADB или Fastboot осуществляется из командной строки, утилиты запускаются двумя способами:

1: Правой клавишей мышки щелкните на «Пуск» и выберите «Командная строка (администратор)» либо «Windows PowerShell (администратор)». Далее при помощи команд укажите путь к папке с ADB и Fastboot (после ввода каждой нажимайте «Enter»).

Чтобы вернуться в корень диска «C:\», используйте:

Благодаря этой команде открываем нужную папку:

В моем случае получилось так:

cd \tools_версия -windows\platform-tools

У вас выйдет (разработчики Google изменили название архива уже после написания первоначальной редакции этой инструкции):

cd \sdk-tools-windows-version \platform-tools

Путь к Fastboot и ADB указан, теперь работаем с ними из консоли.

Чтобы не выполнять эти действия каждый раз, добавьте путь к «platform-tools» в переменную «Path». Сначала зайдите в папку, в строке навигации щелкните правой кнопкой мыши по «platform-tools» и выберите «Копировать адрес».

Перейдите в «Панель управления». Для этого нажмите «Win» + «R» и в поле «Открыть:» вставьте control . Нажмите «ОК».

Выберите «Система» → «Дополнительные параметры системы» → «Переменные среды…».

Найдите перемененную «Path», выделите ее и выберите «Изменить…».

Нажмите «Создать», вставьте путь к папке «platform-tools» и щелкните «ОК».

Способ может быть полезен в том случае, если «уже ничего не помогает», доступа к Root Explorer нет или телефон вообще не может загрузиться. В моем случае, пришлось в «боевом» режиме восстанавливать удалённый по глупости SystemUI.apk. При этом на телефоне что-то делать можно было только в доли секунды между нажатием кнопки «ОК» на предыдущем окне с ошибкой и появлением следующего такого же окна. Перепрошиваться не хотелось, потому пришлось срочно осваивать adb.

Итак, для того, чтобы подключить свой гуглофон к adb, вам нужно:

1) Android SDK для Вашей системы (здесь - на примере GNU/Linux Ubuntu)
2) Android SDK Platform-tools (устанавливаются выбором соответствующей галочки в Android SDK)
3) В «Параметры - Программы - Отладка» должна стоять галочка на «Отладка по USB»
4) Подключить телефон к USB
5) В моём случае пришлось сделать еще две вещи:
указать ID производителя телефона idVendor (его можно найти ):
#echo SUBSYSTEM=="usb", SYSFS{idVendor}==" 0bb4 ", MODE="0666" > /etc/udev/rules.d/51-android.rules
#chmod a+r /etc/udev/rules.d/51-android.rules
где 0bb4 заменяем на код своего производителя, после чего перезапустить adb
#adb kill-server
#adb start-server

Итак, все установлено и подключено, вы добавили путь к platform-tools в переменную $PATH своей операционной системы или перешли в эту папку с помощью команды cd. По команде «adb devices» должен выдавать некий номер и справа от него «device». Это значит, что adb видит телефон и может с ним работать. Если вместо «device» что-то другое или вообще «List of devices attached» - проблема где-то на 4-5 шаге.

Далее вам нужно поместить системный файл, который вы хотите установить, в папку platform-tools. То есть запасная копия системного файла должна быть приготовлена заранее или скопирована с аналогичного телефона.

После этого можно закинуть системный файл в /system/app такой последовательностью команд:

$adb push YourFile.apk /data/Yourfile.apk
$adb remount
$adb shell
$su
#cp -f /data/YourFile.apk /system/app/Yourfile.apk
#chmod 644 /system/app/YourFile.apk
#exit
$exit
$adb reboot
где YourFile.apk - имя вашего системного файла, причем регистр букв имеет значение.
После последней команды Ваш телефон должен перезагрузиться уже с новыми файлами.
Если на команду «adb remount» Вы получаете ответ «remount failed: Operation not permitted», то попробуйте вместо нее после «su» ввести "#mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system".

P.S.: В линуксе, если platform-tools не добавлена в $PATH, вместо «adb» нужно писать "./adb".

В этой статье команды, которые я запускал от имени обычного пользователя обозначены символом $ в начале строки, от имени root - символом #.

Существует множество инструментов для работы с подключенным с помощью 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. Оформи подписку на «Хакер», чтобы читать все материалы на сайте

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

Многие из нас уже знакомы с ADB (Android Debug Bridge), поскольку, будучи владельцем Android устройства, довольно часто приходится выполнять такие простые действия, как adb push и pull , или adb reboot и т.д. Но для многих начинающих пользователей один только вид командной строки уже пугает, и кажется запредельно возможным. Хотя на самом деле всё довольно просто, опытные пользователи не дадут мне соврать, а самая большая сложность заключается в том, чтобы запомнить все эти команды, хотя это тоже не обязательно делать, поскольку Интернет всегда под рукой и найти нужную команду не составляет труда.

Android Debug Bridge, который является частью эмулятора Android SDK, позволяет осуществлять связь между Вашим компьютером и подключенным к нему Android устройством, кстати если нужен какой то софт, то программы на ноутбук скачать бесплатно можно здесь. Что я могу делать с помощью ADB? Возможности у него довольно широкие, например, самые популярные действия: копировать файлы с Android устройства на компьютер, заливать файлы с компьютера на Android, выполнять множество Linux команд, получать отчеты об ошибках и т.д.

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

Что понадобится

1. Android Debug Bridge (ADB) для Windows 32bit - скачать

2. Android Debug Bridge (ADB) для Windows 64bit - скачать

3. Компьютер с установленной Windows ОС.

Теперь переходим к активной фазе:

1. Скачиваем нужный zip архив и извлекаем его куда Вам будет угодно, например, диск С.

2. Теперь переходим в директорию C:/adb/sdk/platform-tools. Здесь вы найдете набор файлов, как показано на картинке ниже.

3. Зажимаем кнопку Shift + правый клик мышью и запускаем командную строку Windows с текущей директории.

4. Вводим команду adb start-server .

5. Чтобы убедится, что Ваше устройство правильно подключено и было распознано компьютером, введите команду: adb devices . Если всё хорошо, вы увидите что то похоже на это:

Теперь, когда Ваше устройство подключено и всё работает, давайте немного с ним поиграем.

Читаем LOGCAT через ADB

Самый простой способ, это выполнить команду: adb logcat . Как результат, на экране появится всё содержимое лог файла устройства. Чтобы получить logcat в отдельном файле выполните: adb logcat > logcat.txt .

Отчет об ошибках (BUGREPORT)

Можно выполнить команду: adb bugreport , но вы получите уведомление, что сформировавшийся отчет невозможно будет прочитать, поэтому лучше воспользоваться: adb bugreport >result.txt .

ADB совместно с ROOT правами доступа

Для работы из-под ADB с полными правами доступа, нужно рутить девайс. Если девайс уже рученый, тогда выполняем команду: adb root и видим то, что показано на картинке ниже (перезагрузка ADB с root правами).

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

Чтобы установить приложение, убедитесь, чтобы в названии apk файла не было пробелов и надо точно знать правильный путь к нему. Ну а дальше выполняем команду: adb install + название файла инсталяции. В своем примере я установил игру papertoss, поэтому если всё пройдет успешно, вы получите на экране такую картинку:

Я укоротил свою разблокированную Galaxy S3 (SGH-T999)

Теперь я пытаюсь запустить adb root из командной строки Windows, однако, я получаю ошибку adbd cannot run as root in production builds . Итак, самое первое, что я проверил, был ли мой телефон действительно укоренен?

Итак, я попробовал следующее:

Откройте командную строку

$adb devices // lists my device $adb shell //goes to shell $su // opens a "SuperSu" prompt on my phone and I "Grant" permission # // Before following the rooting instructions, I was getting "no su command found" in the previous step. So, I believe my phone is ROOTED. **Correct me if I"m wrong.**

Однако, когда я делаю adb root , я получаю ошибку adbd cannot run as root in production builds . Поэтому, подумал я, мне, возможно, придется сделать некоторые дополнительные вещи, кроме того, что я сделал выше. Я пробовал все решения в следующих SO-вопросах:

  • запрещено разрешение на удаление adb, но доступно для доступа к суперпользователю в shell-android

Ничто из этого не помогло мне. Все, что они делают, - это доступ к ROOT INSIDE от SHELL. Я хочу, чтобы adb root работал, чтобы я мог выполнять различные команды adb БЕЗ вставки в оболочку.

7 ответов

В некоторых дружественных к программированию ПЗУ вы можете просто включить Root Access в Settings > Developer option > Root access. После этого становится доступным adb root . К сожалению, это не работает для большинства биржевых дисков на рынке.

По дизайну команда adb root работает только в userdebug разработки (т.е. eng и userdebug которые по умолчанию имеют ro.debuggable=1). Поэтому, чтобы включить команду adb root на ваше иначе внедренное устройство, просто добавьте ro.debuggable=1 в один из следующих файлов:

/system/build.prop /system/default.prop /data/local.prop

Если вы хотите, чтобы adb shell начиналась с root по умолчанию, а затем добавьте ro.secure=0 .

В качестве альтернативы вы можете использовать измененный adbd код adbd (который не проверяет ro.debuggable)

#if defined(ALLOW_ADBD_ROOT) // The properties that affect "adb root" and "adb unroot" are ro.secure and // ro.debuggable. In this context the names don"t make the expected behavior // particularly obvious. // // ro.debuggable: // Allowed to become root, but not necessarily the default. Set to 1 on // eng and userdebug builds. // // ro.secure: // Drop privileges by default. Set to 1 on userdebug and user builds.

У меня есть встроенный Samsung Galaxy Trend Plus (GT-S7580).

Запуск "adb root" дает мне то же самое, что "adbd не может выполняться с ошибкой root in production".

Для устройств, имеющих параметры разработчика → Root access, выберите "Только ADB", чтобы обеспечить доступ к устройству с помощью adb root (как предложено NgaNguyenDuy).

Затем попробуйте запустить команду в соответствии с решением запустите script как root через ADB . В моем случае я просто хотел запустить команду netcfg rndis0 dhcp, и я сделал это следующим образом:

Adb shell "su -c netcfg rndis0 dhcp"

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

Если он все еще не работает, проверьте правильность установки устройства. Если вам все еще не повезло, попробуйте установить пользовательский диск, например Cyanogen Mod , чтобы работать с "adb root".

Вам нужно заменить двоичный файл adbd в файле boot.img/sbin/на тот, который способен su. Вам также придется внести некоторые изменения по умолчанию.prop тоже.

Samsung, похоже, делает это более сложным, чем другие продавцы. У меня есть некоторые двоичные файлы adbd, которые вы можете попробовать, но для этого потребуется знание о -c ompiling и re -c, оспаривающее boot.img с новым двоичным кодом. Кроме того, если у вас заблокированный загрузчик... это не произойдет.

Кроме того, Chainfire имеет приложение, которое предоставит разрешение root для adbd в магазине воспроизведения: https://play.google.com/store/apps/details?id=eu.chainfire.adbd&hl=en

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

adb shell "su -c ls" <-list рабочий каталог с правами su. adb shell "su -c echo anytext>/data/test.file"

Это лишь некоторые примеры. Если вы конкретно заявляете, что вы пытаетесь выполнить, я могу дать более конкретные советы