Копирование файлов через adb

Обновлено: 04.07.2024

Если вы никогда не слышали о Minimal ADB и Fastboot, это простой, но мощный инструмент, который позволяет вам вводить команды для управления вашим Android-телефоном, подключенным через USB.

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

С помощью Minimal ADB и Fastboot вы можете делать такие вещи, как передача файлов, найти серийный номер или даже сделать полную резервную копию вашего телефона с помощью одной простой команды.

Настройка минимального ADB и быстрой загрузки

Минимальные ADB и Fastboot доступны для Windows, MacOS и Linux. Вот руководство по настройке минимального ABD в вашей системе.

После установки Minimal ADB и Fastboot вам просто нужно включить отладку по USB на вашем телефоне. Есть только несколько простых шагов, чтобы сделать это.

Чтобы включить режим разработчика, перейдите в Настройки , нажмите Об устройстве (или О телефоне ) и продолжайте нажимать Номер сборки пока не появится предупреждение о том, что режим разработчика включен.

Еще раз зайдите в Настройки . Теперь вы должны увидеть значок Параметры разработчика . Нажмите на это, прокрутите вниз до отладки USB и включите его.

Выйдите из настроек. Эти изменения позволяют утилите Minimal ADB и Fastboot подключаться к вашему телефону и управлять им.

Теперь вы готовы начать вводить команды на свой телефон.

Просто подключите свой телефон Android к компьютеру с помощью USB-кабеля, а затем запустите Minimal ADB и Fastboot. Вы увидите всплывающее окно команд.

Чтобы проверить, могут ли Minimal ADB и Fastboot взаимодействовать с вашим телефоном, просто введите команду: adb devices .

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

Это означает, что утилиты Minimal ADB и Fastboot могут видеть ваш телефон, и вы готовы начать вводить полезные команды.

Передача файлов на и с вашего телефона

Существует много способов перемещения файлов и данных между телефоном Android и другими устройствами. Однако большинство из этих методов требуют нескольких шагов или сложных соединений.

С Minimal ADB и Fastboot, как только вы настроите свой компьютер и телефон один раз, чтобы разрешить команды ADB, вам больше никогда не потребуется настраивать его снова.

Передача файлов так же проста, как ввод одной простой команды, и файлы передаются.

Откройте Minimal ADB и Fastboot и убедитесь, что он видит ваше устройство, введя команду adb devices .

Если вы знаете путь, по которому находится ваш файл (например, изображение), вы можете ввести полную команду, включая источник и место назначения, например:

adb pull /sdcard/dcim/camera/20181224_131245.jpg c:/temp/pictures/

Вы увидите статус, показывающий успешно извлеченный файл.

Вы можете найти переданный файл во втором каталоге, который вы указали.

Таким же образом вы можете перемещать файлы со своего компьютера на телефон с помощью одной простой команды. Просто поменяйте местами каталоги источника и назначения.

Например, чтобы поместить изображение с вашего компьютера на телефон, просто введите adb push c: \ temp \ pictures \ mypicture.jpg/sdcard/dcim/pictures .

Это создаст копию файла на вашем телефоне в каталоге/sdcard/dcim/pictures.

Навигация по папкам на вашем телефоне

Если вы не знаете путь к файлу на своем устройстве Android, вы можете использовать специальные команды, называемые командами adb shell , чтобы найти файл.

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

  • ls . Содержит список содержимого каталога.
  • cd : изменяет каталог.
  • rm . Удалите файлы или каталоги.
  • mkdir : создайте новый каталог.
  • cp : копировать файлы или каталоги.
  • mv : перемещать или переименовывать файлы.

С помощью команды оболочки adb вы можете объединить эти команды, разделив их точкой с запятой.

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

Введите adb shell ls , чтобы увидеть все каталоги на вашем телефоне.

Введите adb shell cd sdcard; ls , чтобы перейти в каталог sdcard и просмотреть все файлы там. Каждая команда, разделенная точкой с запятой, выполняется последовательно.

Продолжайте добавлять команду, чтобы глубже переходить в подкаталоги, пока не найдете нужные файлы. Например, введите adb shell cd sdcard; cd dcim; cd камера; ls покажет вам все фотографии, сделанные на вашей камере.

Найдя нужные файлы, вы можете выполнить команду adb pull , описанную в предыдущем разделе, чтобы перенести эти файлы на ваш компьютер.

Удаленная установка или удаление приложений Android

Google Store автоматически передает установочный файл (известный как файл APK) на ваш телефон и запускает его. Все это происходит автоматически и за кадром.

Однако на многих сайтах можно загрузить приложения, недоступные в Google Play. Они позволяют вам загрузить файл APK на ваш компьютер. Затем вы можете удаленно установить APK на свой телефон с помощью простой команды abd install .

Вот как это работает:

Включите установку неизвестных приложений на вашем телефоне. На Android Nougat вы найдете это в разделе Настройки , нажмите Безопасность и включите Неизвестные источники . В Android Oreo вы найдете это в разделе Настройки , нажмите Приложения и уведомления и выберите Установить неизвестные приложения .

Наконец, подключив телефон к компьютеру, запустите Minimal ABD и Fastboot. В командной строке введите команду adb install .apk .

Эта команда автоматически передает файл APK на устройство Android, а затем запускает установщик. После завершения установки вы увидите приложение в списке приложений, установленных на вашем телефоне.

Вы также можете удалить приложения с помощью команды adb uninstall . Но прежде чем вы сможете это сделать, вам нужно знать полное имя пакета приложения, установленного на вашем телефоне.

Просмотрите все пакеты, установленные на вашем телефоне, введя список пакетов adb shell pm list .

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

Удалите приложение, набрав adb uninstall.

Замените на полное имя пакета приложения, который вы нашли в списке.

После запуска команды вы увидите слово «успех». Приложение исчезнет из списка приложений на вашем телефоне Android.

Сделайте полную резервную копию вашего телефона

У вас когда-нибудь умирал телефон на Android, и вы все потеряли на нем?

Для людей, которые все время используют свой телефон для фото и работы, такой сценарий может показаться настоящей катастрофой. Избегайте этого, используя ADB Minimal и Fastboot, чтобы сохранить полную резервную копию на вашем компьютере.

Процесс проще, чем вы думаете.

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

Эти параметры включают в себя:

  • -f : укажите место, где вы хотите сохранить резервную копию на вашем компьютере.
  • -apk | -noapk . Укажите, следует ли создавать резервную копию каждого APK-файла для установленных приложений.
  • -shared | -noshared : также создайте резервную копию общего хранилища (например, SD-карты).
  • -all . Создайте резервные копии всех приложений, а не только отдельных.
  • -system | nosystem : укажите, следует ли создавать резервную копию системных приложений.
  • . Определите отдельные пакеты приложений для резервного копирования.

Команда для этого:

Резервное копирование adb -apk -all -f C: \ temp \ phone_backup \ Samsung_Backup.ab

Это вызовет запрос, в котором вы подтвердите полную резервную копию и зашифруете ее, если хотите.

Как только вы подтвердите, начнется полное резервное копирование.

Для полного резервного копирования может потребоваться несколько минут.

Когда это произойдет, вы можете найти файл полной резервной копии по указанному вами пути.

Если ваш телефон когда-либо умирает, и вы теряете на нем все, после ремонта телефона вы можете выполнить полное восстановление, набрав команду:

adb restore .ab

Это загрузит вашу полную резервную копию обратно на телефон и восстановит все обратно в нормальное состояние. Если вы выбрали резервное копирование файлов APK, даже все исходные приложения будут переустановлены.

Получить информацию о вашем телефоне

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

С помощью Minimal ADB и Fastboot вы можете получать различную информацию о вашем телефоне.

  • adb shell ip -f inet addr show wlan0 . Предоставляет текущий IP-адрес вашего телефона в сети.
  • Оболочка adb getprop ro.boot.serialno . Показывает серийный номер вашего телефона.
  • adb shell getprop ro.build.version.release : отображает версию ОС Android, установленную на вашем телефоне.
  • netstat оболочки adb . Показывает все текущие сетевые подключения, которые в данный момент активны с вашего телефона.

Команда adb shell getprop дает вам доступ к огромному количеству подробностей о вашем телефоне в дополнение к серийному номеру и выпуску ОС. Чтобы увидеть всю коллекцию, просто введите adb shell getprop, и вы увидите список всех деталей, включая текущее значение.

Набрать одну команду с вашего компьютера, чтобы получить эту информацию с телефона, гораздо проще, чем копаться в меню «Настройки», чтобы попытаться найти их.

Использование минимального ADB и Fastboot

Нередко пользователям Android-телефонов, которые не являются разработчиками, понадобится приложение из командной строки. Однако Minimal ABD и Fastboot очень разные.

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

  • Посмотреть какие устройства подключены и могут работать с ADB.
  • Просматривать логи.
  • Копировать файлы с/на аппарат.
  • Устанавливать/Удалять приложения.
  • Удалять (очищать) раздел data.
  • Прошивать (перезаписывать) раздел data.
  • Осуществлять различные скрипты управления.
  • Управлять некоторыми сетевыми параметрами.
Распаковываем архив (рекомендуется распаковывать в корень диска или в другую папку, не содержащую русских букв и пробелов в пути). Например: C:\\adb
Настройки соединения, устройства. Драйверы.
Настраиваем телефон.
Для этого перейдите в: "Настройки" - "О телефоне" - 7 раз нажмите на номер сборки. В настройках для разработчиков активируйте отладку по USB.
При подключении USB-кабеля выбираем "Передача файлов".
Проверяем соединение на компьютере.
Перейдите в, раннее распакованную, папку с утилитами. В ней, в адресной строке папки, сверху, напишите - "cmd" (без кавычек) и нажмите Enter.
Проверьте доступность устройства и правильность установки драйверов. Для этого выполните adb или fastboot команду:
Если все хорошо, драйвера успешно установлены и телефон правильно подключен - вы увидите следующий ответ:
<серийный номер устройства> device
или
<серийный номер устройства> fastboot

Если что-то неправильно, то в списке подключенных устройств (List of devices attached) будет пусто.

Так как adb/fastboot - консольные утилиты, работать с ними надо из командной строки.
Перейдите в, раннее распакованную, папку с утилитами. В ней, в адресной строке папки, сверху, напишите - "cmd" (без кавычек) и нажмите Enter.
Далее работаем посредством нужных вам команд.

Скрытые команды ADB
adb -d Команда посылается только на устройство подключенное через USB.
Внимание: Выдаст ошибку, если подключено больше одного устройства.

adb -e Команда посылается на устройство в эмуляторе.
Внимание: Выдаст ошибку, если подключено больше одного эмулятора.

adb -s <серийный_номер_устройства> Команда посылается на устройство с указанным серийным номером:

adb push <путь на PC> <путь на андроид> Копировать файл/папку PC->девайс.

adb shell Запуск упрощенного unix shell.
Примеры использования

adb emu <команда> Послать команду в консоль эмулятора

adb wait-for-device Ждать подключения устройства.

adb start-server Запустить службу/демон.

adb kill-server Остановить службу/демон.

adb get-state Получить статус:
offline Выключен.
bootloader В режиме начальной загрузки.
device В режиме работы.

adb get-serialno Получить серийный номер.

adb status-window Непрерывный опрос состояния.

adb remount Перемонтировать для записи. Требуется для работы скриптов, которые изменяют данные на.

adb reboot bootloader Перезагрузка в режим bootloader.

adb reboot recovery Перезагрузка в режим recovery.

adb root Перезапуск демона с правами root

adb usb Перезапуск демона, прослушивающего USB.

adb tcpip <порт> Перезапуск демона, прослушивающего порт TCP.

FastBoot - консольное приложение для PC. Используется для действий над разделами

fastboot devices Список присоединенных устройств в режиме fastboot.
fastboot flash <раздел> <файл> Прошивает файл .img в раздел устройства.

fastboot erase <раздел> Стереть раздел.
Разделы: boot, recovery, system, userdata, radio
Пример: fastboot erase userdata Стирание пользовательских данных.

fastboot update <имя_файла.zip> Прошивка из файла имя_файла.zip

fastboot flashall Прошивка boot + recovery + system.

fastboot getvar <имя_переменной> Показать переменные bootloader.
Пример: fastboot getvar version-bootloader Получить версию bootloader.

fastboot devices Показать список подключенных устройств.

fastboot continue Продолжить с автозагрузкой.

fastboot reboot Перезагрузить аппарат.

f astboot reboot-bootloader Перезагрузить девайсв режим bootloader.
Перед командами fastboot можно использовать ключи:
-w стереть данные пользователя и кэш
-s <серийный номер> Указать серийный номер устройства.
-p <product> Указать название устройства.
-c <cmdline> Переопределить kernel commandline.
-i <vendor id> Указать вручную USB vendor id.
-b <base_addr> Указать в ручную базовый адрес kernel.
-n <page size> Указать размер страниц nand. по умолчанию 2048.

Переименовываем радио в radio.img и кладем его в папку ADB.
@echo off
fastboot reboot-bootloader
echo После загрузки bootloader нажмите любую клавишу.
pause
fastboot flash radio radio.img
fastboot reboot @echo off
fastboot reboot-bootloader
echo После загрузки bootloader нажмите любую клавишу.
pause
fastboot flash userdata data.img
fastboot flash system system.img
fastboot flash boot boot.img
fastboot reboot Качаем бутанимацию. Переименовываем файл в bootanimation.zip и кладем его в папку ADB.
@echo off
adb remount
adb push bootanimation.zip /data/local @echo off
adb devices
fastboot reboot-bootloader
echo После загрузки bootloader нажмите любую клавишу.
pause
fastboot oem writecid 11111111
fastboot reboot-bootloader
fastboot getvar cid
fastboot reboot Распаковываем образ рекавери. Переименовываем файл в recovery.img и кладем его в папку с ADB.
@echo off
fastboot reboot-bootloader
echo После загрузки bootloader нажмите любую клавишу.
pause
fastboot flash recovery recovery.img
fastboot reboot Переименовываем кусок прошивки отвечающий за загрузку в boot.img и кладем его в папку ADB.
@echo off
fastboot reboot-bootloader
echo После загрузки bootloader нажмите любую клавишу.
pause
fastboot flash boot boot.img
fastboot reboot

Если logcat запускается на машине разработчика (не через удаленный adb shell), можно также установить значение выражения фильтра по умолчанию задав переменную окружения ANDROID_LOG_TAGS:
export ANDROID_LOG_TAGS="ActivityManager:I MyApp:D *:S"

Следует обратить внимание что задав переменную окружения ANDROID_LOG_TAGS она не будет работать в эмуляторе/устройстве, если вы будете использовать logcat в удаленном shell или используя adb shell logcat.
Вышеописанная команда export работает в ОС *nix и не работает в Windows.

Контроль формата вывода лога

Просмотр альтернативного буфера лога

Просмотр stdout и stderr

Многие из нас уже знакомы с 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. Здесь вы найдете набор файлов, как показано на картинке ниже.

ADB для чайников. Часть 1.

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

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

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

ADB для чайников. Часть 1.

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

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

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

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

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

ADB для чайников. Часть 1.

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

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

ADB для чайников. Часть 1.

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

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

ADB для чайников. Часть 1.

Копирование файлов

Две очень простые и запоминающиеся команды. Чтобы скопировать файл с Android устройства на компьютер выполняем: adb pull. В примере я скачиваю framework-res.apk файл из system/framework. Файл framework-res.apk окажется в директории C:/adb/sdk/platform-tools.

ADB для чайников. Часть 1.

Чтобы загрузить файл с компьютера на девайс выполняем: adb push. Например, мне нужно залить на устройство papertoss.apk файл из C:\sanket\apps, для этого выполняем команду: adb push C:\SANKET\apps\papertoss.apk /sdcard/nimbuzz. Здесь мы копируем papertoss.apk файл на флешку нашего устройства в директорию /sdcard/nimbuzz.

Конец первой части…


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


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

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

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

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

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

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

Добавление adb в переменную Path

Добавление adb в переменную Path

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

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

Далее работа с ADB ничем не отличается.


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

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

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

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

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

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

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

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

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

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

Процесс бэкапа

Процесс бэкапа

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

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

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

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

Вывод свободного пространства на устройстве командой adb shell df
Пример работы команды ls для вывода информации о разделах

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

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

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

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

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

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

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


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

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

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

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

Добавив в конец -s, ты увидишь только системные приложения, -3 — только сторонние, -f покажет пути установки пакетов, а -d — отключенные приложения. Далее, зная названия пакетов, можно совершать над ними различные насильственные действия :). Например, отключить ненужный календарь:

Ну а совсем удалить можно так:

Для использования activity manager понадобятся более глубокие знания структуры Android и понимание того, что такое Avtivity и Intent. Это позволит тебе запускать различные приложения, например браузер или настройки:

Завершить работу приложения можно противоположной командой:

Ну а убить все запущенные приложения — такой командой:

Тот же activity manager поможет сделать звонок на нужный номер телефона:

А так можно открыть страницу в браузере:

Запуск браузера из консоли

Запуск браузера из консоли

В данной команде input keyevent эмулирует нажатие кнопок и может использоваться как для хардварных, так и для кнопок внутри приложения. В нашем примере 22 соответствует перевод фокуса вправо (джойстик вправо — dpad right), а 66 — Enter.

С помощью команды input можно, например, разблокировать телефон. Для этого необходимо ввести:

Но данная команда не сработает на последних версиях Android. Для управления питанием и беспроводными коммуникациями там используется утилита svc. Например, включить передачу данных через мобильную сеть или управлять Wi-Fi можно через команды

Также можно заставить смартфон оставаться включенным при подключении к USB-порту/зарядке/Wi-Fi-сети или всегда:

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

Кроме опции text, у команды input есть и другие. Полная форма команды такова:

В качестве источника можно указывать trackball, joystick, touchnavigation, mouse, keyboard, gamepad, touchpad, dpad, stylus, touchscreen. В качестве команд будут:

  • text (Default: touchscreen) [delay]
  • keyevent [–longpress] … (Default: keyboard)
  • tap (Default: touchscreen)
  • swipe [duration(ms)] (Default: touchscreen)
  • press (Default: trackball)
  • roll (Default: trackball)

Как видно из команд, можно, хотя и с трудом, управлять устройством через команды input touch и input swipe при разбитом экране, если не поддерживается работа мышки через USB-OTG. Например, вытянуть шторку с уведомлениями получится так (отсчет координат идет от левого верхнего угла):

А так можно узнать разрешение экрана:

Для Nexus 5 разрешение выдаст 1080 х 1920. Тогда нажать на кнопку «Меню приложений» стандартного лаунчера от Google, которая находится над кнопкой «Домой», можно так:

Скрипты

Системные утилиты

Кратко остановлюсь на нескольких полезных командах (работоспособность некоторых, однако, может зависеть от версии прошивки и модели телефона).

Изменение DPI. Не требует root и работает на Android 5.0+. Стандартное значение для Nexus 5 — 480. При значении 420 на рабочем столе стокового лаунчера помещается пять иконок в ряд вместо четырех:

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

Мягкая перезагрузка:

Перевод смартфона в режим энергосбережения Doze (Android M+):

. повторяем действия, пока не увидим idle.

Батарейка в процентах (Android 4.4+):

Снятие логов

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

Вывод команды adb logcat -b events

Вывод команды adb logcat -b events

Продвинутый уровень

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

Чтобы база читалась, необходимо выгрузить браузер из работающих приложений. Прервать выполнение скрипта sqlite можно, нажав Ctrl + Z, а выйти — командой .quit. Если в ответ на команду ты получишь ошибку /system/bin/sh: sqlite3: not found, значит, на смартфоне нет sqlite3 и ее придется скачать, закинуть в /system/bin и дать файлу все права. Я использую sqlite3, который вытащил когда-то из Titanium Backup.

История браузера Chrome

История браузера Chrome

Также с помощью sqlite3 можно выдернуть все контакты с телефона. Для этого в консоли на компе должен использоваться шрифт Lucida Console и перед началом выполнения команд необходимо перевести кодировку на UTF-8. Иначе вместо русских букв будут отображаться непонятные символы. Сами команды выглядят так:

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

Вывод контактов из базы contacts2.db

Вывод контактов из базы contacts2.db

Можно вывести данные не на экран, а сразу в текстовый файл. Для этого команды нужно изменить:

Альтернативный способ вывода контактов в файл — команда, требующая установленного BusyBox:

Снятие графического ключа, PIN, facelock

Допустим, ты забыл PIN или не совсем трезвым поставил графический ключ, ну или друзья пошутили и поставили распознавание по лицу. Так вот, если устройство по какой-то причине заблокировано, то блокировку можно снять (при условии включенной отладки по USB) через ту же консоль:

Команда удалит все пароли и графические ключи. Сами файлы в зависимости от прошивки и модели устройства могут быть: gesture.key, password.key, cm_gesture.key, personalpattern.key, personalbackuppin.key. Также за блокировку отвечают файлы locksettings.db, locksettings.db-shm, locksettings.db-wal.

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

Выводы

Как видишь, с помощью ADB можно сделать много интересного. И чем больше пользуешься консолью, тем быстрее можно выполнить некоторые действия без установки дополнительного софта на устройство. Надеюсь, данная статья помогла разобраться с ADB и подтолкнула к чтению документации и поиску новых полезных команд.

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

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

Установка ADB в Linux

Программа 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 команды для android.

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

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


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

adb -s 0123456789ABCDEF logcat

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

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

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

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


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


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

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


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

adb logcat com android.settings

adb logcat com android.settings:E

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


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

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

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


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

Загрузка файла с устройства

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

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

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

adb pull /sdcard/file

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

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


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

Еще доступны опции -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. Мы подробно рассматривали все доступные команды в статье команды Android Terminal Emulator. Сейчас же поговорим про саму команду shell и приведем несколько примеров. Чтобы войти в консоль наберите:


Дальше откроется командная строка adb на Android. Если вам не нужна консоль, а нужно только выполнить команду и вернуть результат, то вы можете передать команду сразу после shell:

adb shell ls /system


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

adb shell screencap -p /sdcard/screenshot.jpg

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

adb shell screenrecord /sdcard/video.mp4

Выводы

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

Читайте также: