Консольный Android: 50 команд ADB, о которых должен знать каждый

ADB (Android Debug Bridge) – консольная клиент-серверная программа, выполняет роль универсального интерфейса для управления Android-устройствами (или их эмуляторами).

Через ADB программы на компьютере можно взаимодействовать с телефоном или планшетом, например для синхронизации контактов, бэкапов данных или удаленного доступа к устройству.

Однако главное назначение ADB – это отладка приложений и сервисов при их разработке и тестировании. В этом случае взаимодействие с устройством осуществляется через консоль.

Возможности ADB:

  • просмотр подключенных устройств;
  • просмотр логов;
  • копирование файлов;
  • установка и удаление приложений;
  • скриншоты (и запись видео) экрана устройства;
  • удаление и перепрошивка раздела data;
  • запуск различных скриптов;
  • управление сетевыми параметрами.

В состав ADB входит три компонента:

  • клиент, который запускается на компьютере и отправляет команды. Его можно вызвать его из командной строки, введя команду adb;
  • демон, который запускается как фоновый процесс на Android-устройстве и выполняет команды клиента;
  • сервер, который работает в фоне на компьютере и управляет клиентом и демоном.

Как работает ADB:

  • при запуске adb-клиент проверяет наличие запущенного процесса adb-сервера, и если нет – запускает его на компьютере;
  • сервер устанавливает соединение на порту 5037 и слушает на нем команды от adb- клиентов;
  • затем сервер устанавливает соединения со всеми работающими устройствами, сканируя нечетные порты в диапазоне от 5555 до 5585. Для каждого устройства используется пара последовательных портов – порт с четным номером для соединений консоли, порт с нечетным номером – для соединений adb;
  • после того как сервер настроил соединения с устройствами, можно использовать команды adb для доступа к ним.

Основы работы с ADB

Для начала работы с ADB его следует активировать на устройстве и установить утилиту adb и драйверы на комп. Первая задача выполняется с помощью включения «Отладки по USB» в пункте настроек «Для разработчиков» (если этот пункт скрыт, нажми семь раз на номер сборки в меню «О телефоне»).

Для установки ADB на комп качаем Adb Kit и распаковываем в любую папку (рекомендую использовать названия папок без русских символов). Также скачиваем и устанавливаем драйверы ADB.

Работать с adb нужно из командной строки. Нажимаем Win + R и вводим cmd, далее переходим в папку, в которой лежит adb. Для моей папки команда будет следующей:

cd \android

Чтобы не проделывать все эти манипуляции каждый раз, можно добавить нужную папку в переменную Path. Для этого необходимо зайти в «Панель управления -> Система -> Дополнительные параметры системы -> Переменные среды», найти переменную Path и добавить в конец строки, через точку с запятой, путь до папки с adb. Теперь после запуска консоли можно сразу вводить необходимые команды.


Добавление adb в переменную Path

Другие статьи в выпуске:

Xakep #208. Атака на сигналку

  • Содержание выпуска
  • Подписка на «Хакер»-70%

Проверим наше подключение к телефону с помощью следующей команды (она должна вывести список подключенных устройств):

adb devices

С ADB можно работать через Wi-Fi. Для этого нужны права root и приложение WiFi ADB. Запускаем приложение, жмем переключатель и подсоединяемся к смартфону с помощью команды connect и показанного приложением IP-адреса:

adb connect IP-адрес

Далее работа с ADB ничем не отличается.

Как установить TWRP Recovery на Андроид через компьютер с помощью Flashtool, Odin и Fastboot

В любом смартфоне изначально установлен стоковый рекавери, который позволяет реанимировать телефон в случае сбоев, атаки вирусов и других причин, вызывающих потерю работоспособности. Также он дает возможность делать сброс системы и некоторых компонентов. Однако есть кастомное Recovery, имеющее значительно больший функционал. Один из самых известных проектов — TWRP. Но как установить TWRP Recovery? Это проще, чем вы думаете. Процедура потребует времени, но не беспокойтесь, мы опишем все максимально доступно. Главное — четко следуйте инструкции.

Зачем нужно TWRP?

TWRP означает TeamWin Recovery Project. Это кастомное рекавери для Андроид. Оно позволяет делать следующее:

  • устанавливать прошивки от сторонних разработчиков;
  • рутировать телефон;
  • создавать и восстанавливать резервные копии;
  • делать сброс Android и его компонентов;
  • управлять системными файлами;
  • инсталлировать патчи и делать еще более сложные операции.

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

Требования перед установкой

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

  1. Мы настоятельно рекомендуем создать резервную копию данных с устройства перед инсталляцией Recovery.
  2. Зарядите телефон минимум на 50-60%, чтобы избежать внезапных отключений во время инсталляции.
  3. Чтобы накатить TWRP, вы должны сначала разблокировать загрузчик устройства. О том, как это делать, читайте в профильных темах по своему устройству.
  4. Загрузите и установите USB-драйверы на ПК.
  5. Скачайте и поставьте на компьютер инструменты SDK Platform Tools (ссылка ниже).

Теперь можете переходить к установке кастомного рекавери при помощи одного из предложенных методов.

С помощью ADB Fastboot (без Root)

Метод прошивки через ADB Fastboot актуален для тех, кто не рутировал девайс.

  1. Откройте ссылку https://developer.android.com/studio/command-line/adb. Инструмент доступен для Windows, Mac и Linux, поэтому загрузите его для вашей операционной системы.
  2. Распакуйте в корневой каталог любого диска.
  3. Перейдите на официальный сайт TWRP https://twrp.me/Devices/, найдите свое устройство и загрузите образ восстановления. Если официально ваш аппарат не поддерживается, то загрузите стороннее Recovery с профильной ветки форума 4PDA или XDA.
  4. Переместите скачанный файл в директорию из второго шага и переименуйте ее в «twrp».
  5. Теперь на своем устройстве перейдите в «Настройки» — «О телефоне» (расположение меню может немного отличаться в зависимости от прошивки. Чтобы его найти, воспользуйтесь поиском по настройкам).
  6. Прокрутите вниз, чтобы найти строку «Номер сборки». Тапните по этому пункту семь раз, чтобы включить параметры разработчика.
  7. Вернитесь в основное меню настроек, а затем нажмите «Для разработчиков».
  8. Активируйте «USB Debugging» («Отладка Android»).
  9. Подсоедините телефон к десктопу с помощью USB-шнура. Внимание! Прежде чем приступить к выполнению следующих действий, еще раз рекомендуем выполнить полную резервную копию устройства. Скорее всего, эти шаги не возымеют негативных последствий, но лучше перестраховаться.
  10. На ПК откройте извлеченный каталог, в который только что скопировали загруженный документ TWRP.
  11. Зажмите «Shift» и щелкните правой клавишей мышки (ПКМ) на свободной области, чтобы запустилось окошко параметров папки.
  12. Тапните «Открыть окно PowerShell здесь».
  13. В командной панели пропишите: «adb devices»
  14. Нажмите «Enter».
  15. Если вы видите хаотичные числа, это означает, что все в порядке. Если нет, снова установите последние USB-драйверы устройства на десктоп и перейдите к предыдущему шагу. На этот раз должно сработать.
  16. Пропишите команду: «adb reboot bootloader»
  17. Клацните «Enter». Это запустит загрузчик.
  18. Когда девайс будет в режиме Bootloader, введите:«fastboot flash recovery twrp.img»
  19. Щелкните на «Enter».
  20. Запустится установка Recovery на мобильный.
  21. На девайсе (пока он в Fastboot) выберите «Recovery», нажав клавишу «Volume UP» + «Power» или кнопку «Power» (зависит от модели аппарата).
  22. Мобильник зайдет в Recovery (иногда может потребоваться несколько минут).
  23. Первое, что вы увидите, — это окошко с уведомлением «Keep System Read Only?». Здесь вам не нужно ничего делать. Просто проведите пальцем вправо, чтобы разрешить модификации.

Вы успешно поставили Recovery через Fastboot. Дальше вам надо будет только обновлять его в случае необходимости. Об этом читайте в самом конце.

С помощью официального приложения (требуется Root)

Если имеется мобильник с Root-правами, инсталляция рекавери будет еще проще.

  1. Загрузите официальное приложение TWRP из магазина Google Play.
  2. Запустите его и соглашайтесь с Условиями.
  3. Нажмите на «Установка TWRP» («TWRP Flash»).
  4. Выберите смартфон и подходящую для него сборку TWRP.
  5. Это загрузит документ — образ системы восстановления на телефон.
  6. Когда закачка будет завершена, вернитесь назад и клацните на «Выбрать файл для прошивки» («Select a file to flash»).
  7. Отметьте закачанный образ.
  8. Нажмите «Flash to Recovery».

Как видите, таким методом вы смогли накатить ТВРП еще быстрее, и не пришлось это делать через компьютер.

C помощью инструмента Odin

Odin — инструмент корпорации Samsung для прошивки и выполнения других подобных манипуляций со смартфонами компании. С помощью него можно без проблем поставить кастомное рекавери.

  1. Загрузите TWRP recovery для Samsung Odin (формат .img.tar) с сайта https://twrp.me/Devices/Samsung/.
  2. Также загрузите инструмент Odin https://samsungodin.com/, извлеките содержимое .zip-папки на свой компьютер.
  3. Откройте извлеченную директорию и запустите «Odin3.exe».
  4. Войдите в «Режим загрузки», для этого:
  • отключите телефон;
  • зажмите вместе кнопки «Home» + «Volume UP» + «Power»;
  • когда увидите надписи с предупреждениями, бросьте кнопки;
  • тапните по клавише «Громкость Вверх», чтобы выбрать «Режим загрузки» («Download Mode»).
  1. Подсоедините гаджет к ПК.
  2. COM-порт в окошке интерфейса программы Odin должен загореться.
  3. Нажмите кнопку «AP».
  4. Выберите .tar-файл, который заранее скачали.
  5. Наконец, тапните «Start», чтобы установить ТВРП.
  6. В случае успешной прошивки вы увидите всплывающее сообщение «PASS!» на экране, и телефон автоматически перезагрузится.

Вот как инсталлировать рекавери через Odin. Это даже проще, чем некоторыми другими способами, поэтому рекомендуем этот метод для владельцев смартфонов от Samsung.

C помощью SP Flash Tool

Еще один доступный метод установки ТВРП — через Flash Tool.

  1. Загрузите последнюю версию SP Flash Tool с сайта https://spflashtool.com/ и извлеките ее на комп.
  2. Загрузите Recovery, которое подходит конкретно под ваш девайс.
  3. Теперь откройте документ «flash_tool.exe», кликнув ПКМ и выбрав «Запуск от имени Администратора».
  4. Нажмите на вкладку «Download».
  5. Кликните на «Scatter-loading».
  6. Теперь выберите файл Scatter-loading file (он должен находиться в папке с прошивкой и иметь формат .txt).
  7. Убедитесь, что в списке отмечен только параметр «Recovery» (сделайте, как на скриншоте).
  8. Выключите смартфон, соедините его по USB-шнуру с настольным компьютером или ноутбуком.
  9. Нажмите кнопку уменьшения громкости, чтобы ПК обнаружил устройство.
  10. Как только прошивка закончится, появится зеленое кольцо с галочкой, сигнализирующее об успехе.
  11. Далее выдерните кабель из мобильного и перезагрузите Android-девайс.

Теперь на устройстве есть полнофункциональное Recovery, из которого можно прошиваться и получать Root-права.

Как обновить TWRP?

Рано или поздно надо будет обновить рекавери, чтобы получить новые возможности или наладить совместимость. Сделать это несложно, главное ничего не напутать.

  1. Скачайте актуальную сборку ТВРП (можете сделать это прямо со смартфона, чтобы миновать второй и третий пункт инструкции).
  2. Сконнектите мобильник с компом при помощи USB-шнура.
  3. Скопируйте только что загруженный документ во внутреннее хранилище или на SD-карту.
  4. Отключите устройство.
  5. Запустите Android в режиме восстановления.
  6. Перейдите в меню «Установить» («Install») и тапните кнопку «Установить .img» («Install .img») внизу.
  7. Выберите образ рекавери.
  8. Затем тапните «Восстановление» («Recovery») в списке разделов.
  9. Наконец, проведите пальцем по слайдеру на экране, чтобы обновить до последней версии.
  10. После этого нажмите кнопку «Перезагрузка системы» («Reboot System»).

Вот мы и рассмотрели самые простые, но универсальные способы инсталляции TWRP. Теперь вы можете делать все, что хотите, например, устанавливать кастомные прошивки (LineageOS, Pixel Experience, Resurrection Remix и др.), создавать резервные копии или рутировать устройства.

Но еще раз напоминаем, это важно: всякий раз, когда вы собираетесь использовать TWRP, сначала сделайте бэкап своих файлов. Выполнение таких задач, как прошивка новой операционки или рутирование, может привести к блокировке вашего телефона или его «окирпичиванию».

Установка программ

ADB можно использовать для установки приложений без необходимости копировать их на смартфон. Достаточно выполнить такую команду:

adb install d:/downloads/имя_файла.apk

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

Программы можно и удалять, но для этого нужно знать название пакета (как узнать, расскажу чуть позже). На примере игры Angry Birds Seasons команда будет выглядеть так:

adb uninstall com.rovio.angrybirdsseasons

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

Программа ADB входит в стандартный набор утилит Android SDK. Вы можете установить эту среду и получите нужную утилиту. Но не всегда хочется тянуть на компьютер целую среду исполнения. Иногда нужна только одна программа. Ее можно очень просто установить отдельно. В Ubuntu для этого можно выполнить команду:

sudo apt install android-tools-adb

Для Red Hat, CentOS команда будет немного отличаться:

sudo yum install android-tools-adb

Если вам нужно установить ADB в Windows, то придется скачать пакет SDK Platform Tools из официального сайта.

Бэкап приложений

В Android есть встроенные функции бэкапа, которые также можно запустить с помощью командной строки. Для этого используется команда adb backup и набор опций:

adb backup [опции] <����������

  • �����зывает имя создаваемого файла и его расположение на компе. При отсутствии ключа будет создан файл 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


Процесс бэкапа

Проблемы с прошивкой

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

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

Также при возникновении ошибок обратите внимание на «механику». Проверьте USB-провод, соединяющий ПК и Android-устройство. При бракованном проводе процесс прошивки может сбиваться без видимых причин.

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

Консоль в консоли

Наряду с упомянутой консолью, которая является 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 df


Пример работы команды ls для вывода информации о разделах

Naptime

Doze — удивительная особенность Android. Он снижает потребление заряда батареи, приостанавливая фоновую загрузку ЦП и сети, когда экран вашего устройства выключен, отключен от сети и находится в стационарном состоянии. Он был представлен в Android 6, в то время как Android 7 принес дальнейшие улучшения.

Эта функция блокирует блокировку (если есть), временно останавливает механизмы синхронизации и предотвращает сканирование Wi-Fi и GPS. Naptime улучшает реализацию Doze с большим количеством функций. Он навязывает агрессивную Doze и пинает через несколько минут после выключения экрана.

Настройка ADB

Вставьте эту команду:

. adb -d shell pm grant com.franco.doze android.permission.DUMP

Далее введите эту команду:

. adb -d shell pm grant com.franco.doze android.permission.WRITE_SECURE_SETTINGS

После получения доступа, белый список Naptime от оптимизации батареи Android (Настройки> Приложения и уведомления> Показать все приложения X> Naptime> Дополнительно> Батарея> Оптимизация батареи) чтобы он мог нормально работать.

Уникальные черты

  • Приложение простое в использовании без каких-либо сложных меню или настройки. Просто переключите параметры, перечисленные в приложении.
  • Он дает вам подробную статистику Doze и историю, чтобы узнать, когда Doze начался или остановился.
  • Если вы используете Tasker или MacroDroid, вы можете включить или отключить Doze по требованию.

Скачать: Naptime (бесплатно)

Создание скриншота

Выполняется одной строчкой:

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 1080×1920 -i fb0 fb0.png

Android-хаки, которые не нуждаются в руте

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

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

Управление приложениями

Для управления приложениями используются две команды: pm (package manager) — менеджер пакетов и am (activity manager) — менеджер активностей. У данных команд есть немало ключей, которые можно посмотреть на портале разработчиков. Остановимся на некоторых.

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

$ pm list packages

Добавив в конец -s, ты увидишь только системные приложения, -3 — только сторонние, -f покажет пути установки пакетов, а -d — отключенные приложения. Далее, зная названия пакетов, можно совершать над ними различные насильственные действия :). Например, отключить ненужный календарь:

$ pm disable com.google.android.calendar

Очистить данные:

$ pm clear com.dropbox.android

Ну а совсем удалить можно так:

$ pm uninstall com.dropbox.android

Для использования activity manager понадобятся более глубокие знания структуры Android и понимание того, что такое Avtivity и Intent. Это позволит тебе запускать различные приложения, например браузер или настройки:

$ am start -n com.android.browser/.BrowserActivity $ am start -n com.android.settings/.Settings

Завершить работу приложения можно противоположной командой:

$ am kill com.android.browser

Ну а убить все запущенные приложения — такой командой:

$ am kill-all

Тот же activity manager поможет сделать звонок на нужный номер телефона:

$ am start -a android.intent.action.CALL tel:123

А так можно открыть страницу в браузере:

$ am start -a android.intent.action.VIEW ‘http:/xakep.ru’


Запуск браузера из консоли

А с помощью вариации предыдущей команды можно отправить СМС:

$ am start -a android.intent.action.SENDTO -d sms:НОМЕР_ТЕЛЕФОНА —es sms_body «ТЕКСТ_СМС» —ez exit_on_sent true $ input keyevent 22 $ input keyevent 66

В данной команде input keyevent эмулирует нажатие кнопок и может использоваться как для хардварных, так и для кнопок внутри приложения. В нашем примере 22 соответствует перевод фокуса вправо (джойстик вправо — dpad right), а 66 — Enter.

С помощью команды input можно, например, разблокировать телефон. Для этого необходимо ввести:

$ input keyevent 82

Погасит экран keyevent 26, что соответствует нажатию кнопки Power. Можно также поэкспериментировать с цифрами 3 — Home, 4 — Back, 24 — Volume Up, 25 — Volume Down, 27 — физическая кнопка Camera. Последнюю кнопку можно передать и через широковещательные сообщения (полный список широковещательных сообщений ты найдешь тут):

$ am broadcast -a android.intent.action.CAMERA_BUTTON

Другое широковещательное сообщение переведет телефон в режим самолета:

$ am broadcast -a android.intent.action.AIRPLANE_MODE —ez state true

Но данная команда не сработает на последних версиях Android. Для управления питанием и беспроводными коммуникациями там используется утилита svc. Например, включить передачу данных через мобильную сеть или управлять Wi-Fi можно через команды

$ svc data enable $ svc wifi disable

Также можно заставить смартфон оставаться включенным при подключении к USB-порту/зарядке/Wi-Fi-сети или всегда:

$ svc power stayon usb $ svc power stayon ac $ svc power stayon wireless $ svc power stayon true

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

$ input text «Текст для вставки»

Кроме опции text, у команды input есть и другие. Полная форма команды такова:

$ input [] […]

В качестве источника можно указывать trackball, joystick, touchnavigation, mouse, keyboard, gamepad, touchpad, dpad, stylus, touchscreen. В качестве команд будут:

  • text (Default: touchscreen) [delay]
  • keyevent [–longpress] … (Default: keyboard)
  • tap (Default: touchscreen)
  • swipe [duration(ms)] (Default: touchscreen)
  • press (Default: trackball)
  • roll (Default: trackball)

Как видно из команд, можно, хотя и с трудом, управлять устройством через команды input touch и input swipe при разбитом экране, если не поддерживается работа мышки через USB-OTG. Например, вытянуть шторку с уведомлениями получится так (отсчет координат идет от левого верхнего угла):

$ input swipe 10 10 10 1000

А так можно узнать разрешение экрана:

$ dumpsys window | \sed -n ‘/mUnrestrictedScreen/ s/^.*) \([0-9][0-9]*\)x\([0-9][0-9]*\)/\1 \2/p’

Для Nexus 5 разрешение выдаст 1080 х 1920. Тогда нажать на кнопку «Меню приложений» стандартного лаунчера от Google, которая находится над кнопкой «Домой», можно так:

$ input touchscreen tap 500 1775

Скрипты

Выполнение всех описываемых в статье серий команд можно автоматизировать. Для этого вставляем их в текстовый файл (строки, следующие за adb shell), который имеет в начале строку #!/system/bin/sh, сохраняем с расширением sh и закидываем на устройство. После этого можно запускать скрипт через тот же adb:
adb shell sh /sdcard/имя_файла.sh

Выставление permission, прав файлам и директориям

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

ls -n

Права Доступа (permission)

И так мы знаем, что существуют пользователи, группы. Теперь поговорим о правах доступа. Для чего этого необходимо? Например у вас есть директория в которой находятся личные файлы. Чтобы вы, владелец, например могли редактировать, просматривать файлы, группа, только видеть данные, файлы, а остальные пользователи которые не входят ни в одну из групп и не являются владельцами, вообще не могли ничего сделать, вот поэтому и необходимы права доступа.

Права на файл могут обозначаться цифрами и буквами:

ЦифрамиБуквами
Чтение4r
Запись2w
Выполнение1x
0

Значения прав в цифрах суммируются:

  • полные права (rwx) 7 = 4 + 2 +1
  • чтение и запись (rw-) 6 = 4 + 2 + 0
  • чтение и выполнение (r-x) 5 = 4 + 0 + 1
  • только чтение 4 (r—) = 4 + 0 + 0
  • только запись 2 (-w-) = 0 + 2 + 0
  • права отсутствуют (—) 0 = 0 + 0 + 0

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

ВладелецГруппаОстальные
ugo
права доступа буквыправа доступа цифры
rwxrwxrwx777читают, записывают, выполняют все
rwxr-xr-x755читает, записывает, выполняетчитать и запускать
rw-r—r—644чтение и записьтолько чтение
r———400читает только владелец

Изменять права доступа на файл или директорию командой chmod можно как числами, так буквами.

Назначение прав доступа цифрами

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

sudo chmod 755 text.txt

Для директорий необходимо после chmod добавить ключ -R.

Назначение прав доступа буквами

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

Как вы знаете что есть владелец, группа, остальные пользователи, они обозначаются следующим образом:

uuserВладелец
ggroupПользователи, входящие в группу
oothersОстальные пользователи
aallВсе пользователи

Права доступа можно назначать, убирать или присваивать:

+добавить права
удалить права
=установить права

Установить права на файл «rwxr-xr-x» (755):

sudo chmod u=rwx,g=rx,o=rx text.txt

Добавить права на выполнение владельцу, удалить выполнение для группы, удалить запись и выполнение для остальных:

sudo chmod u+x,g-x,o-wx text.txt

Добавить возможность всем (пользователь, группа. остальных) читать:

sudo chmod a+r text.txt

Для изменения прав доступ директориям необходимо использовать ключ -R:

sudo chmod
-R a+r imya_papki

Системные утилиты

Кратко остановлюсь на нескольких полезных командах (работоспособность некоторых, однако, может зависеть от версии прошивки и модели телефона).

Изменение DPI. Не требует root и работает на Android 5.0+. Стандартное значение для Nexus 5 — 480. При значении 420 на рабочем столе стокового лаунчера помещается пять иконок в ряд вместо четырех:

$ wm density 420 && adb reboot

Подключение /system в режиме записи. Для части команд, которые меняют системные файлы, необходимо сначала перемонтировать раздел /system на запись. Это необходимо в том числе при удалении системных приложений. Перемонтирование выполняется следующей командой:

$ su # mount -o rw,remount /system

Мягкая перезагрузка:

$ setprop ctl.restart zygote

Перевод смартфона в режим энергосбережения Doze (Android M+):

$ dumpsys battery unplug $ dumpsys deviceidle step

…повторяем действия, пока не увидим idle.

Батарейка в процентах (Android 4.4+):

$ content insert —uri content://settings/system —bind name:s:status_bar_show_battery_percent —bind value:i:1

Перезагрузка Android. ADB Reboot

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

adb reboot

Команды перезагрузят Android в нормальный режим (обычная перезагрузка):

adb reboot или adb reboot normal

Команда перезагрузит Android в режим загрузки Bootloader:

adb reboot bootloader

Команда перезагрузит Android в режим Recovery:

adb reboot recovery

Управление Android. ADB SHELL

Перейти в управление Android, после чего можно использовать linux команды ОС Android.

Весь потенциал Android раскрывается после того когда вы переходите в управление Android где доступны многие команды linux.

adb shell

Снятие логов

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

adb logcat > logcat.txt

Все события будут записываться непрерывно по мере работы устройства. Остановить запись можно стандартной комбинацией Ctrl + C. Однако в лог попадает вся информация, что сильно затрудняет поиск нужной. Поэтому для работы обычно используют набор ключей и фильтров, подходящих к конкретной ситуации. Существует семь приоритетов сообщений по мере возрастания: V — Verbose, D — Debug, I — Info, W — Warning, E — Error, F — Fatal, S — Silent. Например, для вывода всех сообщений с приоритетом Е и выше следует ввести:

adb logcat *:E

После этого можно запускать проблемное приложение и смотреть, что именно вызывает ошибку. Также поддерживается вывод информации из альтернативных буферов. Этим способом можно посмотреть, что приложения делают в фоне и, например, какие события происходят после включения экрана:

adb logcat -b events


Вывод команды adb logcat -b events

Лучшая статистика батареи

Поиск приложений, вызывающих разрядку аккумулятора телефона, — загадка. Откуда вы знаете, что конкретное приложение переходит в состояние сна, когда вы выходите из него? И как вы можете измерить эффективность приложений для экономии заряда аккумулятора, таких как Naptime?

Better Battery Stats извлекает подробные данные о вашей батарее. Он показывает приложения, которые выводят ваше устройство из состояния глубокого сна, обнаруживает необычные изменения в поведении и происходящем за кулисами, а также собирает информацию об использовании приложений и блокировках пробуждения. Данные отображаются в разных категориях — начиная с загрузки, отключения, отключения экрана и т. Д.

Настройка ADB

Ранее это приложение было доступно только для рутованных устройств. Но с АБР любой может начать использовать его. Вставьте и выполните эти команды по порядку:

. adb -d shell pm grant com.asksven.betterbatterystats android.permission.BATTERY_STATS . adb -d shell pm grant com.asksven.betterbatterystats android.permission.DUMP . adb -d shell pm grant com.asksven.betterbatterystats android.permission.PACKAGE_USAGE_STATS

Уникальные черты

  • Показывает экран по отношению к бодрствующему. В идеале время экрана должно быть равно времени пробуждения.
  • Найдите изменения в профиле пробуждения / сна и быстро определите мошеннические приложения.
  • Статистика заряда батареи показывает вам подробные метрики Doze, чтобы вы могли проверить, насколько эффективны приложения по экономии заряда батареи.
  • Он может выбирать приложения, которые приводят к частичным wakelocks или приложениям, которые используют CPU в wakelocks ядра.

Скачать: Лучшая Статистика Батареи (2 $)

Продвинутый уровень

В одной из своих статей я показывал, как можно доставать информацию из баз данных различных приложений. Ну а теперь посмотрим, как проделать это прямо из консоли, не качая базы на комп и не устанавливая на устройство просмотрщики баз. Для этого используется команда 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(/[-() name]/,»»,$2);print $2″ «$3}’| sed ‘s/,//g’ >/sdcard/contacts.txt

Снятие графического ключа, PIN, facelock

Допустим, ты забыл PIN или не совсем трезвым поставил графический ключ, ну или друзья пошутили и поставили распознавание по лицу… Так вот, если устройство по какой-то причине заблокировано, то блокировку можно снять (при условии включенной отладки по USB) через ту же консоль:

adb shell $ su # cd /data/system # rm *.key

Команда удалит все пароли и графические ключи. Сами файлы в зависимости от прошивки и модели устройства могут быть: gesture.key, password.key, cm_gesture.key, personalpattern.key, personalbackuppin.key. Также за блокировку отвечают файлы locksettings.db, locksettings.db-shm, locksettings.db-wal.

После этого достаточно перегрузить устройство и ввести любой ключ, пароль. Если это не помогает, можно попробовать следующее:

adb shell $ cd /data/data/com.android.providers.settings/databases $ sqlite3 settings.db > update system set value=0 where name=’lock_pattern_autolock’; > update system set value=0 where name=’lockscreen.lockedoutpermanently’;

Рейтинг
( 2 оценки, среднее 4.5 из 5 )
Понравилась статья? Поделиться с друзьями:
Для любых предложений по сайту: [email protected]