Лучшие команды adb fastboot для android, windows, mac и linux

Старт ADB через командную строку или PowerShell

Когда все компоненты установлены, необходимо подключить свое устройство к компьютеру или ноутбуку и вызвать командную строку от имени администратора. Первым делом в ней необходимо перейти к папке с инструментами платформы, о которой говорилось выше. Например, вы установили весь пакет в каталог Android на диск «D» (вообще, глубоко прятать нужные папки не стоит, поскольку придется очень долго вводить абсолютные пути к ним). В консоли необходимо вписать команду перехода cd d:\Android\platform-tools, после чего следует нажать клавишу ввода.

Теперь вписываете искомую команду adb devices и ожидаете реакцию системы на подключенное устройство. Если связь будет установлена, на экране появится строка List of devices attached с указанием серийного номера подключенного устройства и статусом его состояния (online или offline). Консоль работает в режиме клиент-сервер, при котором в процессе обмена данными и создается виртуальный сервер (demon), поэтому не пугайтесь, если где-то и когда-то встретите такое упоминание. Это не вирус!

Также установить и запустить консоль с начальной командой adb devices можно при помощи инструмента PowerShell. Для этого достаточно зайти в папку platform-tools, а в меню ПКМ выбрать «Запустить PowerShell здесь». Но просто так среда функционировать не начнет (будет сообщено о том, что выполнение таких команд не предусмотрено), поэтому для ее активации именно в PowerShell впишите строку sdkmanager platform-tools, поставив перед основной командой атрибут «./» (без кавычек).

Установка

И так, перейдем, собственно, к установке. Для этого нам понадобится:

  • Устройство на базе процессора ARM или ARM64;
  • Подключение к интернету;
  • До 5 минут свободного времени;

Ну а теперь, сам процесс установки:

  1. Установите на свой девайс приложение Termux. Это бесплатное приложение, его можно загрузить с Google Play.

    Termux
    Developer: Fredrik Fornwall

    Price: Free

  2. Запустите Termux и дождитесь окончания настройки рабочего окружения. Обычно этот процесс длится не более 30 секунд.
  3. Далее, существует два режима установки — обычный и тихий. При установке в обычном режиме на экран будет выводиться дополнительная информация о статусе загрузки необходимых файлов, в то время как в тихом режиме будет выведено минимум информации и все будет выглядеть минималистично и красиво. Рекомендуется тихий режим установки.

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

Если же вы хотите выполнить установку в тихом режиме, необходимо выполнить следующую команду:


обычная установка слева, «тихая» справа

Независимо от режима установки, длительность процесса не должна превышать 2-3 минуты.

Использование пакета ADB Run

А вот многим начинающим пользователям, которые не разбираются в тонкостях применения такого инструментария, можно посоветовать воспользоваться неофициальным набором ADB Run. После распаковки архива, программу нужно установить, после чего среду можно будет запустить прямо с «Рабочего стола».

Она несколько отличается от того, что можно увидеть в командной строке, зато пользователю не нужно вписывать команды самостоятельно, а достаточно просто вбить цифру, соответствующую той или иной операции, и нажать клавишу ввода. Попутно из загруженного комплекта, если это требуется, можно установить специальный ADB-драйвер, а также воспользоваться дополнительной портативной утилитой ApkInstaller, если планируется инсталлировать приложения с компьютера на мобильный девайс.

Управление мобильным девайсом в режиме Fastboot

В режиме Fastboot, обычно запускаемым путем длинного нажатия и удержания кнопок питания и уменьшения громкости, на команды adb devices Android не реагирует. Это и понятно, ведь операционная система еще не загружена.

Если хотите, этот режим представляет что-то очень отдаленно напоминающее BIOS на компьютере и служит в основном для создания бэкапов или восстановления работоспособности девайса, если система не загружается вообще. Также в этом режиме можно устанавливать кастомные прошивки, менять среду восстановления Recovery и т. д. Применяемые команды очень похожи на те, что использовались в ADB, но с той разницей, что сначала вписывается не сокращение adb, а указывается режим fastboot (например, для распознавания девайса применяется строка fastboot devices). Кроме того, именно в таком режиме можно разблокировать загрузчик, если другим средствам это не под силу (fastboot oem unlock).

Установка среды ADB и Fastboot в комплекте с Android SDK

Пакеты ADB и Fastboot желательно устанавливать в паре. Это необходимо по той причине, что при загрузке устройства в режиме Fastboot команда adb devices с сопутствующими атрибутами работать не будет (устройство ее просто не воспримет), а вот аналогичные команды Fastboot, предназначенные именно для этого режима, справляются с возложенными на них обязанностями очень даже неплохо.

Установить ADB можно несколькими методами, среди которых наиболее громоздким, но очень часто рекомендуемым считается инсталляция пакета Android SDK (не путать с более обширным пакетом Android Studio), установочный дистрибутив которого можно скачать непосредственно на официальном сайте разработчика. Устанавливать только SDK рекомендуется по причине того, что целая студия, если только вы не занимаетесь разработкой приложений под Android, вам не нужна. Да и места на жестком диске она занимает порядочно. Если скачивается только SDK, также необходимо установить Java-пакет JDK, который тоже можно загрузить с официального сайта, выбрав свою операционную систему и нужную архитектуру.

После установки пакета с нужной разрядностью, запускаете SDK (исполняемый файл с именем Android), а в окне появившегося менеджера отмечаете пункты дополнительной установки Android SDK Platform Tools и Google USB Driver, после чего нажимаете кнопку установки пакетов.

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

ADB LogCat

Logcat — инструмент для работы с логами Android.

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

или через shell

Для остановки сбора логов нажмите Ctrl+C на клавиатуре (Command + C на Mac).

Чтобы вывести лог на экран и выйти из logcat используйте параметр -d.

В записях лога в Android указан приоритет:

  • V — verbose (низший приоритет);
  • D — debug;
  • I — info;
  • W — warning;
  • E — error;
  • F — fatal;
  • S — silent (наивысший приоритет, ничего не выводится).

Фильтровать сообщения по приоритету можно следующим образом.

Кроме приоритета у записей указан тэг компонента системы, от которого принято сообщение.

В дополнение к тэгу и приоритету в логе так же содержатся поля с метаданными. Формат можно изменять с помощью параметра -v, за которым следует один из нижеперечисленных форматов вывода:

  • brief — показывать приоритет, тэг и PID процесса (формат по умолчанию);
  • process — показывать только PID;
  • tag — показывать только приоритет, тэг;
  • thread — показывать только процесс, поток и приоритет, тэг;
  • raw — показать необработанное сообщение, без полей метаданных;
  • time — показывать дату, время вызова, приоритет, тэг и PID процесса;
  • long — показывать все поля метаданных и отдельно сообщения с пустыми строками.

Список параметров команды logcat:

-d вывести лог на экран и выйти;-b загрузить альтернативный буфер лога для просмотра, такой как event или radio;-c очистить лог и выйти;-f записать сообщения лога в файл. По умолчанию в stdout;-g вывести размер указанного буфера лога и выйти;-n установить максимальное количество ротаций лога;-s устанавливает silent фильтром по умолчанию;-v устанавливает формат вывода сообщений лога. По умолчанию brief.

С полным списком команд logcat можно ознакомиться на сайте .

Что такое ADB?

ADB представляет собой специальный пакет Android Debug Bridge, который является своеобразным мостом между компьютером и мобильным устройством в виде консольного приложения, работающего по типу командной строки, но использующего несколько другие команды.

Применение этой среды позволяет не только получить полный контроль над своим девайсом, но и устанавливать программы, производить отладку и разблокировку устройства, а также очень часто применяется на начальной стадии при получении root-прав, причем даже с установкой всевозможных сред восстановления вроде TWRP и CWM или контролирующего приложения SuperSU, что на «неразлоченном» девайсе сделать не получится никакими другими способами. Как уже можно было догадаться, команда adb devices для «Андроида» является основной, поскольку именно она позволяет установить связь между мобильным устройством и компьютером. Остальные команды строятся на ее основе. О них поговорим позже, а пока остановимся на некоторых нюансах установки и обязательных условиях для работы этой среды.

Установка ADB

На устройствах под управлением Windows, установите драйвер для вашего Android-устройства.

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

Для MacOS и Linux установка драйверов не требуется.

Далее потребуется установить Android SDK Platform Tools. Если вы используете , скорее всего SDK Platform Tools у вас уже установлен.

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

Скачайте и распакуйте папку platform-tools на диск (рекомендуется в С:\platform-tools).

В системную переменную Path добавьте путь к распакованной папке, для этого:

  • перейдите в Панель управления – Система и безопасность – Система;
  • выберите пункт Дополнительные параметры системы;
  • нажмите кнопку Переменные среды;
  • в поле Системные переменные выберите значение Path и нажмите кнопку Изменить, чтобы добавить новое значение;
  • укажите путь к папке platform-tools содержащую adb;
  • перезагрузите компьютер.

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

Чтобы установить SDK Platform Tools в Ubuntu выполните следующую команду.

или

Либо вручную скачать , распаковать на диск и добавить путь к распакованной папке с platform-tools в переменную среды $PATH.

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

Самый простой способ установить SDK Platform Tools на MacOS, используя Homebrew.

Либо установить вручную.

Сперва удалите предыдущую версию android-platform-tools, если такая имеется.

Затем скачайте .

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

Добавить путь к platform-tools в переменную среды $PATH.

Обновите bash профиль или перезапустите терминал.

Проверка ADB

Зайдите в консоль и введите следующую команду:

Если все сделали верно, в ответ в консоль будет выведена информация о версии ADB.

ADB Shell

Android полноценная система Unix со своим Shell, к которому можно подключаться по adb.

или

Команда подключит ваш терминал к shell устройства и вы сможете взаимодействовать с ним используя Unix команды, cat, ls, df и другие, а также запускать скрипты.

Чтобы выполнить одну команду, не переходя в shell используйте команду оболочки следующим образом.

Например,

Команда выше выдаст информацию о количестве свободной памяти на устройстве.

Следующая команда откроет на устройстве экран с настройками.

А две последующие через ADB включают и отключают соответственно прокси в настройках сети.

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

Debugger в Android Studio

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

Что такое Stacktrace

Stacktrace – это последовательность вызовов, которая привела до определенного момента в коде. Когда приложение крэшится, то, чтобы понять почему это произошло, зачастую, достаточно открыть Logcat и посмотреть stacktrace. В нем будет информация, что, где и почему упало.


В данном примере видно, что на 63 строке в классе SingleBankConnectedFragment произошел IllegalStateException.

StackTrace и Proguard

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

В Google play developer console например можно этот файл даже загрузить, чтобы расшифровка логов происходила автоматически.

Breakpoint

Breakpoint, или по-русски “Точка останова” – флаг, устанавливающийся на определенную строчку-инструкцию в программе. Она говорит, что в этом месте исполнение приложения надо поставить на паузу. После этого разработчик сможет посмотреть значения переменных в данный момент для поиска багов. Далее надо решить – пойти ли дальше по шагам, зайти ли внутрь очередной функции или просто возобновить исполнение.

Для того, чтобы установить Breakpoint достаточно нажать на область рядом с номером строки

Чтобы запустить программу в debug режиме, есть специальная кнопка в панели Android studio

Также можно подключиться к уже выполняющемуся процессу

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

Вычисление значений на лету

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

Также можно произвести любые вычисления в данном контексте

Подмена значений переменных на лету

Иногда полезно подменить значение переменной прямо на лету. Например, когда отображение в интерфейсе зависит от переменной. Тогда удобно, не перекомпилируя приложение или изменяя значения в базе данных, посмотреть как будет выглядеть UI при разных значениях. Это можно сделать прямо из окна мониторинга переменных

Условный Breakpoint

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

программа остановится, только если выполнится условие для данного Breakpoint.

Usage

Connect device

Tip:

  • For some devices, you may have to enable MTP on the device, before ADB will work. Some other devices require enable PTP mode to work.
  • Many devices’ udev rules are included in , so if you have this installed, the following steps may not be necessary.
  • Make sure your USB cable is capable of both charge and data. Many USB cables bundled with mobile devices do not include the USB data pin.

To connect to a real device or phone via ADB under Arch, you must:

  1. You might want to install if you wish to connect the device to the proper entries.
  2. plug in your android device via USB.
  3. Enable USB Debugging on your phone or device:
    • Jelly Bean (4.2) and newer: Go to Settings > About Phone tap Build Number 7 times until you get a popup that you have become a developer. Build number may be under a menu called Software info on newer Android OS versions. Then go to Settings > Developer > USB debugging and enable it. The device will ask to allow the computer with its fingerprint to connect. Allowing it permanently will copy onto the devices folder.
    • Older versions: This is usually done from Settings > Applications > Development > USB debugging. Reboot the phone after checking this option to make sure USB debugging is enabled.

If ( shows it as , or it is visible and accessible in IDE), you are done. Otherwise see the instructions below.

Figure out device IDs

Each Android device has a USB vendor/product ID. An example for HTC Evo is:

vendor id: 0bb4
product id: 0c8d

Plug in your device and execute:

$ lsusb

It should come up something like this:

Bus 002 Device 006: ID 0bb4:0c8d High Tech Computer Corp.

Adding udev rules

/etc/udev/rules.d/51-android.rules
SUBSYSTEM=="usb", ATTR{idVendor}=="", MODE="0660", GROUP="adbusers"
SUBSYSTEM=="usb",ATTR{idVendor}=="",ATTR{idProduct}=="",SYMLINK+="android_adb"
SUBSYSTEM=="usb",ATTR{idVendor}=="",ATTR{idProduct}=="",SYMLINK+="android_fastboot"

Then, to reload your new udev rules, execute:

# udevadm control --reload-rules

Make sure you are member of user group to access devices.

Detect the device

After you have setup the udev rules, unplug your device and replug it.

After running:

$ adb devices

you should see something like:

List of devices attached 
HT07VHL00676    device

If adb still does not detect the device after plugging your device back in, kill and restart the adb server as root and check devices again:

# adb kill-server
# adb start-server
$ adb devices

If adb devices still shows «unauthorized» next to your device, make sure that that device has debugging permission allowed on the device itself. A ‘Allow USB Debugging?’ dialog should be presented when you physically connect the device. Select ‘Always Allow…», then tap «OK». If the dialog was never presented, try Settings > Developer Options > Revoke USB Debugging Authorizations (then «OK»), and repeat the steps in this section.

Transferring files

You can now use adb to transfer files between the device and your computer. To transfer files to the device, use

$ adb push <what-to-copy> <where-to-place>

To transfer files from the device, use

$ adb pull <what-to-pull> <where-to-place>

Also see .

Backup and restore

You can also backup and restore your device with adb. Moreover, no root is required to follow the process. The commands below led to backup your device to a single file which can also be successively restored.

The command to create a backup is

$ adb backup -apk -shared -all -f backupFileName.ab

The command parameters list is

adb backup      

Then confirm the process on your device’s display and provide a password whether a backup password has been set before.

The command to restore a previous backup is

$ adb restore mybackup.ab

Note: Remember that restoring replaces your device contents with the backup.

Дополнительные драйверы и условия для использования ADB

Даже для первого использования команды adb devices и всех ее возможных комбинаций необходимо убедиться, что мобильном устройстве включен так называемый режим отладки по USB. Если он деактивирован или такого пункта вообще нет в меню девайса, сначала в настройках необходимо найти раздел «О телефоне» или «О планшете», тапунть по пункту 10-15 раз, после чего будет сообщено, что вы стали разработчиком.

Войдя в соответствующее меню «Для разработчиков» и можно включить необходимый режим.

Что касается драйверов, достаточно часто с программным обеспечением от Google можно наблюдать серьезные проблемы, поскольку драйвер может попросту не работать. В этом случае настоятельно рекомендуется инсталлировать ПО, максимально подходящее для вашей модели, загрузив его с интернет-ресурса производителя оборудования. Иногда помогает и установка универсальных драйверов. Например, в последнее время весьма широкое распространение получил универсальный драйвер от Intel, но его инсталлировать необходимо только в том случае, если ваш девайс работает на процессоре именно этого производителя.

Возможные ошибки и пути их исправления

Но некоторые пользователи достаточно часто жалуются, что описываемые инструменты не работают. Наиболее распространенной ошибкой считается сбой, при котором появляется сообщение вроде adb devices unauthorized. Как исправить ситуацию? Уведомление сообщает о том, что устройство не авторизировано, поэтому попробуйте переподключить девайс по USB. Если это не поможет, посмотрите на режим отладки по USB на самом устройстве. Если там отмечен пункт «Только зарядка», смените его на MTP (Media Transfer Protocol), что автоматически активирует возможность приема/передачи данных. Иногда возможной причиной ошибки может быть неподходящий драйвер, поэтому его следует либо переустановить, либо обновить. Но лучше поискать не какой-то универсальный драйвер, а установить ПО для конкретной модели мобильного устройства, скачав его с официального сайт производителя девайса.

Сетевой мониторинг

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

Okhttp

Okhttp – популярный HTTP клиент, который позволяет включить логирование сетевых запросов практически из коробки.

Добавляем в проект библиотеку logging-interceptor

implementation 'com.squareup.okhttp3:logging-interceptor:3.10.0'

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

HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
logging.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient.Builder builder = new OkHttpClient.Builder();
if (BuildConfig.DEBUG) {
  builder.addInterceptor(logging);
}
OkHttpClient client = builder.build();

Retrofit

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

builder.client(okHttpClient);

Fiddler, Charles и другие прокси

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

Команды ADB

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

В ответ adb выведет серийный номер, состояние и описание (параметр -l) подключенных устройств.

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

Если запущен только один эмулятор или подключено только одно устройство, команда adb отправится на это устройство по умолчанию. Если же запущено несколько эмуляторов и / или устройств, необходимо использовать параметры -d, -e или -s, чтобы указать устройство, на которое должна быть направлена команда.

Нижеприведенная команда отправится на устройство с указанным серийным номером.

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

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

Подсоединиться к андроид хосту по протоколу TCP/IP (по умолчанию порт 5555, если не указан другой).

Отсоединиться от андроид подключенного через TCP/IP (по умолчанию порт 5555). Если не задан ни один параметр, отключиться от всех активных соединений.

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

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

Остановить сервер.

Запустить сервер.

Копировать файл или папку на устройство.

Например,

Копировать файл или папку с устройства на компьютер.

Копировать с компьютера на устройство только новые файлы. С ключом -l не копировать, только создать список.

Установить приложение на устройство.

Например,

Ключи:-l блокировка приложения;-r переустановить приложение, с сохранением данных;-s установить приложение на карту памяти.

Чтобы удалить приложение с устройства используйте следующую команду.

Ключ -k означает, не удалять сохраненные данные приложения и пользователя.

Сделать скриншот экрана устройства.

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

Для записи видео с экрана устройства используйте команду screenrecord.

или с параметрами

Чтобы остановить запись используйте комбинацию клавиш Control + C (Command + C на Mac). По умолчанию максимальный лимит для видео составляет 3 минуты.

С полным списком команд adb можно ознакомиться на сайте .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector