Что такое adb драйвера?
Содержание:
- Как пользоваться?
- How to Setup ADB
- Изучение исходников little kernel (lk)
- Исправление 4: Добавьте путь к пользовательской или системной переменной для ADB и Fastboot
- Recording a device screen
- Исправление 1. Загрузите последние инструменты платформы SDK.
- Исправление 2: Выполните команду ADB из папки «Инструменты платформы»
- ADB LogCat
- Shell
- Исправить ошибку “Fastboot не распознается”
- Using package manager (pm)
- Продвинутый уровень
- Как пользоваться ADB RUN WEB?
- How to setup ADB on Microsoft Windows
- Как включить отладку по USB на Android
- Что такое ADB?
- Дополнительные драйверы и условия для использования ADB
- WiFi
- ADB Shell KeyEvent commands
- App installation commands
- Основные команды
Как пользоваться?
Поздравляем, вы установили ADB на свой девайс! Поскольку ADB установлен в Termux, все ADB команды, которые вы хотите выполнить, нужно вводить в том же Termux’е. Скорее всего, для того, чтобы установить ADB связь между Android устройством и компьютером вы использовали USB кабель. В данном случае USB подключение работать не будет, поэтому мы будем использовать функцию “ADB по сети”. Эту функцию нужно включить на устройстве, к которому вы хотите подключиться.
В большинстве устройств “ADB по сети” можно активировать в настройках системы в разделе “Настройки разработчика”, но если такой переключатель отсутствует, то активировать данную функцию можно, подключив целевое устройство к ПК с установленным ADB и выполнив на компьютере следующую команду:
adb tcpip 5555
После выполнения этой команды можно отсоединить кабель, компьютер нам больше не нужен.
Также можно активировать функцию “ADB по сети” на том же самом устройстве, на которое вы установили ADB, если вы хотите работать только с текущим устройством.
Для работы ADB по сети необходимо, чтобы все устройства, с которыми мы будем работать, были подключены к одной и той же сети Wi-Fi.
После успешной активации сетевой функции нам необходимо узнать внутренний IP-адрес целевого устройства. Его можно узнать с помощью различных сайтов, таких как https://2ip.ua, https://2ip.ru или же посмотреть в настройках Wi-Fi на нашем девайсе. Например, у меня это адрес 192.168.0.105.
Узнав адрес, мы можем подключиться к этому устройству по ADB, для этого нужно ввести в Termux команду:
adb connect ip
Где ip — адрес, который вы узнали. У меня эта команда будет выглядеть так:
adb connect 192.168.0.105
После подключения к устройству, вы можете вводить в Termux ADB команды, как и на обычном компьютере.
How to Setup ADB
Note: Setting up ADB on the computer is just half the equation since you’ll also need to do some things on the smartphone or tablet to accept the ADB commands.
Phone Setup
- Launch the Settings application on your phone.
- Tap the About Phone option generally near the bottom of the list.
- Then tap the Build Number option 7 times to enable Developer Mode. You will see a toast message when it is done.
- Now go back to the main Settings screen and you should see a new Developer Options menu you can access.
- Go in there and enable the USB Debugging mode option.
- You are partially done with the phone setup process. Next up, you will need to scroll below and follow the rest of the instructions for your particular operating system.
Follow along for the operating system on your computer.
Изучение исходников little kernel (lk)
То, что находится в разделе aboot — загрузчик Android, ванильные исходники которого находятся по адресу: https://source.codeaurora.org/quic/la/kernel/lk/
Там можно найти и информацию как происходит загрузка в некоторые из режимов. Например я нашел информацию о том, что если в раздел misc записать «boot-recovery», то без adb reboot recovery. При загрузке в recovery эта . И если recovery загрузиться не может, то телефон попадёт в boot loop и вы его потеряете. Так что будьте осторожны, а лучше избегайте этого варианта перезагрузки.
Там же можно найти код, который переводит системную область emmc в режим . Ответ на вопрос, почему невозможно перезаписать recovery. Эту защиту можно отключить из ядра Linux , если написать соответствующий модуль ядра. Уже всё написано товарищем из страны восходящего солнца, который, похоже, тоже неровно дышит к телефонам компании Kyocera. Модуль с первого раза не сработал, иногда подвешивает mmc в claim mode. Возможно не всё так однозначно и требуется детальное исследование.
Вот так происходит проверка подписи загрузочных разделов: https://source.codeaurora.org/quic/la/kernel/lk/tree/platform/msm_shared/image_verify.c?h=LA.BR.1.3.3_rb2.29
Исправление 4: Добавьте путь к пользовательской или системной переменной для ADB и Fastboot
Метод, который мы использовали выше, в котором мы написали путь к папке инструментов платформы с помощью команды cd, работает довольно хорошо, но может быть немного сложным и длинным, если вы очень часто используете ADB и fastboot. Таким образом, в этом случае мы можем использовать метод пути к системной переменной, с его помощью будет очень легко получить доступ к ADB и инструменту fastboot повсеместно с любого экрана или из любого места на вашем ПК с Windows. Все, что нам нужно сделать, это настроить ADB для всей системы.
Чтобы добавить системные или пользовательские переменные для пути к папке инструментов платформы, следуйте инструкциям, написанным ниже.
- Открыть Расширенные системные настройки
чтобы перейти к дополнительным настройкам, просто нажмите кнопку Windows и введите Расширенные системные настройки.
на вашем ПК с Windows.
- Теперь нажмите «Переменные среды», как показано ниже.
- Теперь нажмите на новый под системными переменными, для справки смотрите снимок экрана ниже.
- Теперь в новом открывшемся диалоговом окне введите Путь в поле Имя переменной, а внутри поля переменной вам нужно ввести путь к папке Platform-tools, просто скопируйте и вставьте его из адресной строки, находясь внутри платформы. папка с инструментами. для справки вы можете проверить скриншот.
- Наконец, нажмите ОК, чтобы добавить переменную пути.
- Кроме того, нажмите ОК на предыдущем экране, который представляет собой переменные среды, иначе это не сработает.
Вот и все, что вы успешно настроили переменный путь для ADB и инструмента fastboot, и теперь вы можете получить доступ к командам ADB из любого места внутри ПК, будь то из любого места.
Recording a device screen
The command is a shell utility for recording the display of devices
running Android 4.4 (API level 19) and higher. The utility records screen activity to an MPEG-4
file.
Note: Audio is not recorded with the video file.
A developer can use this file to create promotional or training videos. While in a shell, the syntax is:
screenrecord <filename>
To use from the command line, type the following:
$ adb shell screenrecord /sdcard/demo.mp4
Stop the screen recording by pressing Ctrl-C, otherwise the recording stops automatically
at three minutes or the time limit set by .
To begin recording your device screen, run the command to record
the video. Then, run the command to download the video from the device to the host
computer. Here’s an example recording session:
$ adb shell shell@ $ screenrecord --verbose /sdcard/demo.mp4 (press Ctrl-C to stop) shell@ $ exit $ adb pull /sdcard/demo.mp4
The utility can record at any supported resolution and bit rate you
request, while retaining the aspect ratio of the device display. The utility records at the native
display resolution and orientation by default, with a maximum length of three minutes.
There are some known limitations of the utility that you should be aware
of when using it:
- Some devices may not be able to record at their native display resolution.
If you encounter problems with screen recording, try using a lower screen resolution. - Rotation of the screen during recording is not supported. If the screen does rotate during
recording, some of the screen is cut off in the recording.
Table 4. options
Options | Description |
---|---|
Displays command syntax and options | |
Sets the video size: . The default value is the device’s native display resolution (if supported), 1280×720 if not. For best results, use a size supported by your device’s Advanced Video Coding (AVC) encoder. |
|
Sets the video bit rate for the video, in megabits per second. The default value is 4Mbps. You can increase the bit rate to improve video quality, but doing so results in larger movie files. The following example sets the recording bit rate to 6Mbps: screenrecord --bit-rate 6000000 /sdcard/demo.mp4 |
|
Sets the maximum recording time, in seconds. The default and maximum value is 180 (3 minutes). |
|
Rotates the output 90 degrees. This feature is experimental. | |
Displays log information on the command-line screen. If you do not set this option, the utility does not display any information while running. |
Исправление 1. Загрузите последние инструменты платформы SDK.
В Интернете есть несколько разных версий инструментов ADB и fastboot, многие из них также являются устаревшими. Например, если вы используете инструменты ADB и fastboot из универсальных драйверов ADB Koush или Minimal ADB и Fastboot, 15-секундный установщик ADB имеет шансы, что вы используете более старую версию инструментов ADB и Fastboot. Это означает, что драйвер Adb также устарел на вашем ПК с Windows. Не говоря уже о том, что эти старые версии и установщики из сторонних источников также могут содержать какие-то вредоносные программы, которые также могут нанести вред вашему компьютеру.
Вы должны попытаться удалить инструмент как можно скорее. Самый безопасный и надежный способ загрузить и установить драйвер инструмента ADB и Fastboot – это загрузить его прямо с собственного веб-сайта Google. Таким образом, мы рекомендуем вам загрузить последнюю версию Android SDK Platform Tools zip для Windows прямо с веб-сайта разработки Google.
Исправление 2: Выполните команду ADB из папки «Инструменты платформы»
Поскольку все мы знаем, что исходные драйверы инструментов ADB и fastboot не являются файлами установщика, мы просто извлекаем их и начинаем использовать, открыв командную строку в этом месте папки Platfporm-tools, поэтому есть 3 способа открыть cmd.
- Открой Платформа-инструменты папка, содержащая файлы ADB и fastboot. Теперь в адресной строке этого типа папки cmd и нажмите клавишу Enter на клавиатуре.
- Открой Платформа-инструменты папка. Затем щелкните вкладку файла, которая должна быть где-то в верхнем левом углу экрана, теперь выберите открыть Windows Powershell из контекстного меню.
- Перейдите в Платформа-инструменты папка, теперь в пустой области папки нажмите и удерживайте Shift, а затем нажмите правую кнопку мыши. теперь из контекстного меню выберите открыть Командная строка/ Оболочка Windows Power.
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 можно ознакомиться на сайте .
Shell
Чтобы запустить оболочку (shell) на подключённом устройстве, выполните следующую команду:
adb shell
С ним часто используют команды am и pm. Это не время, а сокращение от Application manager и Package Manager. Например, можно запустить сервис через намерение:
adb shell am startservice –a <intent action>
Для просмотра всех установленных приложений (пакетов):
adb shell pm list packages
Предоставить разрешение приложению/запретить.
adb shell pm grant com.myapp.mypackagename android.permission.INTERNET adb shell pm revoke com.myapp.mypackagename android.permission.INTERNET
Узнать информацию о конкретном приложении.
adb shell dumpsys package ru.alexanderklimov.hellokitty
Получить список доступных системных свойств.
adb shell getprop
Если вы знаете свойство, то можно запросить его значение напрямую.
adb shell getprop ro.build.version.sdk
Получить список всех будильников.
adb shell dumpsys alarm
Информация о всех видимых активностях.
adb shell dumpsys activity top adb shell dumpsys activity adb shell dumpsys activity -h
Символ # обозначает приглашение оболочки (shell prompt).
Вы можете просмотреть список команд, доступных при работе в оболочке, введя следующую информацию по приглашению оболочки:
# ls /system/bin
Список доступных команд (часть)
Чтобы просмотреть список каталогов и файлов, находящихся на корневом уровне (root-level), введите в командной строке оболочки следующую команду:
ls -l
Для просмотра списка баз данных используйте команду:
ls /data/data
В этом каталоге содержится список пакетов, установленных на устройстве. Для примера исследуем пакет com.android.providers.contacts:
ls /data/data/com.android.providers.contacts/databases
Эта команда отобразит файл contacts.db и др., представляющие собой базу данных SQLite.
adb shell logcat --help logcat -t 5
Monkey Stress Tester — Обезьяна с гранатой
Monkey (**/platform-tools) — утилита для генерации случайных жестов на эмуляторе или устройстве, что напоминает движения глупой мартышки.
Для просмотра всех файлов базы данных *.db используйте команду:
ls -R /data/data/*/databases
Вы увидите, что в Android имеются следующие базы данных (зависимости от версии Android набор может варьироваться):
alarms.db
contacts.db
downloads.db
internal.db
settings.db
mmssms.db
telephony.db
Можно активировать команду sqlitе3 для одной из перечисленных баз данных, введя следующую информацию:
#sqlite3 /data/data/com.android.providers.contacts/databases/contacts.db
Для завершения работы с sqlite3 напишите:
sqlite> .exit
Обратите внимание: приглашение для adb — это #, а приглашение для sqlitе3 — это sqlite>
Запись видео с экрана
Вы можете записать видео с экрана вашего устройства (на эмуляторе не работает):
adb shell screenrecord /sdcard/my_app.mp4
Затем можно сбросить на компьютер.
adb pull /sdcard/my_app.mp4
где /sdcard/my_app.mp4 – путь к файлу с видео (sdcard) и его имя (my_app.mp4).
Максимальное время записи равно трём минутам. Можно прервать запись (Ctrl+C).
Также вы можете управлять качеством записи, разрешением и другими параметрами с помощью следующих команд:
—size <ШИРИНАxВЫСОТА> Задает разрешение, например: 1280×720. По умолчанию этот параметр установлен в соответствии с разрешением главного экрана устройства (если поддерживается), или 1280×720 – если нет.
—bit-rate <СкоростьПотока> Задает скорость потока видео (мегабиты в секунду). По умолчанию – 4 Мб/сек. Например, для записи со скоростью 6 Мб/сек, вам нужно будет ввести следующую команду:
screenrecord --bit-rate 6000000 /sdcard/demo.mp4
—time-limit <Время> Задает максимальную длительность видео в секундах. По умолчанию установлено максимальное значение – 180 сек (3 минуты).
—rotate Поворот видео на 90 градусов. Экспериментальная опция.
—verbose Отображать информацию о процессе записи в окне командной строки.
В Android Studio вы можете начать запись через кнопку записи в панели Android DDMS (Alt-6).
Если вы хотите, чтобы на видео отображались «отпечатки» касаний к экрану, включите в настройках устройства в разделе для разработчиков опцию «Показывать нажатия» или «отображать касания».
Исправить ошибку “Fastboot не распознается”
Таким образом, все вышеупомянутые решения заключались в том, чтобы исправить ошибки с помощью команд ADB или ADB, которые не распознаются ошибкой. Вышеупомянутые решения также могут исправить ошибку команд fastboot. в противном случае, если вы все еще получаете сообщение об ошибке «fastboot не распознано», вы можете попробовать описанный ниже метод, который может исправить вашу ошибку. Команды Fastboot – это те команды, которые вы выполняете на платформе ADB, когда ваш телефон находится в режиме восстановления, загрузчика или быстрой загрузки. В основном это используется для прошивки пользовательского восстановления, такого как TWRP, или для разблокировки загрузчика вашего устройства.
- Убедитесь, что вы скачали последнюю версию платформенные инструменты SDK по ссылкам, приведенным выше.
- Теперь откройте Платформа-tools папка
- Прежде всего, скопируйте файлы, которые вы хотите прошить на свое устройство Android, и вставьте их в платформенные инструменты папка, та же самая папка, в которой также должны быть файлы, такие как ‘fastboot.exe и adb.exe’
- Теперь перезагрузите Android-устройство в режиме быстрой загрузки. для этого просто выполните команду ADB, написав .
- Убедитесь, что ваш телефон подключен к компьютеру с помощью подходящего совместимого кабеля.
- Теперь запустите командную строку из платформенные инструменты папка, как и для команд ADB.
- Теперь введите и выполните команда покажет список устройств, подключенных к вашему ПК.
- Если вы не видите какое-либо устройство в списке, это означает, что устройство не подключено должным образом или возникла проблема. Вы можете попробовать отсоединить USB-кабель и снова подключиться к компьютеру, если это не поможет, тогда вы можете попробовать перезагрузить телефон и проверить, включена ли USB-отладка или нет.
Using package manager (pm)
Within an adb shell, you can issue commands with the package manager () tool to
perform actions and queries on application packages installed on the device. While in a shell,
the syntax is:
pm <command>
You can also issue a package manager command directly from adb
without entering a remote shell. For example:
adb shell pm uninstall com.example.MyApp
Table 3. Available package manager commands.
Command | Description |
---|---|
Prints all packages, optionally only those whose package name contains the text in . Options:
|
|
Prints all known permission groups. | |
Prints all known permissions, optionally only those in . Options:
|
|
List all test packages.
Options:
|
|
Prints all features of the system. | |
Prints all the libraries supported by the current device. | |
Prints all users on the system. | |
Print the path to the APK of the given . | |
Installs a package (specified by ) to the system.
Options:
|
|
Removes a package from the system.
Options: -k: Keep the data and cache directories around after package removal. |
|
Deletes all data associated with a package. | |
Enable the given package or component (written as «package/class»). | |
Disable the given package or component (written as «package/class»). | |
Options: —user : The user to disable. |
|
Grant permissions to applications. Only optional permissions the application has declared can be granted. |
|
Revoke permissions to applications. Only optional permissions the application has declared can be revoked. |
|
Changes the default install location. Location values:
Note: This is only intended for debugging; using this can cause |
|
Returns the current install location. Return values:
|
|
Specifies whether the given permission should be enforced. | |
Trim cache files to reach the given free space. | |
Create a new user with the given , printing the new user identifier of the user. |
|
Remove the user with the given , deleting all data associated with that user |
|
Prints the maximum number of users supported by the device. |
Продвинутый уровень
В одной из своих статей я показывал, как можно доставать информацию из баз данных различных приложений. Ну а теперь посмотрим, как проделать это прямо из консоли, не качая базы на комп и не устанавливая на устройство просмотрщики баз. Для этого используется команда sqlite3. Выведем на экран историю браузера Chrome:
$ cd /data/data/com.android.chrome $ su # sqlite3 app_chrome/Default/History > .schema urls > select * from urls where url like «%android%»;
Чтобы база читалась, необходимо выгрузить браузер из работающих приложений. Прервать выполнение скрипта sqlite можно, нажав Ctrl + Z, а выйти — командой .quit. Если в ответ на команду ты получишь ошибку /system/bin/sh: sqlite3: not found, значит, на смартфоне нет sqlite3 и ее придется скачать, закинуть в /system/bin и дать файлу все права. Я использую sqlite3, который вытащил когда-то из Titanium Backup.
История браузера Chrome
Также с помощью sqlite3 можно выдернуть все контакты с телефона. Для этого в консоли на компе должен использоваться шрифт Lucida Console и перед началом выполнения команд необходимо перевести кодировку на UTF-8. Иначе вместо русских букв будут отображаться непонятные символы. Сами команды выглядят так:
chcp 65001 adb shell $ su # cd /data/data/com.android.providers.contacts/databases # sqlite3 contacts2.db > select t1.raw_contact_id,t1.normalized_number,t2.display_name from phone_lookup as t1, raw_contacts as t2 where t1.raw_contact_id=t2._id Order by display_name;
Если все сделано правильно, то в консоли ты увидишь таблицу с порядковым номером записи, номером телефона и контактами, отсортированными по имени. Для контактов с более одного номера будет несколько записей подряд.
Вывод контактов из базы contacts2.db
Можно вывести данные не на экран, а сразу в текстовый файл. Для этого команды нужно изменить:
adb shell $ su # cd /data/data/com.android.providers.contacts/databases # sqlite3 contacts2.db «select t1.raw_contact_id,t1.normalized_number,t2.display_name from phone_lookup as t1, raw_contacts as t2 where t1.raw_contact_id=t2._id;» > /sdcard/contacts.txt
Альтернативный способ вывода контактов в файл — команда, требующая установленного BusyBox:
content query —uri content://contacts/phones —projection number:name —sort «name ASC»| awk -F= ‘{gsub(//,»»,$2);print $2″ «$3}’| sed ‘s/,//g’ >/sdcard/contacts.txt
Как пользоваться ADB RUN WEB?
Все очень просто! Для этого у вас должен быть установлен браузер на движке Chromium не ниже 89.X версии:
- Chrome
- EDGE
- Opera
Для того чтобы все заработало, необходимо в экспериментальных настройках активировать параметр (перевести в значение ENABLE) параметр «Enable new USB backend»:
- В Chrome перейдете по адресу chrome://flags/#new-usb-backend
- В EDGE перейдете по адресу edge://flags и вбейте в поисковую строку «USB backend» и активируйте параметр
- В Opera перейдите по адресу opera://flags/ и вбейте в поисковую строку «USB backend» и активируйте параметр
После включения параметра, перезапустите браузер!
- Перейдите на страницу ADB RUN WEB
- Активируйте отладку по USB на телефоне и подключите к компьютеру, нажмите ADD Device и выберите устройство. Далее нажмите Connect и не забудьте разрешить авторизацию на телефоне!
How to setup ADB on Microsoft Windows
- Download the Android SDK Platform Tools ZIP file for Windows.
- Extract the contents of this ZIP file into an easily accessible folder (such as C:\platform-tools)
- Open Windows explorer and browse to where you extracted the contents of this ZIP file
- Then open up a Command Prompt from the same directory as this ADB binary. This can be done by holding Shift and Right-clicking within the folder then click the “Open command window here” option. (Some Windows 10 users may see “PowerShell” instead of “command window”.)
- Connect your smartphone or tablet to your computer with a USB cable. Change the USB mode to “file transfer (MTP)” mode. Some OEMs may or may not require this, but it’s best to just leave it in this mode for general compatibility.
- In the Command Prompt window, enter the following command to launch the ADB daemon:
- On your phone’s screen, you should see a prompt to allow or deny USB Debugging access. Naturally, you will want to grant USB Debugging access when prompted (and tap the always allow check box if you never want to see that prompt again).
- Finally, re-enter the command from step #6. If everything was successful, you should now see your device’s serial number in the command prompt (or the PowerShell window).
Yay! You can now run any ADB command on your device! Now go forth and start modding your phone by following our extensive list of tutorials!
Как включить отладку по USB на Android
Отладка по USB включается в настройках системы в разделе Параметры разработчика.
На Android 4.2 и выше раздел параметров разработчика по умолчанию скрыт. Чтобы сделать его видимым, перейдите в Настройки – О телефоне и нажмите Номер сборки (в редких случаях Номер модели) 7 раз (в редких случаях 10). На экране отобразится уведомление «Теперь вы разработчик!«
В настройках должен появиться пункт меню Параметры разработчика, найдите в нем пункт Отладка USB и активируйте его.
На некоторых устройствах раздел с параметрами разработчика может располагаться в других разделах настроек или иметь другое название.
Подробнее о параметрах разработчика на устройствах Android можно ознакомится на .
Что такое ADB?
ADB представляет собой специальный пакет Android Debug Bridge, который является своеобразным мостом между компьютером и мобильным устройством в виде консольного приложения, работающего по типу командной строки, но использующего несколько другие команды.
Применение этой среды позволяет не только получить полный контроль над своим девайсом, но и устанавливать программы, производить отладку и разблокировку устройства, а также очень часто применяется на начальной стадии при получении root-прав, причем даже с установкой всевозможных сред восстановления вроде TWRP и CWM или контролирующего приложения SuperSU, что на «неразлоченном» девайсе сделать не получится никакими другими способами. Как уже можно было догадаться, команда adb devices для «Андроида» является основной, поскольку именно она позволяет установить связь между мобильным устройством и компьютером. Остальные команды строятся на ее основе. О них поговорим позже, а пока остановимся на некоторых нюансах установки и обязательных условиях для работы этой среды.
Дополнительные драйверы и условия для использования ADB
Даже для первого использования команды adb devices и всех ее возможных комбинаций необходимо убедиться, что мобильном устройстве включен так называемый режим отладки по USB. Если он деактивирован или такого пункта вообще нет в меню девайса, сначала в настройках необходимо найти раздел «О телефоне» или «О планшете», тапунть по пункту 10-15 раз, после чего будет сообщено, что вы стали разработчиком.
Войдя в соответствующее меню «Для разработчиков» и можно включить необходимый режим.
Что касается драйверов, достаточно часто с программным обеспечением от Google можно наблюдать серьезные проблемы, поскольку драйвер может попросту не работать. В этом случае настоятельно рекомендуется инсталлировать ПО, максимально подходящее для вашей модели, загрузив его с интернет-ресурса производителя оборудования. Иногда помогает и установка универсальных драйверов. Например, в последнее время весьма широкое распространение получил универсальный драйвер от Intel, но его инсталлировать необходимо только в том случае, если ваш девайс работает на процессоре именно этого производителя.
WiFi
WiFi в моем телефоне работает через модуль ядра. WiFi включен — модуль загружен. WiFi выключен — модуль выгружен. Если подменить модуль на свой, то при включении WiFi должен загрузиться подставной модуль. На моё счастье цифровая подпись модулей не проверялась. Первое, что я попробовал, это собрать и загрузить модуль, который отключает SELinux путем замены памяти ядра на Amazon Fire Phone: https://github.com/chaosmaster/ford_selinux_permissive
Чтобы собрать модуль, требуется более-менее соответствующие исходники ядра и файл Module.symvers. Если исходники точно соответствуют тому ядру, что используется на телефоне, то , сгенерированный автоматически при сборке ядра должен подойти.
Если при загрузке модуля ядро будет ругаться (disagrees about version of symbol module_layout), то потребуется извлечь из раздела. Это можно сделать, используя скрипт https://github.com/glandium/extract-symvers:
Нельзя просто так взять и собрать свой модуль для телефона Kyocera.
Помните доступных для загрузки модулей? Модуль должен называться wlan и никак иначе. Решается это просто:
- создаю symlink на исходник модуля
- правлю Makefile
Модуль на удивление загрузился (память, которую занимает модуль wlan сократилась, проверяется командой lsmod), но SELinux не отключился.
В dmesg не было никакой информации от подставного модуля. А всё потому, что у ядра есть еще один параметр: , который фильтрует INFO логи, в том числе модулей. Я понизил порог всех логов: . Перезагрузил модуль и увидел, что модуль просто не нашел требуемой маски, потому отключить SELinux не удалось.
Единственное, что я не уяснил, как программно вызвать отключение и включение WiFi. Мне приходится выключать/включать WiFi вручную через интерфейс Android.
ADB Shell KeyEvent commands
Android devices support KeyEvent commands that can let you perform certain actions that require you to press a hardware button or tap an app or UI option. You can control your Android phone or tablet device simply by using these KeyEvent commands. These commands might come in handy if the hardware keys on your device are not functioning properly due to some damage.
-
Turn Android device ON or OFF: adb shell input keyevent 2
-
Press Home button: adb shell input keyevent 3
-
Press Back button: adb shell input keyevent 4
-
Press Call button: adb shell input keyevent 5
-
End a call: adb shell input keyevent 6
-
Turn ON the camera: adb shell input keyevent 27
-
Open wen browser: adb shell input keyevent 64
-
Press the Enter key: adb shell input keyevent 66
-
Press Backspace button: adb shell input keyevent 67
-
Open Contacts app: adb shell input keyevent 207
-
Decrease display brightness: adb shell input keyevent 220
-
Increase Display brightness: adb shell input keyevent 221
-
Cut text: adb shell input keyevent 277
-
Copy text: adb shell input keyevent 278
-
Paste text: adb shell input keyevent 279
-
Make the device sleep: adb shell input keyevent KEYCODE_SLEEP
-
Make device wakeup: adb shell input keyevent KEYCODE_WAKEUP
-
Toggle Power menu: (adb shell) input keyevent KEYCODE_POWER
You can learn more about KeyEvent commands on the Google developers portal.
Finally, it’s time to wrap up the ADB shell commands cheat sheet. In case you need this ADB shell commands list directory for future reference, you can download this PDF file.
Read Next: How to Check Android Device Activation Date
App installation commands
Push packages to the device and install them. Possible options are the following:
- : Forward lock app.
- : Replace the existing app.
- : Allow test packages. If the APK is built using a developer preview SDK (if the is a letter instead of a number), you must include the option with the install command if you are installing a test APK.
- : Install the app on the SD card.
- : Allow version code downgrade (debugging packages only).
- : Grant all runtime permissions.
Same options as with the addition of the following:
-p: Partial app install.
Remove this app package from the device. Add the option to keep the data and cache directories.
Основные команды
Работа с ADB осуществляется через командную строку: в адресной строке папки с установленным ADB ввести cmd и нажать Enter.
После подключения андроид-устройства в окне нужно ввести adb devices. Если ПК обнаружил смартфон, в окне появится серийный номер подключенного устройства. Надпись Online сигнализирует о его готовности принимать директивы.
Инсталляция приложений через .apk происходит через команду adb install, после написания ее в этой же строке нужно указать путь из корневого каталога к установочному файлу. Для этого его можно открыть через Проводник и скопировать путь.
Аналогично проводится удаление программ через — adb uninstall. После команды нужно указать название пакета приложения. Например, com.piriform.ccleaner, чтобы удалить программу CCleaner с телефона
Важно, что удаление проводится полностью, кэш на устройстве не остается. Если важно сохранить его, в конце следует дописать ключ -k
adb push создана для передачи файлов на Android: после самой команды необходимо написать путь к файлу на ПК и место назначения (через косую черту или слэш).
adb pull – обратная сторона, с ее помощью данные копируют на компьютер со смартфона.
Команда adb reboot выручит при проблемах к управлению телефонов – она перезагрузит гаджет. При проблемах включения андроид-устройства в режим bootloader позволит перейти введение adb reboot-bootloader. В режим восстановления вводит adb reboot recovery, но она доступна лишь на некоторых ПК.
Еще несколько полезных директив (все доступные команды можно посмотреть после ввода adb help в командую строку):
- adb connect – подключение смартфона к Wi-Fi, придется указать IP-адрес и порт смартфона.
- adb shell – открывает доступ ко всем файлам телефона.
- adb fastboot devices – запрет на принятие смартфоном любых команд, fastboot oem unlock – разблокирует загрузчик.
- adb logcat – вывод содержимого log-файла, текст нужно сохранить в текстовый файл.
- adb backup и adb restore создают бэкап и проводят восстановление данных из него.
Таким образом, с помощью адб-команд можно решить массу вопросов, которые вручную делать гораздо дольше
Важно не забыть установку Android SDK, иначе работать не получится