Команда 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-драйвера производителя.
☑️ Проверка перед выводом списка пакетов
Фильтры команды: выводим только нужное
Главная ценность 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 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 только читает данные и ничего не изменяет на устройстве. Риск появляется на следующем шаге — при удалении или отключении пакетов, поэтому просмотр можно выполнять свободно, а к изменениям подходить с проверкой назначения каждого компонента.