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

APK установленных приложений обычно лежит в /data/app (пользовательские) или в /system, /product, /vendor (системные). Извлечь можно через ADB, специальный APK‑экстрактор или напрямую при наличии root.

Где Android хранит APK

  • Пользовательские приложения: /data/app/-/base.apk
  • Системные приложения: /system/app/ и /system/priv-app/
  • Доп. каталоги на некоторых прошивках: /product/app/, /vendor/app/
  • Split‑APK и динамические модули: помимо base.apk могут быть split_config.*.apk и другие файлы в той же папке.

Доступ к /data и /system обычно ограничен без root. Если вы только скачали APK и не устанавливали — ищите его в папке Download (/sdcard/Download).

Если приложение использует split‑APK или Play Feature Delivery, одного base.apk может быть недостаточно для корректной установки на другом устройстве.

Как извлечь APK без root

  1. Через приложение‑экстрактор (быстро и удобно)

    • Установите APK Extractor / ML Manager / App Backup & Restore.
    • Откройте, выберите приложение в списке и нажмите «Extract» / «Save APK».
    • Файл обычно появится в /sdcard/ или /Android/data//.
  2. Через ADB (требуется компьютер и включённая отладка по USB)

    • Включите «Параметры разработчика» → «Отладка по USB».
    • На компьютере выполните:
      • Получить путь: adb shell pm path com.example.app
        (вернёт: package:/data/app/.../base.apk или несколько путей для split‑apk)
      • Скопировать: adb pull /data/app/.../base.apk ./com.example.app.apk
    • Если команда pm path вернула несколько файлов, скачайте все перечисленные пути.

Преимущества без root: не нужно ломать систему, безопасно для гарантии и проще для большинства пользователей.

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

Как извлечь APK при наличии root

  1. Через файловый менеджер с root (MiXplorer, Root Explorer и т.п.):

    • Выдайте root‑права приложению.
    • Перейдите в /data/app/ или /system/app/ и найдите папку по имени пакета.
    • Скопируйте base.apk в /sdcard/Backups/ и затем сохраните на ПК.
  2. Через ADB с su:

    • Подключите устройство и выполните:
      • adb shell
      • su
      • cp /data/app/.../base.apk /sdcard/com.example.app.apk
      • exit; exit
      • adb pull /sdcard/com.example.app.apk .
    • Root позволяет получить все части split‑apk и системные версии напрямую.

Не удаляйте и не перемещайте файлы из /system или /data без точного понимания — это может привести к сбоям или бутлупу устройства.

Частые ошибки

  • Попытка установить изменённый APK поверх оригинала — потребуется удалить старую версию из‑за подписи.
  • Копирование только base.apk для сложного split‑apk приложения — приложение может не установиться.
  • Ожидание увидеть /data в обычном файловом менеджере без root — каталог скрыт системой.
  • Игнорирование прав: некоторые приложения шифруют ресурсы или проверяют подпись на сервере.

FAQ

  • Можно ли установить извлечённый APK на другой телефон?
    Да, если у APK совпадает архитектура и у вас все необходимые split‑файлы; однако если приложение привязано к подписи или использует server‑side проверки, запуск может быть ограничен.

  • Как узнать имя пакета приложения?
    Через «Настройки» → «Приложения» (в некоторых прошивках) или с помощью App Inspector / Package Name Viewer. Через ADB: adb shell pm list packages | grep <часть_имени>.

  • Нужно ли root для всех операций?
    Нет. Большинство пользователей могут извлечь APK с помощью экстракторов или ADB без root. Root даёт полный доступ, но несёт риски.

  • Что делать, если pm path не возвращает путь?
    Убедитесь, что устройство подключено, разрешена отладка по USB и пакет установлен. Для системных приложений команда всё равно должна вернуть путь; если нет — попробуйте выполнить с правами root.

Если нужно, пришлите модель телефона, наличие/отсутствие root и пример пакета — подготовлю точную пошаговую команду под ваш сценарий.