Что такое ADB на Андроиде, какие функции он дает и безопасно ли​ им пользоваться

Что такое ADB на Андроиде, какие функции он дает и безопасно ли​ им пользоваться

Разбираем популярные сценарии применения инструмента для раз­ра­бот­чиков
2
Аватар автора

Антон Курилов

сам контролирует, что установлено на его смартфоне

Страница автора

В работе со смартфоном на Андроиде появляются новые возможности, если подключить его к ПК.

Через командную строку можно получить доступ к самым тонким настройкам устройства. Это называется работой через ADB. Расскажу, что это на самом деле такое, как пользоваться ADB, что там можно делать и насколько это безопасно.

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

Что такое Android Debug Bridge и Shizuku

В Андроиде есть особое приложение для разработчиков — Android Debug Bridge, или ADB. С его помощью можно взаимодействовать с программами через командную строку. Инструмент нужен для тестирования и отладки аппов.

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

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

Кроме того, авторы предлагают другим разработчикам способ внедрить расширенные возможности Shizuku в их приложения. Благодаря этому вокруг проекта возникла целая экосистема инструментов с функциями, которые недоступны в Андроиде по умолчанию. Полный список приложений с поддержкой Shizuku есть на GitHub. Вот лишь несколько полезных примеров:

  1. SystemUI Tuner позволяет убрать ненужные значки из строки состояния. А еще настроить, какие сетевые функции отключает режим полета, установить уровень заряда батареи, при котором активируется режим энергосбережения, и так далее.
  2. TapTap умеет назначать действия на двойное постукивание пальцем по задней крышке смартфона.
  3. TakoStats отображает поверх всех приложений текущую частоту кадров в секунду, загрузку процессора и другую статистику.

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

Как установить и активировать Shizuku

Shizuku официально доступно в Google Play, поэтому его можно установить как обычное приложение. Или, если удобнее, скачать установочный файл с GitHub вручную.

Если ваш смартфон работает на Android 11 или новее, активировать Shizuku можно прямо с устройства. Под это условие подходят смартфоны, выпущенные в последние два-три года. Чтобы проверить наверняка, перейдите в «Настройки». Путь к информации о версии операционной системы зависит от оболочки бренда:

  1. Samsung. «Настройки» → «Об устройстве» или «Сведения о телефоне» → «Сведения о ПО» → «Версия Android».
  2. Realme. «Настройки» → «Об устройстве» → «Версия Android».
  3. Xiaomi и Google Pixel. «Настройки» → «О телефоне» → «Версия Android».
  4. Honor. «Настройки» → «Система» → «О телефоне» → «Версия Android».

Если у вас смартфон другого производителя, воспользуйтесь поиском по системным настройкам по фразе «Версия Android».

Shizuku использует инструмент отладки по Wi-Fi. Чтобы его активировать, понадобится включить настройки для разработчиков. Вот как это сделать:

  1. Откройте «Настройки» → «О телефоне» или «Сведения о телефоне».
  2. Найдите пункт «Номер сборки» и быстро нажмите на него семь раз подряд.
  3. Введите пин-код или разблокируйте смартфон отпечатком, если он того потребует.
  4. Убедитесь, что в разделе «Настройки» → «Система» или «Дополнительные настройки» появился пункт «Для разработчиков».
Если настройки для разработчиков активированы, нажатие на «Номер сборки» будет вызывать такое сообщение
Если настройки для разработчиков активированы, нажатие на «Номер сборки» будет вызывать такое сообщение

На смартфонах некоторых производителей процесс активации настроек для разработчиков может отличаться. Например, на моделях Xiaomi нужно семь раз нажимать на пункт «Версия MIUI» или «Версия ОС».

Переходим к запуску Shizuku. Инструкция достаточно объемная:

  1. Подключите смартфон к любой сети Wi-Fi — это необходимо для работы беспроводного режима отладки.
  2. Откройте приложение Shizuku и нажмите на кнопку «Подключение».
  3. Приложение попросит выдать разрешение на отправку уведомлений. Нажмите на кнопку «Настройки уведомлений» → «Показывать все уведомления приложения Shizuku».
  4. Вернитесь назад и нажмите на кнопку «Для разработчиков». Приложение откроет настройки для разработчиков, где нужно найти параметр «Отладка по Wi-Fi». Перейдите туда, нажав слева от вертикального разделителя.
  5. В меню «Отладка по Wi-Fi» активируйте переключатель и нажмите на кнопку «Подключить устройство с помощью кода подключения».
  6. На экране появится шестизначный код. В этот момент Shizuku покажет уведомление. Нажмите на кнопку «Введите код подключения» в нем и укажите в поле шестизначный код. Если все пройдет успешно, Shizuku покажет уведомление «Сопряжение выполнено».
  7. Вернитесь на главный экран Shizuku, нажмите кнопку «Запустить» и дождитесь завершения операции. На главном экране Shizuku должна появиться надпись «Shizuku запущен».
Действий много, но спустя пару⁠-⁠тройку повторений все шаги отложатся в памяти
Действий много, но спустя пару⁠-⁠тройку повторений все шаги отложатся в памяти
Действий много, но спустя пару⁠-⁠тройку повторений все шаги отложатся в памяти
Действий много, но спустя пару⁠-⁠тройку повторений все шаги отложатся в памяти
Действий много, но спустя пару⁠-⁠тройку повторений все шаги отложатся в памяти
Действий много, но спустя пару⁠-⁠тройку повторений все шаги отложатся в памяти
Действий много, но спустя пару⁠-⁠тройку повторений все шаги отложатся в памяти
Действий много, но спустя пару⁠-⁠тройку повторений все шаги отложатся в памяти

Для смартфонов с более старой версией ОС придется активировать Shizuku с помощью компьютера и командной строки. Это более сложный способ.

Сначала нужно установить компонент для разработки SDK Platform Tools на компьютер. Актуальная версия инструмента доступна по этим ссылкам: скачиваемый файл для Windows, для macOS. На устройство скачается ZIP-архив, который следует распаковать в любую папку.

Для Windows еще может потребоваться USB-драйвер, который подходит к вашей модели смартфона. Ссылки на файлы от популярных производителей есть на сайте Android Developers.

Теперь активируем необходимые параметры на смартфоне:

  1. Включите настройки для разработчиков по инструкции выше.
  2. В разделе «Настройки» → «Система» или «Дополнительные настройки» → «Для разработчиков» найдите и активируйте параметр «Отладка по USB». Подтвердите команду во всплывающем окне.
  3. Подключите смартфон к компьютеру через USB-кабель с поддержкой передачи данных. Провод из комплекта смартфона наверняка подойдет.
  4. Телефон покажет уведомление с настройками USB. Нажмите на него и выберите режим работы «Передача файлов».

🪟 Дальнейшие шаги для Windows:

  1. Откройте распакованный архив в «Проводнике».
  2. Зажмите клавишу Shift и нажмите на правую кнопку мыши в любом свободном месте «Проводника».
  3. В контекстном меню выберите пункт «Открыть окно PowerShell здесь».
  4. Убедитесь, что смартфон подключен к компьютеру, а затем введите в терминал команду adb devices и нажмите Enter.
  5. На экране смартфона появится предложение разрешить отладку по USB с этого компьютера. Подтвердите операцию.
  6. Вновь активируйте команду adb devices в терминале.
  7. Если все прошло успешно, на экране появится устройство с серийным номером.
  8. Теперь введите команду adb shell sh/​sdcard/​Android/​data/​moe.shizuku.privileged.api/start.sh и нажмите Enter.
  9. Убедитесь, что на главном экране Shizuku появилась надпись «Shizuku запущен».
Нужно, чтобы под надписью List of devices attached был серийный номер. Источник: xda⁠-⁠developers.com
Нужно, чтобы под надписью List of devices attached был серийный номер. Источник: xda⁠-⁠developers.com

🍎 А вот что нужно сделать, если у вас macOS:

  1. Откройте Finder, в строке меню выберите «Вид» → «Показать строку пути». В нижней части окна появится путь до текущей директории.
  2. Откройте распакованный архив в Finder.
  3. Кликните правой кнопкой мыши по названию текущей папки в строке пути и выберите «Открыть в терминале».
  4. На экране появится командная строка. Убедитесь, что смартфон подключен к компьютеру, а затем введите в терминал команду ./adb devices и нажмите Enter.
  5. На экране смартфона появится предложение разрешить отладку по USB с этого компьютера. Подтвердите операцию.
  6. Вновь активируйте команду ./adb devices в терминале.
  7. Если все прошло успешно, на экране появится устройство с серийным номером.
  8. Теперь введите команду ./adb shell sh/sdcard/​Android/​data/​moe.shizuku.privileged.api/​start.sh и нажмите Enter.
  9. Убедитесь, что на главном экране Shizuku появилась надпись «Shizuku запущен».
Повод указать в резюме опыт работы с командной строкой
Повод указать в резюме опыт работы с командной строкой

Какие есть нюансы. Из-за системных ограничений Shizuku придется активировать после каждой перезагрузки смартфона. Если вы планируете использовать инструмент только для удаления программ, можно запускать Shizuku только перед этой процедурой.

Некоторые производители смартфонов на Андроиде затрудняют работу сервисов с фоновыми процессами и доступом к отладке. Ограничения можно обойти — конкретные шаги зависят от оболочки:

  1. MIUI или HyperOS (Xiaomi, Redmi, Poco) — включите опцию «Отладка по USB (Настройки безопасности)» в меню «Для разработчиков». Это отдельная опция, которая существует параллельно с «Отладкой по USB».
  2. ColorOS (Oppo, OnePlus) — отключите опцию «Мониторинг разрешений» в меню «Параметры разработчика».
  3. Flyme (Meizu) — в настройках приложения «Безопасность» отключите опцию «Защита платежей Flyme».

Что можно сделать при помощи ADB

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

Чтобы работать с ADB через командную строку, воспользуйтесь инструкцией выше про активацию Shizuku для Android 10 и более старых версий. На компьютер надо будет установить SDK Platform Tools, а затем активировать на смартфоне отладку по USB и подключить телефон к компьютеру при помощи кабеля. Чтобы установить соединение ADB с устройством, повторите шаги из раздела выше в зависимости от операционной системы вашего компьютера вплоть до повторного ввода команды adb devices.

Подробный список команд Android Debug Bridge есть на сайте Automate The Planet — он на английском языке. Вот несколько примеров.

Примеры команд Android Debug Bridge

КомандаЗначение
adb shell install <⁠path>Установка приложения. Вместо <⁠path> укажите полный путь к файлу с расширением APK. Например: C:\Users\​myname\​Downloads\​app.apk
pm uninstall -k --user 0 <⁠package>Удаление любого приложения, в том числе предустановленного. Вместо <⁠package> укажите название пакета нужной программы — его можно узнать в настройках. Например, название пакета приложения Google — com.​google.​android.googlequicksearchbox
adb backup -apk -shared -all -f backup.abРезервное копирование всех приложений и настроек. На экране смартфона появится предложение задать пароль бэкапа. Процедура займет несколько минут, файл копии появится на компьютере
adb restore backup.abВосстановление созданного бэкапа
adb shell dumpsys batteryПолучение статуса аккумулятора. Можно узнать текущую температуру и вольтаж батареи
adb rebootПерезагрузка устройства

Примеры команд Android Debug Bridge

adb shell install <⁠path>
ЗначениеУстановка приложения. Вместо <⁠path> укажите полный путь к файлу с расширением APK. Например: C:\Users\​myname\​Downloads\​app.apk
pm uninstall -k --user 0 <⁠package>
ЗначениеУдаление любого приложения, в том числе предустановленного. Вместо <⁠package> укажите название пакета нужной программы — его можно узнать в настройках. Например, название пакета приложения Google — com.​google.​android.​googlequicksearchbox
adb backup -apk -shared -all -f backup.ab
ЗначениеРезервное копирование всех приложений и настроек. На экране смартфона появится предложение задать пароль бэкапа. Процедура займет несколько минут, файл копии появится на компьютере
adb restore backup.ab
ЗначениеВосстановление созданного бэкапа
adb shell dumpsys battery
ЗначениеПолучение статуса аккумулятора. Можно узнать текущую температуру и вольтаж батареи
adb reboot
ЗначениеПерезагрузка устройства

Если вы запускаете команды с компьютера Apple, каждую команду начинайте с символов ./, например ./adb shell.

ADB используют и сторонние приложения. Кроме Shizuku есть другие интересные применения. Например, утилита scrcpy умеет транслировать экран смартфона на компьютер. Можно управлять устройством с помощью мыши, клавиатуры и трекпада. Инструмент тоже требует установки SDK Platform Tools и запуска режима отладки по USB. Все инструкции на английском языке есть на GitHub-страничке проекта.

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

Так выглядит интерфейс управления установленными приложениями в ADB AppControl. Источник: adbappcontrol.com
Так выглядит интерфейс управления установленными приложениями в ADB AppControl. Источник: adbappcontrol.com

Как удалить предустановленные приложения на смартфоне с Android через ADB

Для удаления системных и предустановленных приложений рекомендую воспользоваться утилитой Canta. Она подключается к системным интерфейсам через Shizuku — вне зависимости от того, каким образом вы его активировали. Интерфейс программы не переведен на русский язык, но очень простой и понятный.

Canta можно скачать с GitHub или из стороннего магазина приложений F⁠-⁠Droid. Вот инструкция по загрузке и установке с GitHub:

  1. Перейдите на страницу проекта в GitHub со смартфона.
  2. В разделе Assets обратите внимание на список ссылок. Если смартфон выпущен в последние три-четыре года, подойдет вариант app-arm64-v8a-release.apk, для более старых — app-armeabi-v7a-release.apk. Если таких вариантов нет, выбирайте app-release.apk. Нажмите на нужную ссылку, и установочный файл скачается в память устройства.
  3. Установите приложение — в Т⁠—⁠Ж есть большая инструкция, как поставить на смартфон с Android аппы из неизвестных источников.
  4. Откройте Canta как обычное приложение.
Приложение регулярно обновляется
Приложение регулярно обновляется

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

  • Recommended — эти приложения не несут особой пользы, поэтому их можно безболезненно удалить.
  • Advanced — удаление таких приложений незначительно нарушает повседневную работу операционной системы. Например, таким ярлыком помечаются браузер, клавиатура и галерея по умолчанию. Но им можно найти замену.
  • Expert — такие приложения влияют на важные функции Android, но их удаление не приводит к бесконечной перезагрузке смартфона.
  • Unsafe — удаление приложения с таким ярлыком почти наверняка вызовет бесконечную перезагрузку смартфона.

Все предустановленные приложения также сопровождаются меткой System.

Расскажу о процессе отключения приложений на своем примере. Производитель моего смартфона предустановил приложение Google TV. Я им не пользуюсь, а Canta помечает сервис ярлыком Recommended. Чтобы удалить Google TV, достаточно отметить его галочкой, а затем нажать на кнопку со значком корзины внизу и подтвердить действие. В первый раз приложение попросит доступ к Shizuku.

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

В меню с тремя точками вверху есть опция Only system, чтобы оставить в списке только предустановленные приложения
В меню с тремя точками вверху есть опция Only system, чтобы оставить в списке только предустановленные приложения
В меню с тремя точками вверху есть опция Only system, чтобы оставить в списке только предустановленные приложения

Как восстановить удаленные приложения

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

  1. Откройте приложение Canta и переключитесь на вторую вкладку, которая отмечена значком корзины с крестиком.
  2. Отметьте галочкой аппы, которые хотите восстановить.
  3. Нажмите на зеленую кнопку внизу — приложения снова станут доступны для работы.

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

Восстановление происходит мгновенно
Восстановление происходит мгновенно

Безопасно ли пользоваться Android Debug Bridge

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

Главный принцип: перед вводом команды в терминале убедитесь, что вы понимаете ее смысл. Например, стоит осторожно использовать команды со словом wipe (стереть): есть комбинации, которые удаляют все пользовательские данные из памяти смартфона.

Мы постим кружочки, красивые карточки и новости о технологиях и поп-культуре в нашем телеграм-канале. Подписывайтесь, там классно: @t_technocult

Антон КуриловКакие из предустановленных приложений на Андроиде вас особенно сильно бесят?
  • AlexanderЕсли в телефоне с включенным ADB у вас есть что-то важное типа банковских приложений, нужно обязательно отключать ADB после того, как вы выполнили действия, для которых его включали. Почему. Если вы теряете телефон и он попадает не в те руки, с включенным ADB скорее всего будет возможно в т.ч. читать пуш-уведомления от приложений без разблокировки телефона. (хотя не думаю что с adb вайпнуть нужные настройки входа проблема)0
  • сапер Водичка&gt;Антон Курилов сам контролирует, что установлено на его смартфоне блаженны верующие......0