Adb devices list of devices attached linux
Небольшой мануал для тех, кто хочет подготовить свою linux-машину для работы с ADB. Почему небольшой? Потому что настройка будет намного более простой, чем в Windows. Не нужно скачивать дополнительные драйвера, все что Вам потребуется это компьютер и устройство, подключенное по USB к компьютеру. Подробности под катом.
Для начала необходимо активировать отладку по USB в режиме разработчика на Вашем android-устройстве. Делается это через настройки. Как правило пункт меню находится в разделе System, если его нет – значит он скрыт.
Смотрите как активировать его для вашего устройства, но как правило необходимо несколько раз тапнуть по названию прошивки устройства в свойствах, пока режим разработчика не станет доступен.
После чего заходим в него и активируем отладку по USB. На этом настройка устройства закончилась.
Открываем терминал, заходим из под root. Далее необходимо установить ADB на компьютер. Делается это следующими командами:
ADB установлен в систему. Теперь необходимо разрешить пользователю системы работать с устройством. Для этого необходимо настроить udev. Разделение устройств происходит по параметру VID (Vendor ID). Они имеются у каждого устройства, подключенного по USB. Чтобы их узнать, запустите в терминале lsusb, затем подключите устройство к компьютеру и запустите lsusb снова.
Найдите отличия между выводом – это и будет ваше android-устройство. Значение ID x:y где x – VID. Параметры указаны в шестнадцатеричной системе счисления. Запоминаем это значение. По нему и будет даваться доступ к устройству для пользователя. Запускаем текстовый редактор из консоли с созданием нового файла:
Вместо gedit подставьте свой текстовый редактор. Добавляем строчку:
Вместо vid подставляем свое значение, вместо username – имя текущего пользователя (под которым создана сессия). Сохраняем файл, закрываем редактор. Перезапускаем сервис udev
При подключенном устройстве запускаем команду adb devices. Если настройка правильная, Вы увидите список доступных устройств:
Если в списке устройств ничего нет, проверьте внимательно каждый шаг настройки. Возможно откючена отладка по USB на устройстве (при подключении ADB к устройству необходимо на самом устройстве разрешить подключения для этого компьютера).
“List of devices attached” is empty on Ubuntu 16.04 using “adb devices”
I am unable connect my Android to Ubuntu.
On executing command lsusb . It shows attached device.
And I have created rule using this command.
And after running adb devices . It is not showing any attached device.
I have also reinstalled adb tools. Even though it is not working.
4 Answers 4
First, try unplug then plug the device. Then check the the message log using dmesg instead lsusb, because it gives you more information about the idVendor and idProduct. Use the following command to show the last 10 message log:
Now, you can ge the idVendor and idProduct. It will be something like this:
add the following line to your /etc/udev/rules.d/51-android.rules (Beware, you need to change idVendor , idProduct and username to yours):
You also can use the 51-android.rules file from android-udev-rules.
Here I’m copying the step for Ubuntu from its documentation:
Adb devices list of devices attached linux
Команду 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
Команды 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, поэтому нет смысла их разбирать еще раз. Надеюсь, информация из этой статьи была вам полезной.