ADB list packages: полный гид по выводу списка приложений

Команда adb shell pm list packages выводит полный перечень пакетов, установленных на Android-устройстве, включая те приложения, которые скрыты из стандартного меню и недоступны для удаления обычным способом. Именно через этот список находят системные пакеты вида com.android.chrome или com.google.android.gms, когда нужно деинсталлировать предустановленный софт, проверить наличие конкретного компонента или подготовить устройство к диагностике.

Запрос «adb list packages» обычно возникает в трёх ситуациях: нужно узнать точное имя пакета перед удалением, отфильтровать только пользовательские приложения либо разобраться, почему команда не возвращает результат. Ниже разберём синтаксис, все полезные фильтры и типовые ошибки.

Что делает команда и как она устроена

За вывод списка отвечает Package Manager — системная служба Android, которая ведёт реестр всех установленных приложений. Команда adb shell pm list packages обращается к этой службе через оболочку устройства и возвращает пакеты в формате package:com.example.app. Префикс package: — часть вывода, а не имени пакета, поэтому при копировании имени его нужно отбрасывать.

Базовый вызов без параметров показывает вообще всё: системные компоненты, сервисы Google, пользовательские приложения и даже отключённые пакеты. На типичном смартфоне это сотни строк, поэтому на практике команду почти всегда используют с фильтрами.

adb shell pm list packages

Если устройство одно и подключено по USB, дополнительных указаний не требуется. При нескольких подключённых устройствах ADB попросит уточнить цель через флаг -s с серийным номером, который показывает команда adb devices.

Подготовка: что нужно перед запуском

Прежде чем выполнять команду, убедитесь, что на компьютере установлен Android SDK Platform-Tools — официальный пакет от Google, содержащий исполняемый файл ADB. Сторонние сборки иногда содержат устаревшую версию утилиты, из-за чего новые параметры могут не поддерживаться.

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

  • 🔌 Подключите устройство кабелем и проверьте его командой adb devices — в списке должен появиться серийный номер со статусом device.
  • 🔓 При первом подключении подтвердите на экране смартфона запрос на разрешение отладки, иначе статус будет unauthorized.
  • 💻 Запускайте терминал из папки, где лежит adb.exe, либо добавьте Platform-Tools в переменную PATH.
  • 🔑 Если устройство не определяется на Windows, проверьте установку USB-драйвера производителя.

☑️ Проверка перед выводом списка пакетов

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

Фильтры команды: выводим только нужное

Главная ценность pm list packages — в параметрах, которые сужают выборку. Чаще всего используется флаг -3: он показывает только сторонние приложения, установленные пользователем, и отсекает весь системный шум.

adb shell pm list packages -3

Обратная задача — посмотреть только системные пакеты — решается флагом -s. Это полезно при поиске предустановленного софта, который производитель не позволяет удалить штатно. Для поиска конкретного приложения по фрагменту имени достаточно дописать подстроку в конец команды: adb shell pm list packages chrome вернёт все пакеты, в имени которых встречается «chrome».

ПараметрЧто выводитПример команды
-3Только сторонние (пользовательские) приложенияadb shell pm list packages -3
-sТолько системные пакетыadb shell pm list packages -s
-dТолько отключённые пакетыadb shell pm list packages -d
-eТолько включённые пакетыadb shell pm list packages -e
-uВключая удалённые (с сохранёнными данными)adb shell pm list packages -u
подстрокаПакеты, содержащие фрагмент в имениadb shell pm list packages maps

Фильтры можно комбинировать. Например, adb shell pm list packages -d -s покажет отключённые системные компоненты — так проверяют, что именно было деактивировано ранее.

📊 Для какой задачи вы используете adb list packages
Удаление предустановленных приложений
Поиск имени пакета
Аудит установленного софта
Отладка собственного приложения

Практический сценарий: находим пакет для удаления

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

Начните с поиска по вероятному фрагменту имени — бренду или функции приложения. Если в выводе несколько похожих строк, уточните принадлежность пакета через adb shell dumpsys package имя_пакета: в подробном выводе видны версия, разрешения и путь к APK-файлу, что помогает отличить нужный компонент от одноимённого системного сервиса.

adb shell pm list packages | findstr "browser"

adb shell pm uninstall -k --user 0 com.example.browser

Конструкция --user 0 удаляет приложение только для текущего пользователя, не затрагивая системный раздел, поэтому операция обратима через сброс к заводским настройкам или переустановку пакета. Флаг -k сохраняет данные и кэш приложения. На Windows для фильтрации вывода используется findstr, на Linux и macOS — grep.

⚠️ Внимание: удаление системных пакетов через ADB может нарушить работу устройства — от потери отдельных функций до невозможности загрузки. Перед удалением незнакомого пакета выясните его назначение по имени и проверьте, не связан ли он с базовыми службами (телефония, интерфейс системы, сервисы Google). Если назначение пакета неочевидно, безопаснее отключить его командой pm disable-user вместо полного удаления.

Дополнительные параметры вывода

Помимо базовых фильтров, команда поддерживает параметры, расширяющие сам формат вывода. Флаг -f добавляет к каждой строке путь к APK-файлу на устройстве — удобно, когда нужно вытащить установочный файл конкретного приложения. Параметр -i показывает источник установки (например, магазин приложений), а -U дополняет строки числовым идентификатором UID пакета.

adb shell pm list packages -f -3

Для анализа чужого устройства или поиска потенциально нежелательного софта полезна связка -i с фильтром по пользовательским приложениям: пакеты, установленные не из официального магазина, сразу выделяются в списке. Само по себе это не доказательство вредоносности, но даёт повод проверить такие приложения внимательнее.

Почему в списке есть пакеты, которых нет в меню

Android хранит в реестре множество компонентов без иконки и лаунчера: фоновые службы, провайдеры данных, библиотеки и модули оболочки. Они не отображаются в меню приложений, но присутствуют в выводе pm list packages. Наличие незнакомого пакета без иконки — норма, а не признак проблемы.

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

Чаще всего команда «не работает» не из-за синтаксиса, а из-за проблем с подключением. Если терминал отвечает error: no devices/emulators found, ADB просто не видит устройство: проверьте кабель (некоторые кабели передают только питание), включённую отладку и драйвер.

Ошибка device unauthorized означает, что на смартфоне не подтверждён запрос на отладку. Отзовите ранее выданные разрешения в настройках разработчика, переподключите кабель и подтвердите диалог заново. Сообщение more than one device/emulator лечится указанием цели: adb -s серийный_номер shell pm list packages.

  • 🚫 'adb' is not recognized — терминал не находит утилиту; перейдите в папку Platform-Tools или пропишите её в PATH.
  • 🔄 Пустой вывод при фильтре — проверьте написание подстроки; поиск чувствителен к регистру в части имени пакета.
  • 🔁 Зависший вывод — прервите команду и выполните adb kill-server, затем adb start-server.
  • 📵 Устройство пропадает при вводе команды — возможна нестабильность USB-порта; попробуйте другой порт без хаба.
⚠️ Внимание: не путайте pm list packages с cmd package list packages. На современных версиях Android работают обе формы, но поведение отдельных флагов может различаться в зависимости от версии системы. Если параметр не срабатывает, проверьте его на актуальность в официальной документации Android Debug Bridge.

Вывод списка без USB: беспроводная отладка

На устройствах с Android 11 и новее доступна беспроводная отладка: смартфон и компьютер находятся в одной сети Wi-Fi, а подключение выполняется по IP-адресу и порту. Сначала устройство сопрягается командой adb pair с кодом из настроек разработчика, затем подключается через adb connect. После этого все команды, включая pm list packages, работают так же, как по кабелю.

Имейте в виду, что точные названия пунктов и порядок сопряжения зависят от версии Android и оболочки производителя, поэтому при расхождениях ориентируйтесь на документацию к конкретному устройству. Беспроводной режим удобен для регулярной работы, но для первой настройки надёжнее начать с кабеля — так проще диагностировать проблемы подключения.

Частые вопросы

Как вывести только приложения, установленные мной?

Используйте команду adb shell pm list packages -3. Флаг -3 отфильтровывает сторонние приложения и исключает все системные компоненты, поэтому список получается коротким и читаемым.

Почему в выводе каждая строка начинается с «package:»?

Это служебный префикс формата вывода Package Manager, а не часть имени пакета. При копировании имени для команд удаления или анализа префикс package: нужно удалить — иначе команда завершится ошибкой «пакет не найден».

Можно ли сохранить список пакетов в файл?

Да, стандартным перенаправлением вывода: adb shell pm list packages > packages.txt. Файл появится в текущей папке терминала. Такой снимок удобно хранить перед массовым удалением приложений.

Команда не находит приложение, хотя оно установлено. В чём причина?

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

Безопасно ли просто просматривать список пакетов через ADB?

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