Как включить приложение через ADB: полная инструкция

Команда adb shell am start -n com.example.app/.MainActivity запускает приложение на Android-смартфоне напрямую с компьютера, даже если сенсор экрана не работает или иконка программы пропала из меню. Именно через ADB (Android Debug Bridge) можно не только запустить уже установленное приложение, но и заново включить системный пакет, который был отключен штатными средствами или «заморожен» сторонними утилитами.

В этой инструкции разберём оба сценария: запуск работающего приложения по имени пакета и включение отключённого приложения через pm enable. Материал подходит для Windows, macOS и Linux — синтаксис команд одинаков, отличается только способ установки самого ADB.

Что понадобится перед началом работы

Для управления приложениями через ADB нужны три вещи: компьютер с установленными инструментами Android SDK Platform Tools, смартфон с активированной отладкой по USB и кабель, поддерживающий передачу данных (некоторые дешёвые кабели работают только на зарядку).

Отладка по USB включается в разделе Настройки → Для разработчиков → Отладка по USB. Если пункта «Для разработчиков» в меню нет, его активируют многократным нажатием на строку «Номер сборки» в разделе «О телефоне». Точный путь и количество нажатий зависят от оболочки и версии Android, поэтому при расхождениях сверьтесь с документацией производителя вашей модели.

  • 💻 Установленные Platform Tools от Google на компьютере
  • 🔌 Кабель USB с поддержкой передачи данных
  • 🔓 Включённая отладка по USB на смартфоне
  • ✅ Подтверждённый запрос на разрешение отладки при первом подключении

Проверка подключения устройства

Перед отправкой любых команд убедитесь, что компьютер видит смартфон. Откройте терминал или командную строку в папке с Platform Tools и выполните:

adb devices

В ответ должна появиться строка с серийным номером устройства и статусом device. Если вместо этого вы видите unauthorized, разблокируйте смартфон и подтвердите диалог разрешения отладки на его экране. Пустой список означает, что проблема в кабеле, драйверах (актуально для Windows) или выключенной отладке.

⚠️ Внимание: статус offline обычно говорит о конфликте версий ADB. Завершите процесс командой adb kill-server, затем запустите заново — adb start-server — и повторите проверку.

Как узнать имя пакета приложения

Все команды ADB работают не с названием приложения из меню, а с его именем пакета — например, com.android.settings вместо «Настройки». Узнать его можно несколькими способами.

Самый простой — вывести список всех установленных пакетов и найти нужный:

adb shell pm list packages

Чтобы не листать длинный вывод, отфильтруйте его по ключевому слову. В Windows используйте findstr, в macOS и Linux — grep:

adb shell pm list packages | grep chrome

Ещё один вариант — посмотреть пакет приложения, которое сейчас открыто на экране. Запустите программу на смартфоне и выполните на компьютере:

adb shell dumpsys window | grep mCurrentFocus
Как найти пакет отключённого приложения

Отключённые пакеты не показываются в обычном списке запущенных, но видны в полном перечне. Используйте команду adb shell pm list packages -d — флаг -d выводит только отключённые (disabled) приложения, что сильно сужает поиск.

Запуск приложения командой am start

Основной способ запустить приложение через ADB — команда am start (activity manager). Ей нужно указать пакет и главную активность:

adb shell am start -n com.android.settings/.Settings

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

adb shell monkey -p com.android.settings -c android.intent.category.LAUNCHER 1

Здесь флаг -p задаёт пакет, а единица в конце — количество генерируемых событий. Этот метод удобен тем, что не требует знать внутреннюю структуру приложения: достаточно имени пакета.

📊 С какой целью вы используете ADB для приложений?
Запуск при неработающем экране
Включение отключённых системных приложений
Автоматизация и тестирование
Просто изучаю возможности

Как включить отключённое приложение через pm enable

Если приложение было отключено в настройках Android (кнопка «Отключить») или заморожено сторонней утилитой, запустить его через am start не получится — система вернёт ошибку. Сначала пакет нужно включить обратно:

adb shell pm enable com.example.app

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

Полный порядок действий при «пропавшем» приложении выглядит так:

☑️ Возврат отключённого приложения

Выполнено: 0 / 5

⚠️ Внимание: не включайте и не отключайте системные пакеты, назначение которых вам неизвестно. Деактивация критичных компонентов (например, системного лаунчера или служб телефонии) способна нарушить работу устройства вплоть до невозможности нормальной загрузки интерфейса.

Сводная таблица команд

Ниже собраны основные команды из статьи с кратким пояснением назначения каждой.

КомандаНазначение
adb devicesПроверка подключения устройства
pm list packagesСписок всех установленных пакетов
pm list packages -dСписок только отключённых пакетов
pm enable пакетВключение отключённого приложения
monkey -p пакет 1Запуск приложения без указания активности

Типичные ошибки и их решение

При работе с ADB пользователи чаще всего сталкиваются с несколькими повторяющимися ошибками. Разберём их причины.

  • error: device not found — устройство не подключено, не подтверждена отладка или проблема с кабелем/драйвером
  • Security exception при pm enable — пакет защищён системой, и изменить его состояние без root-прав нельзя
  • Unable to resolve activity — указано неверное имя активности; используйте monkey вместо am start
  • Failure [INSTALL_FAILED...] — относится к установке APK, а не к запуску; проверьте, не путаете ли вы команды

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

Часто задаваемые вопросы

Можно ли включить приложение через ADB без root-прав?

Да, команды pm enable, am start и monkey работают без root. Ограничение касается лишь отдельных защищённых системных пакетов, состояние которых нельзя изменить без повышенных привилегий.

Чем отличается pm enable от pm install?

pm enable активирует уже установленный, но отключённый пакет — файлы приложения остаются на устройстве. pm install (или adb install) устанавливает приложение из APK-файла заново. Если пакет был полностью удалён, поможет только установка.

Как вернуть удалённое системное приложение?

Если системное приложение удалено командой pm uninstall --user 0, его можно восстановить командой adb shell cmd package install-existing имя_пакета — при условии, что APK остался в системном разделе. Этот способ работает не на всех прошивках.

Почему monkey выдаёт ошибку «No activities found»?

Такое сообщение означает, что у пакета нет активности с категорией LAUNCHER — например, это фоновая служба или библиотека без интерфейса. Проверьте, тот ли пакет вы указали, сравнив его с выводом pm list packages.

Работают ли эти команды по Wi-Fi?

Да, ADB поддерживает подключение по сети. На Android 11 и новее есть штатная функция «Беспроводная отладка» в меню разработчика; на более ранних версиях сначала требуется активировать TCP-режим по кабелю командой adb tcpip 5555, затем подключиться через adb connect IP-адрес:5555.