pm list packages: полное руководство по команде для Android

Команда pm list packages выводит имена всех пакетов, установленных на Android-устройстве, и используется через ADB, эмулятор терминала или root-терминал для поиска конкретного приложения перед его отключением, удалением или очисткой данных. Если вы подключили смартфон к компьютеру и в терминале видите длинный список строк вида package:com.google.android.gms, значит, команда отработала корректно — осталось понять, как фильтровать вывод и что делать с результатом дальше.

В этой статье разберём синтаксис команды pm list packages, полезные ключи и фильтры, способы найти нужное приложение по части названия, а также безопасные действия с пакетами. Отдельно остановимся на типичных ошибках вроде «device not found» и «permission denied», с которыми сталкиваются при первом запуске ADB.

Что делает команда pm list packages

Утилита pm (Package Manager) — это системный инструмент Android, который управляет установленными приложениями. Подкоманда list packages запрашивает у системы перечень всех зарегистрированных пакетов: как пользовательских, так и системных. Каждая строка вывода содержит префикс package: и уникальное имя пакета в формате обратного домена, например com.whatsapp или com.android.settings.

Имя пакета — это не то же самое, что название приложения на рабочем столе. Иконка может называться «Камера», а пакет — com.android.camera2 или иметь фирменное имя производителя. Именно поэтому команда полезна: она показывает реальный идентификатор, который нужен для дальнейших команд вроде pm uninstall или pm disable.

Запустить команду можно несколькими способами: через ADB с компьютера, в приложении-терминале на устройстве с root-доступом или через adb shell. Без root базовый вывод списка доступен всем — ограничения касаются только действий по изменению пакетов.

Как запустить команду через ADB

Для работы через компьютер потребуется включить отладку по USB на смартфоне и установить инструменты платформы Android SDK (platform-tools) на ПК. Путь к пункту «Отладка по USB» находится в разделе «Для разработчиков», который открывается после нескольких нажатий на «Номер сборки» в сведениях о телефоне. Точное расположение пунктов зависит от оболочки производителя, поэтому при расхождениях сверьтесь с инструкцией для своей модели.

После подключения устройства кабелем выполните в терминале компьютера:

adb devices

adb shell pm list packages

Первая команда проверяет, что устройство определилось: в списке должна появиться строка с серийным номером и статусом device. Если статус unauthorized — на экране смартфона нужно подтвердить разрешение на отладку. Только после этого вторая команда вернёт список пакетов.

☑️ Подготовка к работе с pm list packages

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

Полезные ключи и фильтры команды

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

КомандаЧто показывает
pm list packages -sТолько системные приложения
pm list packages -3Только сторонние (установленные пользователем)
pm list packages -dОтключённые пакеты
pm list packages -eВключённые пакеты
pm list packages -fПакеты с путями к APK-файлам

Для поиска по части имени добавьте строку-фильтр в конец команды. Например, pm list packages google покажет все пакеты, в имени которых встречается «google». На компьютере удобно комбинировать вывод с поиском по тексту: в Windows — через findstr, в Linux и macOS — через grep.

adb shell pm list packages | grep camera
  • 🔍 Фильтр по слову — самый быстрый способ найти пакет конкретного приложения.
  • 📦 Ключ -f помогает понять, где физически лежит APK, что полезно перед резервным копированием.
  • 🚫 Ключ -d покажет, какие системные компоненты уже отключены — удобно для проверки после «чистки» прошивки.
  • 👤 Ключ --user 0 уточняет профиль пользователя, что важно на устройствах с несколькими учётными записями.

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

Самая частая проблема — сообщение error: no devices/emulators found. Оно означает, что ADB не видит устройство: не включена отладка по USB, не установлен драйвер (актуально для Windows), неисправен кабель или не подтверждён запрос на экране смартфона. Проверяйте эти пункты по очереди, начиная с adb devices.

⚠️ Внимание: некоторые кабели USB поддерживают только зарядку и не передают данные. Если устройство не определяется ни в одной программе, первым делом попробуйте другой кабель и другой порт компьютера.

Ошибка permission denied при выполнении команд в терминале на самом устройстве обычно указывает на отсутствие root-прав: часть функций pm доступна только системе. При этом сам просмотр списка пакетов через adb shell root не требует — ограничения касаются удаления и отключения защищённых компонентов.

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

📊 Для чего вы используете pm list packages?
Удаление предустановленных приложений
Поиск имени пакета для ADB-команд
Диагностика и анализ системы
Резервное копирование списка приложений

Что можно делать с найденными пакетами

После того как нужный пакет найден, с ним выполняют типовые операции. Отключение системного приложения без удаления: pm disable-user --user 0 имя_пакета. Удаление для текущего пользователя с сохранением возможности восстановления через сброс: pm uninstall -k --user 0 имя_пакета. Очистка данных приложения: pm clear имя_пакета.

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

Команда pm uninstall -k --user 0 не стирает приложение из системного раздела: она удаляет его только для указанного пользователя, и после сброса к заводским настройкам пакет вернётся. Это обратимая операция, поэтому она предпочтительнее радикальных методов с root-доступом.

Просмотр дополнительной информации о пакете

Когда имя пакета известно, полезно посмотреть его подробные параметры. Команда adb shell dumpsys package имя_пакета выводит версию, разрешения, путь установки и состояние приложения. Вывод объёмный, поэтому его тоже удобно фильтровать через grep по словам вроде versionName или firstInstallTime.

Короткий путь к APK даёт команда adb shell pm path имя_пакета. Она пригодится, если нужно выгрузить установочный файл приложения на компьютер для анализа или переноса.

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

Сначала выполните adb shell pm path имя_пакета — команда вернёт путь вида /data/app/.../base.apk. Затем скопируйте файл командой adb pull путь_к_apk на компьютер. Для split-приложений путей может быть несколько — выгружать нужно все части.

  • 🧩 pm path — показывает расположение APK без лишнего вывода.
  • 📋 dumpsys package — полный отчёт о разрешениях и версиях.
  • 🔄 pm enable — возвращает отключённый пакет в рабочее состояние.

FAQ: частые вопросы о pm list packages

Нужен ли root для команды pm list packages?

Нет. Просмотр списка пакетов через adb shell доступен без root-прав. Root требуется только для отдельных действий с защищёнными системными компонентами.

Почему в списке нет приложения, которое установлено на телефоне?

Проверьте, не ищете ли вы его по названию с иконки вместо имени пакета. Используйте фильтр по части слова, например pm list packages whats вместо «WhatsApp». Также приложение может быть установлено в другом пользовательском профиле — добавьте ключ --user с нужным идентификатором.

Можно ли выполнить команду без компьютера?

Да, через приложение-терминал на самом устройстве. Однако без root часть функций pm будет недоступна, а на новых версиях Android терминалы имеют ограниченный доступ к системным командам. Надёжнее использовать ADB с ПК или беспроводную отладку, если она поддерживается вашей версией системы.

Чем отличается pm list packages -s от -3?

Ключ -s выводит системные приложения, предустановленные производителем и прошивкой. Ключ -3 показывает только сторонние пакеты — те, что установил пользователь из магазина приложений или из APK-файлов.

Опасно ли просто выполнять pm list packages?

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