Abd команды. Ручная установка драйвера ADB
Что такое ADB? Adb команды для Андроид. В данной статье вы узнаете что такое ADB для чего он нужен пользователям, а также как управлять им с помощью команд в Android терминале. Ну что же начнем изучать adb команды android…
Знакомимся с ADB
ADB (android debug bridge) это - средство отладки, выявление ошибок в приложениях, разблокировки девайсов на ОС Android и многое другое. Официальную документацию на английском языке можете прочитать на данном сайте .
Скачать ADB
Скачать ADB можно с официальной поставляемой средой разработки Android SDK или же скачать маленький установщик ADB , Установка происходит в корень диска С:\
Позаботьтесь чтобы на ПК были установлены драйвера , а на Android включена отладка по USB .
Adb команды android и Linux
Команды Adb можно разделить 3 типа, непосредственно для команды Adb, FastBoot () и команды Android.
Команды Adb
1. Проверка наличия подсоединенного Android , проверяет «видит» ли ПК ваш смартфон или планшет.
Чтобы убедиться, что все работает нормально и компьютер опознал Android необходимо ввести adb команду:
adb devicesна данном скрине видно что Android подсоединен
Если у вас не появились похожее сообщение, то возможно, необходимо проверить, наличие драйверов на ПК, целостность кабеля, работоспособность порта USB.
2. Подключение Android по WI-FI
Для того чтобы подключить Android по WI-FI сети необходимо получить ip адрес и порт устройства, в этом вам поможет приложение ADB Wireless (необходим Root)
после этого ввести команду:
adb connect ip:portНапример вот так:
adb connect 192.168.0.14:5555Более подробно о том как подключить Android через WI-FI - Отладка по USB .
3. Установка приложений на Android
Для того чтобы установить какое либо приложение с компьютера на Android необходимо ввести команду:
adb installКак использовать и пример:
Для того чтобы с помощью команды Adb установить приложение необходимо. Написать:
adb intsall C:papka_gde_y_vas_hranitsya_prilogenieimja_priloginija.apkТо есть написать команду adb install путь к приложению и название этого приложения.
4. Отправить какой либо файл на Android
adb pushКак использовать и пример
Для того чтобы с помощью команды Adb отправить файл с ПК на Android необходимо. Написать:
adb push C:papka_gde_hranitsya_fileimja_file /sdcardТо есть написать adb команду путь к файлу, название файла и место где сохранить данный файл.
5. Принять файл c Android на ПК
Для того чтобы принять абсолютно любой файл с устройства Android на компьютер существует команда:
adb pullКак использовать и пример:
Для того чтобы с помощью команды Adb принять файл с Android на ПК необходимо. Написать:
adb pull /sdcard/xxx/Sex_s_Pameloy_Anderson C:papka_gde_budet_hranitsya_fileТо есть написать adb команду путь к файлу который находится на Android, название файла и место где сохранить данный файл на ПК.
Для того чтобы перезагрузить Android после каких либо выполненных операций, либо перезагрузить в специальный режим, существует команда:
adb rebootПример использования:
Команды перезагрузят Android
adb reboot adb reboot normalзагрузки Bootloader
adb reboot bootloaderКоманда перезагрузит Android в режим Recovery
adb reboot recovery7. Перейти в управление Android, после чего можно использовать команды ОС Android
Весь потенциал Android раскрывается после того когда вы переходите в управление Android где доступны многие команды linux. Для этого существует команда:
adb shellКоманды в терминале Android
Суперпользователь или Root. Позволяет выполнять абсолютно все действия, от создания, модифицирования, изменения, до удаления конкретных системных файлов: Для этого введите команду:
suДо ввода команды
suпользователь является Гостем в системе (многие действия заблокированы) и обозначается в начале терминала знаком доллар
$после ввода команды
suстановится Админом и в терминале обозначается как американский номер
#и живой пример:
2. Команда перейти в папку (в дальнейшем и правильней будет называть каталог вместо папки)
Для того чтобы перемещаться между разделам и каталогами в Android, существует специальная команда:
cdПример чтобы перейти с раздела /sdcard в раздел /sdcard/xxx/porno/hot_girl
cd /sdcard xxx/porno/hot_girlДля того чтобы вернуться с раздела на каталог выше либо обратно в /sdcard
если находимся в каталоге /sdcard/xxx/porno/hot_girl
- hot_girl
окажемся в каталоге
/sdcard/xxx/porno/если необходимо подняться в /sdcard то
cd ../ ../ (столько раз сколько это необходимо) Внимание в Android и других Unix системах файлы Primer и primer или PrimER абсолютно разные файлы3. Переместить/Переименовать файл либо каталог.
Перемещение и переименование файла, каталога осуществляется c только одной командой:
mvПример Переименовать файл
mv /sdcard/xxx/hot_porno/Alenka.avi /sdcard/xxx/hot_porno/kruto.aviПример Переименовать папку:
mv -r /sdcard/xxx/hot_porno /sdcard/xxx/superПример как Переместить файл:
mv /sdcard/xxx/hot_porno/Alenka.avi /sdcard/xxx/Alenka.aviПример как Переместить папку:
mv -r /sdcard/xxx/hot_porno /sdcard/hot_porno4. Просмотреть что есть внутри каталога
Для того чтобы узнать какие каталоги и файлы содержаться от места где вы находитесь используют следующую linux команду:
lsПример использования:
ls /sdcard/xxx/hot_porno/выдаст сообщение
Alenka.avi Pamela.avi Anderson.avi ls -a ls -a /sdcard/xxx/hot_porno/выдаст следующие сообщение:
Alenka.avi Pamela Anderson.avi .Skrutiy_File.avi5. Копировать файл или папку (каталог).
Для того чтобы скопировать какой либо файл или папку и переместить куда либо:
cpПример Скопировать файл:
cp /sdcard/xxx/hot_porno/Alenka.avi /sdcard/xxx/Alenka.aviПример Скопировать папку:
cp -r /sdcard/xxx/hot_porno /sdcard/hot_porno6. Подсоединить раздел (примонировать) и отсоединить.
Для того чтобы узнать какие разделы существуют в Android, подключить или отключить:
mount (подключить раздел) и umont (отсоединить раздел)Узнать какие разделы примотированы в данный момент, введите
mountДля того чтобы присоединить раздел:
mount /dev/block/mmcc121 mount /systcodeДля того чтобы отсоединить раздел:
umount /dev/block/mmcc121 umount /systcode7. Создать каталог (папку)
Для того чтобы создать где либо папку используйте команду:
mkdirПример использования:
mkdir /sdcrad/android_file8. Удалить каталог (папку) или файл
Если необходимо удалить какой либо файл или папку linux команда:
rmПример как удалить файл:
rm /sdcard/xxx/hot_porno/Alenka.aviПример как удалить папку:
rm - r /sdcard/xxx/hot_porno9. Вывести содержимое файла на экран (прочитать)
Если перед вами стоит задача вывести на экран содержимое текстового файла:
cat cat /sdcard/books/Толстой_книга_война_и_мир.txtи получим
- Еh bien, mon prince. Genes et Lucques ne sont plus que des apanages, des поместья, de la famille Buonaparte. Non, je vous previens, que si vous ne me dites pas, que nous avons la guerre, si vous vous permettez encore de pallier toutes les infamies, toutes les atrocodes de cet Antichrist (ma parole, j`y crois) - je ne vous connais plus, vous n`etes plus mon ami, vous n`etes plus мой верный раб, comme vous dites.10. Вывести содержимое файла на экран (прочитать в обратном порядке)
Если перед вами стоит задача вывести на экран содержимое текстового файла, но с конца в начало:
tac11. Показать полный путь
Для того чтобы понять в каком разделе и каталоге находитесь:
pwdПример: если находимся в каком либо каталоге и надо узнать полный путь (например находимся в системном разделе, каталог app)
pwdвыдаст сообщение
/system/app/12. Создать пустой файл
Для того чтобы создать текстовый файл:
touchНапример создадим файл 666.txt в каталоге /sdcrad
touch /sdcard/666.txt13. Создание Резервной копии с раздела и восстановление
dd ifПример создания Резервной копии на Sd карту
dd if=dev/block/mmcblk0p1 of=sdcard/efs.imgПример Восстановления раздела с резервной копии с Sd карты
dd if=/sdcard/efs.img of=/dev/block/mmcblk0p114. Просмотр занимаемого места файлом
Для того чтобы понять сколько занимает что либо:
du du systcodeВыставление permission, прав файлам и директориям
Чтобы узнать какие права у файлов и директорий нужно написать такую команду
ls -nПрава Доступа (permission)
Записывают их вот таком виде - RWX (буквенном) или 777 (цифирном)
Права доступа разделяют
1.Доступ к файлам
2.Доступ к директории
Буквенные атрибуты прав доступа
r
- чтение данных файлов и директорий (read)
w
- изменение содержимых файлов и директорий или запись в них, но не удаление (write)
x
- выполнение файла или разрешение зайти в директорию
Бывает три группы польвателей
«user
» - владелец файла или дирекори
«group
» -член группы, к которой принадлежит владелец
«world
» - остальные, не относящиеся к 2-м группам
Порядок записи прав доступа выглядит так
сначала выставляются права доступа для владельца - «u
»
после группы - «g
»
и в конце для остальных - «o
»
Например
Владелец файла имеет право на чтение (r), запись(w) в него и исполнение(x), остальные только право на чтение.
Цифирные атрибуты прав доступа
r - чтение 4
w - запись 2
x - выполнение 1
«-» никаких прав 0
Сумма их значений означает конечные права для пользователя и групп
7 (rwx) = 4 + 2 +1 полные права
5 (r-x)= 4 + 0 + 1 чтение и выполнение
6 (rw-) = 4 + 2 + 0 чтение и запись
4 (r-) =4 + 0 + 0 только чтение
Для новичков возможно пригодится калькулятор онлайн - ссылка .
Задавать права нужно командой
chmodНапример
chmod 777 * - задаст права на чтение и запись и выполнение всем файлам и папкам
chmod 755 file.avi
Жесткие и символические ссылки
В Linux в том числе Android существует такое понятие как ссылки - что на нормальном привычном языке звучит «ярлык». Бывают два типа ссылок это:
- Жесткие ссылки
- Символические ссылки или симлинки
В чем различия жестких и символических ссылок?
Символические ссылки - создают ярлык которые указывают точное место файла или папки куда ярлык ссылается. Если файл или папку переместить, символическая ссылка будет битая. Чтобы наглядно понять что такое символическая ссылка - в Windows XP или Windows 7 есть ярлыки программ на рабочем столе, которые ссылаются в папку с программой, а точней exe-шник.
Как создать жесткие и символические ссылки
ln ln -sБольшинство пользователей Android ничего не знают об ADB . Полное название - Android Debug Bridge , расшифровывается, как «Отладочный Мост Android». ADB является частью Android SDK. При помощи ADB можно выполнять различные действия над вашим Android планшетом или смартфоном, такие как: перепрошивку, копирование файлов с компьютера на Андроид и обратно, восстановление системы и другие.
ADB для Android — что это такое?
Вам наверняка известно, что операционная система Android основана на модифицированном ядре Linux. Поэтому и с ней возникает необходимость использовать командную строку. Именно программа adb помогает устанавливать связь между компьютером и Android. Она является составляющей среды разработки Android SDK, поэтому чтобы установить Android Debug Bridge, вам нужно скачать Android SDK с официального сайта . Есть версии для всех популярных операционных систем: Windows, Mac OS и Linux. То есть, проще говоря, adb позволяет при помощи компьютера управлять телефоном или планшетом .
Также я советую следующие инструкции:
Основные команды adb Андроид
Подключите ваше устройство к ПК по USB. Убедитесь, что установлены все драйвера и включена отладка по USB.
Работать с Android Debug Bridge лучше всего через командную строку Windows. Для этого в Windows XP нажмите «Пуск» и в поле ввода «Найти программы и файлы» введите «cmd», после этого нажмите «Enter». Если у вас Windows 7 и выше, нажмите «Пуск» и в поле «Выполнить» введите «cmd» и снова нажмите клавишу «Enter».
adb devices
Самая распространенная команда adb. При помощи нее можно определить, видит ли ваш ПК подключенное устройство. Если вы всё сделали нормально, то появится такая строка: «List of devices attached». После нее вы увидите серийный номер вашего смартфона или планшета и его состояние: «online» либо «offline».
Если пишет «offline», это значит, что аппарат находится в спящем режиме, если «online», то девайс готов выполнять ваши команды.
Благодаря этой команде вы можете устанавливать приложения на вашем смартфоне или планшете. Для этого нужно прописать путь, где находится APK файл:
adb intsall D:\papka_s_faylom\nazvanie_prilogeniya.apk
Чтобы не писать длинных путей, скопируйте файл в директорию android-tools. Тогда путь станет таким:
adb intsall nazvanie_prilogeniya.apk
adb uninstall
Вводить нужно аналогично предыдущей команде. При этом приложение удалится.
У этой команды есть интересная фишка. Если вы добавите ключ -k ,то при удалении игры или программы их данные и кэш не удалятся, а останутся на Android устройстве.
Благодаря этой команде вы можете перекидывать файлы с компьютера на Android. Для этого вам нужно знать полный путь, где хранится файл и куда его перемещать.
adb push D:\papka_s_faylom\nazvanie_fayla/sdcard/Android
Чтобы не писать длинных путей, скопируйте файл в директорию android-tools. Тогда вводить нужно:
adb push nazvanie_fayla/sdcard/Android
Эта команда копирует файлы с Android на компьютер. Вам нужно знать путь, где находится файл на смартфоне или планшете и указать место, где вы хотите сохранить файл. Если вы не укажете последнее, то файл сохранится в директории android-tools.
adb pull /sdcard/nazvanie_fayla\D:\papka_gde_sohranity
Эта команда перезагрузит ваш Android телефон или планшет.
Благодаря этой команде вы можете напрямую загрузиться в режиме bootloader.
adb reboot recovery
Не все девайсы поддерживают данную команду. При помощи нее можно попасть в режим восстановления.
adb connect
При помощи этой команды можно подключить устройство к Wi-Fi сети. Для этого нужно знать ip адресс и порт устройства.
adb connect ip:port
При помощи этой команды вы получаете полный доступ ко всем файлам на вашем устройстве.
Второй способ использования adb shell — это выполнение единичной команды Android shell с помощью такой конструкции:
adb shell <команда>
Если вы переведете ваш телефон или планшет под управлением Андроид в режим bootloader, то команды adb больше срабатывать не будут. Здесь нужно использовать команды fastboot.
Чтобы проверить, видят ли ПК и Android друг друга, используем команду:
После её ввода должен появится серийный номер вашего аппарата.
При вводе этой команды можно разблокировать загрузчик телефонов и планшетов Asus и HTC. Когда ваше устройство находится в режиме bootloader, введите:
Также все ваши установленные программы и персональные данные будут потеряны.
При помощи этой команды можно вывести содержимое log файла: изменения, ошибки и т.д. Данные будут слишком быстро прокручиваться, поэтому верным решением будет сохранить их в один TXT-файл. Для этого введите:
adb logcat > filename.txt
adb sideload
Команда пригодится для владельцев устройств линейки Google Nexus. При помощи нее можно обновить прошивку девайса. Скачайте её на компьютер, подключите к нему Nexus, зайдите в режим Recovery, выберите пункт «Apply update from ADB» и после этого введите команду.
Перечень команд Android Debug Bridgeadb shell cat /proc/partitions
Выводит на экран информацию по имеющимся блокам.
Adb shell su -c dd if=/dev/block/mmcblk0p9 of=/sdcard/factoryfs.img bs=4096
Выполняет копирование блока. Задавать необходимо сам блок и выходящее имя.
Adb shell rm /data/system/gesture.key
Разблокирует от графического ключа при блокировке Android-девайса. После введения команды можно ввести любой жест.
Команда будет послана только на устройство, которое подключено к компьютеру через USB. Если подключено больше одного устройство, выдаст ошибку.
Команда будет послана на устройство, запущенное в эмуляторе. Выдаст ошибку, если одновременно запущено больше одного эмулятора.
Adb -s <серийный номер >
Команда будет послана на устройство с указанным серийным номером.
Adb -p <имя устройства/путь к нему>
Команда будет послана на девайс с указанным именем. Примечание: если не указывать ключ –p, то используется значение переменной ANDROID_PRODUCT_OUT.
Выводит на экран список всех подключенных к компьютеру устройств.
Adb connect <хост>(:<порт>)
Производит подключение к указанному хосту посредством протокола TCP/IP. Порт можно не указывать, тогда будет использован порт по умолчанию – 5555.
Adb disconnect <хост>(:<порт>)
Производит отключение от указанного хоста, подключенного посредством протокола TCP/IP. Порт можно не указывать, тогда будет использован порт по умолчанию –5555. Если не задать ни один из параметров, то будет произведено отключение от всех активных в текущий момент соединений.
Adb push <путь на ПК> <путь на Android-девайсе>
Производит копирование файла или папки с компьютера на Android-устройство.
Adb pull <путь на Android-девайсе> <путь на ПК>
Производит копирование файла или папки с Android-устройства на компьютер. Если не задан второй параметр, то копирование производится в папку ADB.
Adb sync [<папка>]
Производит копирование на компьютер только новых файлов. Если ввести ключ –l, то копирование производится не будет, будет создан только список новых файлов.
Запускает несколько упрощенный UNIX Shell.
Adb shell <команда из shell>
Выполнение команды посредством Shell. Например:
Adb shell rm -r /system/sd/app
Удаление приложений, которые были установлены на карту памяти.
Adb shell rm -r /system/sd/app-private
Удаление приложений, которые были установлены на карту памяти в раздел app-private.
Adb shell cat /proc/mtd
Вывод информации о разделах внутренней памяти устройства, в подобном виде:
Dev: size erasesize name
Mtd0: 000a0000 00020000 «misc»
Mtd1: 00420000 00020000 «recovery»
Mtd2: 002c0000 00020000 «boot»
Mtd3: 0fa00000 00020000 «system»
Mtd4: 02800000 00020000 «cache»
Mtd5: 0af20000 00020000 «userdata»
Вывод информации о свободных ресурсах в памяти устройства, в подобном виде:
Filesystem 1K-blocks Used Available Use% Mounted on
Tmpfs 160664 0 160664 0% /dev
/dev/block/mtdblock4 40960 1292 39668 3% /cache
/dev/block/mtdblock3 256000 146888 109112 57% /system
/dev/block/mtdblock5 179328 125728 53600 70% /data
/dev/block/mmcblk0p1 15521280 10056880 5464400 65% /sdcard
Adb emu <указание команды>
Команда будет послана в консоль запущенного эмулятора, например:
Adb shell mount -o rw /dev/block/mtdblock3 /system
Adb shell mount -o rw /dev/block/mtdblock5 /data
Выполняется монтирование разделов /system и /data с использованием режима ClockworkMod Recovery.
Adb install [-l] [-r] [-s] <приложение.apk>
Указанное приложение будет отправлено на Android-девайс и будет произведена его установка, например команда
adb install C:/adb/app/test.apk
выполнит установку test.apk, который находится в директории /adb/app/ на диске C:/.
Ключи к данной команде:
L – выполняет блокировку приложения.
R – приложение будет переустановлено с сохранением данных.
S – приложение будет установлено на карту памяти.
Adb uninstall [-k] <приложение.apk>
Производит деинсталляцию (удаление) указанного приложения. Если использовать ключ –k, то приложение будет деинсталлировано без удаления данных пользователя.
Adb wait-for-device
Ожидание подключения Android-девайса.
Adb start-server
Запуск службы (daemon).
Adb kill-server
Остановка службы (daemon).
Выводит текущий статус подключенного устройства:
Offline – девайс выключен.
Bootloader – девайс в режиме предварительной загрузки (бутлоадер).
Device – девайс работает.
Adb get-serialno
Выводит на экран серийный номер подключенного устройства.
Adb status-window
Производит непрерывный опрос состояния подключенного устройства.
Выполняет перемонтирование подключенного Android-девайса для последующей записи. Команда необходима для работы скриптов, которые изменяют данные на устройстве.
Adb reboot bootloader
Adb reboot recovery
Выполняется перезапуск службы (daemon) с Root-правами.
Выполняется перезапуск службы (daemon) с «прослушиванием» USB.
Adb tcpip <порт>
Выполняется перезапуск службы (daemon) с «прослушиванием» указанного порта.
Adb ppp
Запуск службы с указанными параметрами через USB. Допустимые параметры: defaultroute dump debug notty usepeerdns local.
Adb logcat [<Ключи>] [<фильтр>]
Используется для отладки. Выводит записи логов с отладочной информацией подключенного Android-устройства. logcat допустимо использовать с машины разработки ($ adb logcat) или через удаленный Shell (# logcat).
Каждое сообщение в логе Android-девайса имеет свой тэг и свой приоритет. Тэг – строка, которая указывает на компонент системы, отправивший сообщение (к примеру, View – для системы view и так далее). Приоритет может иметь одно из следующих значений (от наименьшего к наибольшему):
V – Verbose (самый низкий приоритет).
S – Silent (Самый высокий приоритет, при котором не выводится ничего).
Чтобы получить список используемых в системе тэгов вместе с их приоритетами, можно запустить logcat. При этом в первых двух столбцах каждого выведенного сообщения из системного лога будут указаны его приоритет и тэг. Например:
I/ActivityManager(585): Starting activity: Intent { action=android.intent.action…}
Чтобы уменьшить вывод лога до не таких больших размеров, можно использовать выражение фильтра, то есть с командой logcat использовать необходимые комбинации тэга и приоритета, и тогда все сообщения, которые не подходят под запрос, не будут выводиться. Фильтр выражается как <тэг>:<приоритет>, где <тэг>, соответственно, указывает на нужный тэг, а <приоритет> — на минимальный уровень приоритета для указанного тэга. В лог записываются сообщения с выбранным тэгом и приоритетом на указанном уровне или выше него. Количество пар <тэг>:<приоритет> не ограничено в одном выражении фильтра, для их разделения используется пробел.
Разберем на примере, какие сообщения будут выведены в лог:
Adb logcat TestTag:I TestApp:D *:S
Данная команда выведет все сообщения с тэгом TestTag, которые имеют приоритет «Info» или выше, а также сообщения с тэгом TestApp с приоритетом «Debug» или выше. Последний же элемент *:S устанавливает самый высокий «Silent» приоритет для всех остальных тэгов, по сути препятствуя их выведению. Таким образом, выводиться будут только сообщения для тэгов TestTag и TestApp. *:S – самый удобный способ вывода только сообщений, соответствующих указанным фильтрам.
Приведем еще один пример:
Данная команда выведет все сообщения, которые имеют приоритет «Warning» или выше для любых тэгов.
В том случае, если команда logcat выполняется на машине разработчика, а не через удаленный Shell, можно установить значение фильтра по умолчанию, задав переменную ANDROID_LOG_TAGS следующим образом:
Export ANDROID_LOG_TAGS=» TestTag:I TestApp:D *:S»
Заданная переменная окружения ANDROID_LOG_TAGS не будет работать через эмулятор или на устройстве, если logcat будет использоваться в удаленном Shell или через adb shell logcat. Данная команда export выполняется только в UNIX-системах, и не работоспособна в Windows.
Сообщения лога, помимо тэга и приоритета, содержат в себе несколько полей с метаданными. Формат вывода сообщений можно задать таким образом, чтобы изменять показ полей метаданных. Для этого используется параметр –v с указанием одного из следующих форматов вывода:
Brief – отображает тэг, приоритет и PID процесса (формат вывода по умолчанию).
Process – отображение только PID.
Tag – вывод только приоритета и тэга.
Thread – отображает только процесс:поток и тэг с приоритетом.
Raw – выводит необработанное сообщение, без отображения полей с метаданными.
Time – отображает дату, время вызова, тэг с приоритетом, и PID процесса.
Long – отображает все поля с метаданными, а также отдельно сообщения с пустыми строками.
Для примера:
Adb logcat -v thread
Команда выведет сообщения в формате thread.
Система логов Android имеет несколько кольцевых буферов, где содержатся логии сообщений, так что не все сообщения отправляются в основной буфер. Для того, чтобы отобразить дополнительные сообщения лога, используется параметр –b. Последний позволяет просмотреть один из альтернативных буферов:
Radio – отображение буфера с сообщениями, которые связаны с телефонией или радиомодулем.
Events – отображение буфера с сообщениями, которые связаны с событиями.
Main – отображение основного буфера (используется по умолчанию).
Через adb также можно просмотреть stdout и stderr. По умолчанию вывод stdout и stderr идёт в /dev/null/, то есть происходит их удаление. В процессах, выполняемых в виртуальной машине Dalvik, может быть осуществлена запись копии вывода в лог. В таком случае система записывает сообщения в лог с тэгами stdout и stderr с приоритетом I. Чтобы перенаправить вывод, необходимо остановить эмулятор или Android-устройство, и выполнить Shell setprop, чтобы включить перенаправление вывода. Пример, как это сделать:
$ adb shell stop
$ adb shell setprop log.redirect-stdio true
$ adb shell start
Указанная настройка будет сохранена в системе до тех пор, пока работает эмулятор или устройство. Для использования данной настройки по умолчанию, вышеописанную команду следует добавить в /data/local.prop.
Полный список параметров команды logcat:
B
C – сброс (очистка) лога и выход.
D – вывод лога на экран и выход.
F
G – вывод размера указанного буфера с последующим выходом.
N
R
S – установка «Silent» как фильтр по умолчанию.
V
Существует множество инструментов для работы с подключенным с помощью USB-кабеля или Wi-Fi смартфоном. Особо развитые инструменты позволяют перемещать файлы, устанавливать и удалять софт, просматривать контакты, делать скриншоты экрана и даже отправлять СМС, однако ни один графический инструмент не сравнится с мощью, которую может дать консоль Android. В этой статье мы поговорим об ADB (Android Debug Bridge) - стандартном инструменте для отладки и работы с консолью Android с компа.
Описанные в статье команды можно выполнять непосредственно на устройстве, скачав из маркета эмулятор терминала , но удобнее это делать, конечно же, с компа через adb.
Основы работы с ADB
Для начала работы с ADB его следует активировать на устройстве и установить утилиту adb и драйверы на комп. Первая задача выполняется с помощью включения «Отладки по USB» в пункте настроек «Для разработчиков» (если этот пункт скрыт, нажми семь раз на номер сборки в меню «О телефоне»).
Для установки ADB на комп качаем Adb Kit и распаковываем в любую папку (рекомендую использовать названия папок без русских символов). Также скачиваем и устанавливаем драйверы ADB .
Работать с adb нужно из командной строки. Нажимаем Win + R и вводим cmd, далее переходим в папку, в которой лежит adb. Для моей папки команда будет следующей:
Cd \android
Чтобы не проделывать все эти манипуляции каждый раз, можно добавить нужную папку в переменную Path. Для этого необходимо зайти в «Панель управления -> Система -> Дополнительные параметры системы -> Переменные среды», найти переменную Path и добавить в конец строки, через точку с запятой, путь до папки с adb. Теперь после запуска консоли можно сразу вводить необходимые команды.
Проверим наше подключение к телефону с помощью следующей команды (она должна вывести список подключенных устройств):
Adb devices
С ADB можно работать через Wi-Fi. Для этого нужны права root и приложение WiFi ADB . Запускаем приложение, жмем переключатель и подсоединяемся к смартфону с помощью команды connect и показанного приложением IP-адреса:
INFO
Скопировать вывод консоли после выделения мышкой, а также вставить скопированную команду или имя файла в консоль можно правой кнопкой мыши. Включается в свойствах консоли.Установка программ
ADB можно использовать для установки приложений без необходимости копировать их на смартфон. Достаточно выполнить такую команду:
Adb install d:/downloads/имя_файла.apk
В команду также можно добавить дополнительные ключи. Полезными будут -е - переустановить приложение с сохранением данных и -d - установить версию меньше текущей.
Программы можно и удалять, но для этого нужно знать название пакета (как узнать, расскажу чуть позже). На примере игры Angry Birds Seasons команда будет выглядеть так:
Adb uninstall com.rovio.angrybirdsseasons
Бэкап приложений
В Android есть встроенные функции бэкапа, которые также можно запустить с помощью командной строки. Для этого используется команда adb backup и набор опций:
Adb backup [опции] <приложения>
- -f указывает имя создаваемого файла и его расположение на компе. При отсутствии ключа будет создан файл backup.ab в текущем каталоге;
- -apk|-noapk указывает, включать ли в бэкап только данные приложения или сам.apk тоже (по умолчанию не включает);
- -obb|-noobb указывает, включать ли в бэкап расширения.obb для приложений (по умолчанию не включает);
- -shared|-noshared указывает, включать ли в бэкап содержимое приложения на SD-карте (по умолчанию не включает);
- -all указывает на необходимость бэкапа всех установленных приложений;
- -system|-nosystem указывает, включать ли в бэкап системные приложения (по умолчанию включает);
- - перечень пакетов для бэкапа.
Если мы хотим создать бэкап всех несистемных прог, включая сами.apk, в определенное место, то команда будет выглядеть так:
Adb backup -f c:\android\backup.ab -apk -all -nosystem
После ввода необходимо подтвердить начало выполнения бэкапа на самом устройстве. Для восстановления полученного бэкапа нужно выполнить соответствующую команду:
Adb restore c:\android\backup.ab
Консоль в консоли
Наряду с упомянутой консолью, которая является DOS-консолью под Windows, в Android существует и своя. Она вызывается через adb shell и представляет собой по сути стандартную Linux-консоль, но с неполным набором команд, расширить который можно, установив из маркета BusyBox. Использовать эту консоль можно двумя способами. В интерактивном режиме она запускается командой
Adb shell
В консоли появляется знак $ (далее по тексту этот знак будет означать необходимость ввода предварительной команды adb shell), и после этого можно вводить серию команд, получая после каждой отклик. Второй способ - если необходимо ввести только одну команду, можно писать ее подряд за adb shell.
В шелле работают стандартные команды для копирования, перемещения и удаления файлов: cp , mv и rm . Можно менять каталоги (cd ) и смотреть их содержимое (ls ). Кроме стандартных Linux-команд, о которых можно узнать из любого справочника, в Android есть несколько своих специализированных инструментов, но, чтобы использовать некоторые из них, придется получить на смартфоне права root, а после запуска консоли выполнять команду su:
Adb shell su
Это нужно делать, если в ответ на какую-либо команду ты видишь строку, похожую на «access denied» или «are you root?». В случае успеха знак $ сменится на #.
Создание скриншота
Выполняется одной строчкой:
Adb shell screencap /sdcard/screen.png
После этого картинку нужно выдернуть из устройства командой adb pull :
Adb pull /sdcard/screen.png
В recovery скриншот можно сделать следующей командой:
Adb pull /dev/graphics/fb0
Затем необходимо преобразовать файл fb0 в нормальное изображение с помощью FFmpeg, который нужно скачать и положить в папку с adb. Расширение необходимо ставить своего устройства:
Ffmpeg -f rawvideo -pix_fmt rgb32 -s 1080x1920 -i fb0 fb0.png
Запись видео, происходящего на экране устройства
adb shell screenrecord --size 1280x720 --bit-rate 6000000 --time-limit 20 --verbose /sdcard/video.mp4Данная команда начнет записывать видео с разрешением 1280 x 720 (если не указать, то будет использовано нативное разрешение экрана устройства), с битрейтом 6 Мбит/с, длиной 20 с (если не указать, то будет выставлено максимальное значение 180 с), с показом логов в консоли. Записанное видео будет находиться в /sdcard (файл video.mp4).
INFO
Все запущенные из консоли и в adb shell процессы, занимающие некоторое время для выполнения, можно прервать с помощью комбинации Ctrl + C. Выйти из шелла и вернуться к выполнению обычных команд adb - Ctrl + D.Управление приложениями
Для управления приложениями используются две команды: pm (package manager) - менеджер пакетов и am (activity manager) - менеджер активностей. У данных команд есть немало ключей, которые можно посмотреть на портале разработчиков . Остановимся на некоторых.
Для начала получим список установленных на устройстве приложений в виде названий пакетов, которые пригодятся позже:
Продолжение доступно только подписчикам
Вариант 1. Оформи подписку на «Хакер», чтобы читать все материалы на сайте
Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов.
Как обновить, если в Recovery нет нужного пункта (например, apply update). Обновление можно тогда произвести, используя ADB Sideload. Напомним, что существуют несколько тривиальных путей получения обновления и его применения:
- Обновление «по воздуху» (OTA), если производитель позаботился о выходе и распространении апдейт-файла таким удобным образом
- Обновление через Recovery, когда Вы скачиваете файл обновления и выбираете его через Recovery (например, используя пункт «apply update»).
Что делать?
Сначала установите базовые драйверы, чтобы можно было начать работу с Sideload. Далее распакуйте архив с ADB в корень диска C, туда же поместите обновление.
Примечание: архив с обновлением распаковывать не нужно.
Как обновить через Sideload?
Сначала загрузите Ваше устройств в режим Recovery (обычно, нужно выключить девайс и зажать клавиши Vol(-)+Power, лтбо Vol(+)+Power).
Выберите пункт «Apply update from sideload». Дождитесь появления пункта «Now send the package adb», а затем уже подключите USB-кабель к ПК.
На компьютере запустите командную строку, чтоб выполнить необходимые команды:
- cd c:/adb - после сd введите расположение папки с ADB (укажите путь к ней)
- adb sideload filename.zip - вместо filename введите название своего архива с обновлением
После применения этих команд файл с обновлением будет загружен и установлен на Ваш Android. Таким образом, можно прошивать не только OTA-обновления, но и полноценные прошивки (официальные, разумеется, которые предназначены для стокового рекавери).