Установка apk через adb
Установка apk через adb
Команду logcat можно использовать с машины разработки
$ adb logcat
или из удаленного shell
# logcat Каждое сообщение лога в Android имеет тэг и приоритет
Тэг – это строка указывающая компонент системы, от которого принято сообщение (например: View для системы view)
Приоритет – имеет одно из нижеследующих значений (в порядке от меньшего к большему):
V – Verbose (Низший приоритет).
D – Debug
I – Info
W – Warning
E – Error
F – Fatal
S – Silent (Наивысший приоритет, при котором ничего не выводится).
Получить список тэгов, используемых в системе, вместе с их приоритетами можно запустив logcat. В первых двух столбцах каждого из выведенных сообщений будут указаны / .
Пример выводимого logcat сообщения:
I/ActivityManager( 585): Starting activity: Intent
Для уменьшения вывода лога до приемлемого уровня нужно использовать выражения фильтра. Выражения фильтра позволяют указать системе нужные комбинации и , остальные сообщения система не выводит.
Выражения фильтра имеют следующий формат : . где указывает нужный тэг, указывает минимальный уровень приоритета для выбранного тэга. Сообщения с выбранным тэгом и приоритетом на уровне или выше указанного записываются в лог. Можно использовать любое количество пар : в одном выражении фильтра. Для разделения пар : используется пробел.
Пример ниже выводит в лог все сообщения с тэгом “ActivityManager” с приоритетом “Info” или выше, и сообщения с тэгом “MyApp” и приоритетом “Debug” или выше:
adb logcat ActivityManager:I MyApp:D *:S
Последний элемент в выражении фильтра *:S устанавливает приоритет “silent” для всех остальных тэгов, тем самым обеспечивая вывод сообщений только для “View” и “MyApp”. Использование *:S – это отличный способ для вывода в лог только явно указанных фильтров (т.е. в выражении фильтра указывается “белый список” сообщений, а *:S отправляет все остальное в “черный список”).
При помощи следующего выражения фильтра отображаются все сообщения с приоритетом “warning” или выше для всех тэгов:
adb logcat *:W
Если 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.
Контроль формата вывода лога
Сообщения лога в дополнение к тэгу и приоритету содержат несколько полей метаданных. Можно изменять формат вывода сообщений показывая только конкретные поля метаданных. Для этого используется параметр -v и указывается один из ниже перечисленных форматов вывода.
brief Показывать приоритет/тэг и PID процесса (формат по умолчанию).
process Показывать только PID.
tag Показывать только приоритет/тэг.
thread Показывать только процесс:поток и приоритет/тэг.
raw Показать необработанное сообщение, без полей метаданных.
time Показывать дату, время вызова, приоритет/тэг и PID процесса.
long Показывать все поля метаданных и отдельно сообщения с пустыми строками.
При запуске logcat можно указать формат вывода используя параметр -v:
adb logcat [-v
Установка apk через adb
Многие из нас уже знакомы с 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, поэтому если всё пройдет успешно, вы получите на экране такую картинку:
Как установить ADB driver (Android Debug Bridge Utility)
ADB (Android Debug Bridge Utility) это командная строка включенная в Android SDK. ADB позволяет управлять Вашим устройством через USB, копировать файлы, устанавливать и удалять приложения и многое другое. ADB позволяет использовать некоторые хитрости Android.
Шаг 1: установка Android SDK
Перейдите на страницу загрузки Android SDK и прокрутите страницу вниз до “SDK Tools Only”. Загрузите ZIP файл для вашей ОС и распакуйте архив.
Запустите exe файл SDK Manager и снимите галочки со всех пунктов, кроме “Android SDK Platform-tools”. Если вы используете смартфон Nexus, то вы также можете установить галочку на пункте “Google USB Driver”, чтобы загрузить драйвера. Нажмите на кнопку установки. Произойдет загрузка и установка компонентов, в том числе ADB и другие утилиты.
Когда установка будет завершено можете закрыть SDK manager.
Внимание! В данный момент установка происходит следующим образом:
Перейдите на страницу загрузки Android Studio, пролистайте вниз до раздела «Get just the command line tools» и скачайте архив для соответствующей версии ОС (в нашем случае это Windows).
Разархивируйте скачанный архив, например, в корень диска C.
Взаимодействие с SDK Manager осуществляется через командную строку. Здесь Вы можете узнать все команды, но мы остановимся на главных. Чтобы запустить SDK Manager зайдите в папку, куда Вы распаковали содержимое архива > tools > bin и удерживая клавишу Shift нажмите правую кнопку мыши на свободном участке и выберите «Открыть окно команд», если Вы используете версию, отличную от Windows 10. Или запустите командную строку и укажите рабочую директорию. В моем случае это:
Введите команду sdkmanager и нажмите Enter, чтобы увидеть все доступные параметры. Но нас интересует следующая команда:
Это команда установит platform tools (включая adb и fastboot) и инструменты SDK для API 26, что соответствует Android версии 8.x. Полный список версий Android и соответствующих ему API описан ниже:
- Android 1.0 — API 1
- Android 1.1 — API 2
- Android 1.5 — API 3
- Android 1.6 — API 4
- Android 2.0 / 2.1 — API 5, 6, 7
- Android 2.2 — API 8
- Android 2.3 — API 9, 10
- Android 3.0 / 3.1 / 3.2 — API 11, 12, 13
- Android 4.0 — API 14, 15
- Android 4.1 / 4.2 / 4.3 — API 16, 17, 18
- Android 4.4 — API 19,20
- Android 5.0 / 5.1 — API 21, 22
- Android 6.0 — API 23
- Android 7.0 / 7.1 — API 24, 25
- Android 8.0 / 8.1 — API 26
Т.к. у меня устройство с Android 7.0, то моя команда будет выглядеть так:
Также Вы можете проделать этот шаг через графический интерфейс Android Studio. Для этого перейдите на страницу загрузки, скачайте, установите и запустите Android Studio.
Нажмите «Configure» и «SDK Manager».
Проверьте, чтобы стояла галочка напротив пункта «Android SDK Platform-tools» и «Google USB Drive», если Вы используете устройство Nexus. Нажмите «OK», чтобы закрыть SDK Manager, также закройте Android Studio.
Шаг 2: Включение USB Debugging
Зайдите в настройки телефона и выберите «О телефоне». Пролистайте вниз до пункта «Номер сборки» и 7 раз нажмите на этот пункт. Должно появится сообщение, что Вы вошли в режиме разработчика.
Вернитесь на главную страницу настроек, у Вас должен появится новый пункт “Для разработчиков”. Включите “Отладка по USB”. Введите пароль или PIN-код, если необходимо.
Как только это сделаете, соедините свой телефон с компьютером. У вас появится окно на телефоне с вопросом «Включить отладку по USB?». Поставьте галочку в поле «Всегда разрешать для этого компьютера» и нажмите OK.
Шаг3: Тестирование ADB и установка драйверов для Вашего смартфона
Откройте папку, где установлен SDK и там откройте папку platform-tools. Здесь хранится ADB программа. Удерживайте клавишу Shift и щелкните правой кнопкой мыши внутри папки. Выберите пункт «Открыть окно команд».
Чтобы проверить, правильно ли работает ADB, подключите устройство Android к компьютеру с помощью кабеля USB и выполните следующую команду:
Вы должны увидеть устройство в списке. Если устройство подключено к компьютеру, но оно не отображается в списке, то необходимо установить ADB driver для Вашего устройства. На сайте производителя Вашего устройства должны быть соответствующие файлы. Например для устройств Motorola их можно скачать здесь, для Samsung здесь, для HTC драйвера входят в программу HTC Sync Manager. Вы также можете найти необходимые файлы на сайте XDA Developers без дополнительных программ.
Вы также можете установить Google USB Driver из папки Extras в окне SDK Manager, как мы упоминали в первом шаге.
Если вы используете Google USB driver, то придется заставить Windows использовать установленные драйверы для вашего устройства. Откройте Диспетчер устройств (правой кнопкой мыши на ярлыке Мой компьютер и выбрать Свойства — Диспетчер устройств), найдите в списке свое устройство. Нажмите правой кнопкой на нем и выберите Свойства. Перейдите на вкладку Драйвер и нажмите кнопку Обновить. Выберите «Выполнить поиск драйверов на этом компьютере».
Найдите Google USB Driver в папке Extras с установленным SDK, и выберите папку googleusb_driver и нажмите Далее. Как только драйвера установятся, пробуйте еще раз выполнить команду adb devices . Если все сделано правильно и драйверы подходят, то Вы увидите свое устройство в списке. Поздравляем, Вы смогли установить ADB driver.
Полезные ADB команды
ADB предлагает некоторые полезные команды:
— Установить приложение на телефон, находящееся по пути C:package.apk на компьютере;
— Удалить приложение с именем package.name с устройства. Например, команда com.rovio.angrybirds удалит игру Angry Birds;
— Помещает файл с компьютера на устройство. Данная команда отправит файл C:file на компьютере на устройство по пути /sdcard/file<.
— Работает как предыдущая команда, но в обратном направлении.
Консольный Android: 50 команд ADB, о которых должен знать каждый
Содержание статьи
Существует множество инструментов для работы с подключенным с помощью USB-кабеля или Wi-Fi смартфоном. Особо развитые инструменты позволяют перемещать файлы, устанавливать и удалять софт, просматривать контакты, делать скриншоты экрана и даже отправлять СМС, однако ни один графический инструмент не сравнится с мощью, которую может дать консоль Android. В этой статье мы поговорим об ADB (Android Debug Bridge) — стандартном инструменте для отладки и работы с консолью Android с компа.
Основы работы с ADB
Для начала работы с ADB его следует активировать на устройстве и установить утилиту adb и драйверы на комп. Первая задача выполняется с помощью включения «Отладки по USB» в пункте настроек «Для разработчиков» (если этот пункт скрыт, нажми семь раз на номер сборки в меню «О телефоне»).
Для установки ADB на комп качаем Adb Kit и распаковываем в любую папку (рекомендую использовать названия папок без русских символов). Также скачиваем и устанавливаем драйверы ADB.
Работать с adb нужно из командной строки. Нажимаем Win + R и вводим cmd, далее переходим в папку, в которой лежит adb. Для моей папки команда будет следующей:
Чтобы не проделывать все эти манипуляции каждый раз, можно добавить нужную папку в переменную Path. Для этого необходимо зайти в «Панель управления -> Система -> Дополнительные параметры системы -> Переменные среды», найти переменную Path и добавить в конец строки, через точку с запятой, путь до папки с adb. Теперь после запуска консоли можно сразу вводить необходимые команды.
Добавление 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:
Это нужно делать, если в ответ на какую-либо команду ты видишь строку, похожую на «access denied» или «are you root?». В случае успеха знак $ сменится на #.
Вывод свободного пространства на устройстве командой adb shell df
Пример работы команды ls для вывода информации о разделах
Создание скриншота
Выполняется одной строчкой:
После этого картинку нужно выдернуть из устройства командой adb pull:
В recovery скриншот можно сделать следующей командой:
Затем необходимо преобразовать файл fb0 в нормальное изображение с помощью FFmpeg, который нужно скачать и положить в папку с adb. Расширение необходимо ставить своего устройства:
Запись видео, происходящего на экране устройства
Данная команда начнет записывать видео с разрешением 1280 x 720 (если не указать, то будет использовано нативное разрешение экрана устройства), с битрейтом 6 Мбит/с, длиной 20 с (если не указать, то будет выставлено максимальное значение 180 с), с показом логов в консоли. Записанное видео будет находиться в /sdcard (файл video.mp4).
Управление приложениями
Для управления приложениями используются две команды: pm (package manager) — менеджер пакетов и am (activity manager) — менеджер активностей. У данных команд есть немало ключей, которые можно посмотреть на портале разработчиков. Остановимся на некоторых.
Для начала получим список установленных на устройстве приложений в виде названий пакетов, которые пригодятся позже:
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score! Подробнее
Массовая установка APK файлов в Android смартфон, Linux ADB и Python
Приводится простой скрипт на Python, который позволяет выполнить автоматическую установку большого количества необходимых пакетов в Android-смартфон. Пакеты могут быть разбросаны или же рассортированы по разным папкам, для установки нужно всего лишь указать в скрипте имена файлов (*.apk) и директории в которых производить поиск.
В статье расскажу вам о каталоге приложений F-Droid, ADB и других полезностях, а также приведу полный код скрипта на Питоне, который можно запускать на Linux (можно попробовать адаптировать и под Windows).
Многие, кто пользуется смартфоном на Android, знают насколько затратной по времени бывает установка необходимого набора программ после выполненного сброса устройства к заводским настройкам.
Для облегчения подобной задачи был написан простой в настройке и использовании скрипт на Python, который использует ADB и позволяет в автоматическом режиме выполнить установку определенного списка программ, которые сохранены на диске в виде APK-файлов (Android PacKage).
Репозиторий F-Droid
Как правило Google PlayMarket и подобные платформы распространения пакетов не позволяют сохранять установщики программ на диск, тем самым жестко привязывая пользователей к своим сервисам, навязывая себя и заставляя регистрироваться и предоставлять информацию о себе и своем устройстве.
Существует проект под названием F-Droid (Free Android Software) – это репозиторий со свободным программным обеспечением под Android, программы с открытыми исходными кодами (Open Source Software).
Рис. 1. Логотип проекта F-Droid (копилефт инсайд).
На момент написания статьи в репозитории насчитывается более 1800 пакетов, рассортированных по категориям и с удобным поиском.
Для использования F-Droid не обязательно регистрироваться, программы можно загружать и устанавливать:
- при помощи установленного приложения-каталога F-Droid (на подобии пакета PlayMarket);
- прямо с сайта;
- из ранее скачанных с сайта APK-пакетов.
Конечно же можно использовать и другие сайты для получения APK-файлов, но прежде чем доверить доступ таким источникам к своему смартфону следует хорошенько задуматься, здесь уже действуйте на свой страх и риск.
Что такое Android Debug Bridge, установка
Android Debug Bridge (ADB) – шина отладки для Android, гибкая консольная утилита, которая позволяет взаимодействовать с эмулятором или подключенным физическим Android устройством.
Рис. 2. Android Debug Bridge (ADB).
При помощи данной утилиты можно выполнять самые разные задачи:
- Установка и удаление пакетов программ;
- Копирование файлов с устройства и на устройство;
- Проброс сетевых портов (TCP);
- Получение доступа к консоли устройства (VirtualTerminal);
- Выполнение shell-команд на устройстве для самых разных задач;
- Прошивка устройства;
- Очищение раздела /data;
- Просмотр логов и другой полезной информации;
- Перезагрузка устройства;
- и другие.
Полную документацию по утилите можно почитать на страничке для разработчиков Android.
Итак, в руках у нас есть очень мощный инструмент, при помощи которого можно выполнить автоматизацию и настройку Android-устройства, производить правки файловой системы и переконфигурацию сервисов.
Для установки утилиты “adb” под GNU Debian Linux, Ubuntu, Mint нужно выполнить команду:
Прежде чем использовать утилиту необходимо включить на устройстве режим USB-отладки (USB debugging) в меню настроек (system settings) – установки для разработчиков (Developer options).
Если вы используете на своем устройстве прошивку “Cyanogen Mod” или другую с версией Android 4.2 и выше то пункт меню “Developer options” по умолчанию скрыт. Для его разблокировки необходимо выполнить следующее: идем в настройки (Settings) – О телефоне (About phone) – делаем 7 нажатий на строке которая содержит “Build number”.
Теперь можно подключить ваше Android-устройство к компьютеру и начать пользоваться ADB, к примеру давайте посмотрим увидит ли ADB наш телефон (выводим список подключенных устройств):
на экран будет выведен список серийных номеров для подключенных устройств, к примеру (смартфон Samsung):
Если же ваше устройство не определяется, то возможно что необходимо добавить правила для доступа к USB в Linux. В данном случае определим производителя нашего устройства (VendorID), выполним команду:
В полученном списке устройств находим наше Android-устройство:
В примере подключено Android-устройство от Google (Гуглофон Nexus), VendorID=18d1, ProductID=4e26.
Отключаем наше устройство от компьютера и создадим файл с правилом для USB-подсистемы:
Поместим в этот файл вот такие строчки:
Здесь: 18d1 и 4e26 – коды производителя и устройства, которые мы получили раньше, username – имя пользователя под которым вы работаете в Linux (измените на свое). Режим файла-устройства “0664” дает пользователю(владельцу) username доступ на чтение и запись, группе доступ на чтение и запись, а остальным – только чтение.
Выходим из редактора и сохраняем файл. Теперь чтобы задействовать новый файл с правилом для подсистемы USB сделаем его доступным на чтение для всех пользователей и выполним перезагрузку правил UDEV (менеджер устройств ядра Линукс):
Теперь подключаем Android-устройств по USB и пробуем снова команду “adb devices”, устройство должно определиться.
Примеры работы с Android Debug Bridge
Теперь, когда наше подключенное по USB Android-устройство определяется при помощи утилиты ADB можно выполнять различные команды.
Работа с пакетами
Приведенная выше команда выполнит выгрузку и установку на подключенное устройство пакета из папки /home/user/ под названием my_game.apk.
Выполнит то же самое, только если пакет уже установлен в устройстве то будет выполнена его переустановка.
А теперь получим список имен установленных пакетов:
Зная имя пакета можно выполнить его удаление:
Данная команда удалит пакет Cool Reader (удобная читалка для книг).
Передача файлов
Загрузка файла cool_concert.mkv с компьютера на устройство:
Загрузка файла foto1.jpg с устройства (из папки /sdcard/temp/) на компьютер:
Отладочная информация
В файл bug_report.txt будет собрано огромное количество статистической и отладочной информации (несколько МБ) о системе, железе, процессах, ядре, пакетах, различные логи и еще много всего. Информация будет полезна разработчику и тем кто интересуется внутренним миром своего смартфона.
Консоль
Теперь давайте поработаем с консолью. Важно заметить что для работы в ОС Android большинства Unix-подобных консольных команд должен быть установлен пакет инструментов BusyBox, который является швейцарским армейским ножем для встроенных систем, содержит в едином бинарном файле большое количество UNIX-утилит по типу “bunzip”, “top”, “cat”, “mkdir” и т.п.
Данная команда откроет нам интерактивный удаленный терминал (Shell) на подключенном Android-устройстве. Здесь можно выполнять разные команды из мира Linux, запускать программы, работать с файлами и директориями и т.п. Например для просмотра заполненности файловых систем можно набрать в удаленном терминале “df”.
Рис. 3. Команда htop запущенная через ADB на Android устройстве при помощи удаленного терминала.
Если же нам нужно просто выполнить команду на устройстве без интерактивного режима то воспользуемся похожей командой:
На устройстве будет выполнена команда “df” и ее вывод отобразится у нас в консоли.
Резервное копирование программ и настроек
Для создания резервной копии следует выполнить команду:
Полная резервная копия программ и настроек будет сохранена на компьютере в файл android_backup.bak. Для последующего восстановления из резервной копии необходимо выполнить команду:
Это очень полезная команда, которая позволит вам не тратить время на настройки и установку программ после сброса телефона к заводским настройкам.
Управление устройством
Перезагрузка устройства в режим восстановления (Recovery):
Перезагрузка устройства в в меню загрузчика (Bootloader):
Это далеко не все полезные команды из арсенала ADB, не стоит забывать что при помощи данной утилиты нам в руки попадает такой мощный инструмент на подключенном устройстве как консоль (Shell). В консоли вообще можно творить как чудеса. так и по неаккуратности убить операционную систему, так что будьте внимательны и осведомлены в том какие команды выполняете!
Скрипт автоматической установки APK пакетов
Данный скрипт будет полезен как для установки программ на одиночный телефон или Android-устройство, так и для установки набора программ на несколько телефонов.
Алгоритм работы скрипта:
- Проверяем установлен ли ADB, выводим версию установленной утилиты;
- Определяем подключено ли Android-устройство, выводим его серийный номер;
- Рекурсивно собираем из указанных директорий с пакетами пути и имена всех файлов *.apk;
- Выводим количество пакетов для установки, запрашиваем подтверждение на установку;
- Установка всех указанных пакетов, выполняя их поиск в дереве каталогов по имени файла;
- Выводим статистику и напоминание о необходимости отключения USB ADB в Android для безопасности.
Для примера, пусть пакеты у нас содержатся в двух директориях на разных разделах жесткого диска, структура:
Файлы пакетов могут размещаться где-угодно в дереве каталогов, скрипт будет искать их по имени. Нам нужно лишь указать корневые директории и список файлов для поиска.
Исходный код скрипта:
В массиве (словаре) packages_to_install мы указываем список пакетов для установки, а именно в формате ” ‘Название_программы’: ‘имя_файла_пакета.apk’, “.
В массиве (кортеже) archives_dirs нужно указать корневые директории в которых будет рекурсивно производиться поиск указанных файлов-пакетов (apk). Это могут быть как отдельные директории на диске, так и точка монтирования (диск, подмонтированная флешка и т.п.) целиком.
В переменной adb_bin_path содержится путь к исполняемому файлу утилиты ADB. Узнать где у вас в Linux системе располагается данный файл можно при помощи команды:
Содержимое скрипта сохраняем в файле под любым удобным именем, например “android_apk_installer.py”, даем файлу права на исполнение и запускаем:
По завершению работы скрипт выведет статистику, в которой будет указано сколько пакетов установлено, а в которых возможно имеются ошибки (или же просто файлы не найдены), затраченное время на установку и суммарный размер всех установленных пакетов.
Пример вывода скрипта с установкой двух пакетов на смартфон от Samsung приведен ниже:
Таким образом указав директории в которых искать пакеты и имена файлов для установки мы можем многократно выполнить установку необходимого нам программного обеспечения на устройства под управлением Android OS.
Данный скрипт можно без больших усилий переделать для выполнения под другими ОС, например под Windows или Mac OS X.
По завершению работы с ADB настоятельно рекомендую отключить в настройках режим USB-отладки, поскольку это может нести опасность для вашего телефона в случае его, пусть даже временного, попадания “не в те руки и не в то время”.
При помощи кратковременного подключения к вашему телефону по USB ADB вам за считанные секунды могут установить стороннее шпионское и вредоносное ПО, так что лучше перекрыть такую возможность, безопасности много не бывает!
Заключение
Данная статья – это краткая экскурсия в мир возможностей отладки и программирования для Android-устройств при помощи невероятно мощной утилитки ADB.
Приведенный скрипт очень простой и может быть укорочен буквально до 20 строчек кода, сохраняя при этом основной функционал – установку apk-файлов по ADB.
Теперь, зная принципы работы с Android Debug Bridge можно написать и другие полезные скрипты для автоматизации на любом удобном языке: C, Perl, Python, Shell, PHP, Ruby и других.
Команды adb для Android пользователей
Если у вас есть смартфон с операционной системой 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:
Утилита выводит содержимое логов Android в реальном времени, так что вы сразу увидите все сообщения об ошибках. Также можно записать все в файл:
С помощью опции -c можно очистить все логи на устройстве:
Не всегда нужно смотреть полный системный лог, иногда будет достаточно только увидеть сообщения нужной программы.. Для этого просто укажите имя пакета:
adb logcat com android.settings
С помощью опции –log-level можно установить уровень подробности сообщений, доступны такие варианты: V, D, I, W, E, F, S. Для выбора подробности вывода укажите нужную букву через двоеточие после имени приложения:
adb logcat com android.settings:E
Или выведем только ошибки для всей системы целиком:
Передача файлов на устройство
Если вам нужно быстро отправить файл на устройство, для этого можно использовать команду push. Вот ее синтаксис:
$ 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.png
А так можно снять экран смартфона на видео:
adb shell screenrecord /sdcard/video.mp4
Выводы
В этой статье мы рассмотрели как пользоваться утилитой adb для управления Android смартфоном, а также основные команды программы adb, которые вы можете применять. Команды adb shell – это те же команды, что вы можете выполнять в терминале Android, поэтому нет смысла их разбирать еще раз. Надеюсь, информация из этой статьи была вам полезной.