====== Что такое ADB и как с ним работать ====== Источник: http://execbit.ru/tools/adb/2016/01/10/adb.html Читая статьи о перепрошивке и рутинге Android-устройств, вы наверняка встречали упоминание консольной команды adb в тексте. Этот инструмент очень популярен среди энтузиастов ОС Android и применяется почти во всех графических и консольных утилитах для рутинга, снятия защиты и других действий. Однако, далеко не каждый пользователь знаком с этим инструментом и не знает его полезнейших возможностей, таких как установка и удаление приложений, синхронизация папок между настольной машиной и смартфоном, снятие скриншотов, открытие доступа в интерет через смартфон и многих других. ===== Что такое ADB ===== ADB это протокол или, проще говоря, система связи между настольной машиной и смартфоном по USB-кабелю, которая изначально была разработана сотрудниками Google для отладки и выполнения сервисных задач над смартфоном. Другими словами это инструмент для разработчиков, который тем не менее имеет множество функций, которые могут быть полезны и обычному пользователю. ADB состоит из двух компонентов: сервера, который работает на смартфоне, и клиентской программы, которую пользователь запускает на большом брате. Сам клиент представляет собой небольшую консольную команду, которую следует запускать либо в окне DOS в Windows, либо в эмуляторе терминала в Linux. Вся работа с ADB сводится примерно к следующему: с помощью клиента пользователь отдает команду, а смартфон ее выполняет. ===== Как пользоваться ADB ===== Перед тем как начать использовать ADB следует обзавестись клиентом. По умолчанию он распространяется в составе Android SDK, однако если вы не хотите устанавливать SDK, клиент можно получить и отдельно. Архив с клиентами для Windows, Mac и Linux можно получить, например, [[https://texasice-cream-sandwich-mirror.googlecode.com/files/adb_fastboot.zip|здесь]]. Просто распакуйте этот архив на диск C: в Windows или в домашний каталог в Linux. Если вы работаете в Windows не забудьте установить все необходимые драйверы (обычно они устанавливаются автоматически при первом подключении смартфона/планшета с помощью USB-кабеля). Теперь подключите устройство к USB и включите на нем режим отладки (Настройки - Для разработчиков - Отладка по USB). Откройте консоль (Пуск - Выполнить - сmd - Enter в Windows), перейдите и наберите следующие команды для проверки успешности соединения ADB-клиента с сервером: cd c:\adb_fastboot adb-windows.exe devices Если все в порядке на экран должно быть выведено что-то вроде таких строк: List of devices attached 0146A0D016016010 device Сразу рекомендую переименовать файл adb-windows.exe в adb.exe для удобства (в дальнейшем я буду использовать именно такой вариант названия, тем более что в SDK он такой). Установка и удаление приложений С помощью ADB достаточно удобно устанавливать и удалять приложения со смартфона/планшета. Для этого предусмотрены команды "adb install" и "adb uninstall". Так, например, чтобы установить пакет на смартфон, выполните такую команду в той же консоли: adb install c:/пакет.apk Чтобы установить приложение на карту памяти добавьте ключ -s: adb install -s c:/пакет.apk Для удаления приложения используйте такую команду: adb uninstall com.drweb Обратите внимание, что следует использовать системное имя приложения, которое можно узнать просмотрев информацию о нужном приложении на смартфоне, либо получить список всех установленных приложений выполнив такую команду: adb shell ls /data/app И уже из него выбрать необходимое. ===== Копирование файлов и синхронизация каталогов ===== Кроме установки и удаления пакетов вы также можете перемещать файлы и целые каталоги между компьютером и картой памяти устройства. Так, например, чтобы переместить папку c:/music на карту памяти достаточно выполнить такую команду: adb push c:/music /sdcard А чтобы получить папку с фотографиями с карты памяти - такую: adb pull /sdcard/DCIM/Camera c:/ Однако, самое полезное применение ADB это синхронизация папок между компьютером и смартфоном. Допустим у вас есть папка c:/music, в которую вы постоянно добавляете новую музыку и хотели бы чтобы добавленная недавно музыка перекочевала на смартфон без необходимости копирования всей музыки, половина которой уже есть на смартфоне. Нет ничего проще, воспользуйтесь синхронизацией: adb sync c:/music /sdcard/Music ===== Выход в интернет через смартфон ===== Еще одна очень интересная функция ADB это возможность проброса сетевых портов или, говоря на человеческом языке, возможность сделать так, чтобы выход в интернет происходил через смартфон. Да, для этого есть функция WiFi hotspot и различные приложения вроде PDANet, однако метод с использованием ADB поможет в случае экстренной ситуации, когда под рукой кроме смартфона и ADB нет ничего. Чтобы воспользоваться этой функцией запустите ADB в режиме проброса портов: adb forward tcp:8080 tcp:8080 Затем установите на смартфон и запустите приложение [[https://play.google.com/store/apps/details?id=com.proxoid|Proxoid]] и настройте браузер настольной машины на использование прокси по адресу “localhost:8080”. Это все. Теперь выход в интернет будет происходить через смартфон. Сразу оговорюсь, что HTTPS-сайты работать не будут, поэтому получить доступ, например, к Gmail не получиться. ===== Бэкап и восстановление приложений и настроек ===== Современные версии ADB кроме всего перечисленного поддерживают также функцию бэкапа и восстановления установленных приложений и их настроек, что может пригодится при обнолвении прошивки или при экспериментах. Воспользоваться функцией очень просто. Чтобы сделать бэкап всех приложений и настроек достаточно выполнить следующую команду: adb backup -f c:\\backup -apk -all Все настройки и приложения будут сохранены в файл c:\backup. Для его восстановления достаточно выполнить такую команду: adb restore c:\\backup ===== Другие функции ===== Что еще можно сделать с помощью ADB? Например, получить доступ к консоли Android: adb shell Имеет смысл использовать только в том случае, если вы знаете что это такое. С помощью ADB также можно принудительно перезагрузить устройство: adb reboot Чтобы перезагрузиться в консоль восстановления используйте такую команду: adb reboot recovery ===== ADB по сети ===== Сервер ADB может работать и в сетевом режиме, когда вместо USB-кабеля для доступа к устройству используется локальная WiFi-сеть. В целях безопасности в стандартных прошивках сетевой режим отключен, но в таких прошивках как CyanogenMod, AOKP и других его можно активировать через настройки. А если получить root то и в любой прошивке с помощью бесплатного приложения [[https://play.google.com/store/apps/details?id=com.ttxapps.wifiadb|WiFi ADB]]. Просто установите его, нажмите кнопку "Turn On" и наберите в консоли Windows строку, которая появится на экране, например: adb connect 192.168.0.101:5555 Далее можно использовать все стандартные команды ADB ===== Выводы ===== ADB очень мощный инструмент, а если в придачу к нему вы изучите консоль Android, то сможете делать со своим смартфоном все, что угодно. Кстати, чтобы не вбивать все указанные в статье команды в консоли, можно создать несколько скриптов (текстовых файлов с расширением .bat) и добавить в них нужные команды. Тогда для запуска команд придется просто кликнуть по скрипту.