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

Вытащить APK-файл из уже установленного приложения на Android можно без переустановки и без скачивания инсталлятора заново: система хранит пакет в каталоге /data/app, и его можно скопировать в пользовательское хранилище. Это нужно, когда приложение удалили из магазина, требуется перенести конкретную версию на другое устройство или сохранить резервную копию перед обновлением.

Ниже разберём три рабочих способа: через программы-экстракторы, через файловый менеджер с доступом к системным каталогам и через ADB с компьютера. Отдельно остановимся на ограничениях — разделённые пакеты (split APK), подписи и защита некоторых приложений меняют процедуру.

Что такое APK и где он хранится в системе

APK (Android Package) — это установочный пакет приложения: архив с кодом, ресурсами и манифестом. Когда вы устанавливаете программу из Google Play или вручную, система копирует этот пакет в защищённый раздел. Обычно базовый APK лежит по пути вида /data/app/~~.../com.example.app-1/base.apk, где имя папки содержит пакет приложения и случайный суффикс.

Важный нюанс: современные приложения часто устанавливаются не одним файлом, а набором — так называемые split APK. Рядом с base.apk могут лежать split_config.arm64_v8a.apk, split_config.ru.apk и другие модули под архитектуру процессора, язык и плотность экрана. Если скопировать только базовый файл, на другом устройстве приложение может не установиться или работать неполноценно.

Данные приложения (настройки, аккаунты, кэш) в APK не входят — они хранятся отдельно в /data/data. Извлечение пакета даёт только сам установщик, без пользовательских данных.

Способ 1: приложения-экстракторы APK

Самый простой вариант — установить программу, которая автоматически находит пакеты и копирует их в обычную папку. В Google Play и альтернативных каталогах доступны инструменты вроде APK Extractor, ML Manager, App Backup & Restore. Принцип у всех схожий: вы выбираете приложение из списка, программа копирует его APK в Download или собственную папку.

Порядок действий на примере типичного экстрактора:

  • 📥 Установите экстрактор из магазина приложений и откройте его.
  • 📋 Найдите в списке нужное приложение — обычно доступен поиск по имени.
  • 💾 Нажмите «Извлечь» или «Extract» — программа скопирует APK в указанную папку.
  • 📂 Проверьте результат в файловом менеджере: файл должен иметь расширение .apk и ненулевой размер.

Некоторые экстракторы умеют собирать split-пакеты в единый файл формата APKM, XAPK или APKS. Такой файл потом устанавливается через соответствующий установщик (например, Split APKs Installer). Если планируете переносить приложение на другое устройство, уточните в настройках экстрактора, сохраняет ли он все модули.

Способ 2: файловый менеджер с доступом к /data/app

Некоторые файловые менеджеры умеют читать каталог /data/app без root-прав — на современных версиях Android чтение самих APK-файлов обычно разрешено, хотя листинг содержимого папок может быть ограничен. Проверить это можно, открыв в менеджере путь /data/app и попытавшись перейти в подкаталог нужного приложения.

Если доступ есть, действуйте так: найдите папку с именем пакета приложения, скопируйте base.apk (и все файлы split_*.apk, если они присутствуют) в общедоступное хранилище, например в /sdcard/Download. Переименуйте копию в понятное имя с указанием версии.

⚠️ Внимание: не перемещайте и не удаляйте файлы из /data/app — только копируйте. Перемещение пакета приведёт к тому, что приложение перестанет запускаться, и его придётся переустанавливать.

Если файловый менеджер не видит содержимое каталога, это нормально: начиная с Android 11 действуют ограничения scoped storage, и поведение зависит от версии системы и оболочки производителя. В таком случае используйте экстрактор или ADB.

Способ 3: извлечение через ADB с компьютера

Метод через Android Debug Bridge самый надёжный и не требует установки лишних программ на телефон. Понадобится компьютер с установленным пакетом platform-tools и включённая отладка по USB на устройстве. Отладка активируется в меню Настройки → Для разработчиков, которое открывается после многократного нажатия на пункт «Номер сборки» в разделе «О телефоне». Точные названия пунктов зависят от оболочки — сверяйтесь с документацией своего устройства.

Сначала узнайте имя пакета и путь к его APK:

adb shell pm list packages | findstr название

adb shell pm path com.example.app

Команда pm path выведет один или несколько путей — для split-приложений их будет несколько. Затем скопируйте каждый файл на компьютер:

adb pull /data/app/~~abc/com.example.app-1/base.apk C:\backup\base.apk

Повторите adb pull для каждого split-файла из вывода. Если путь содержит пробелы или спецсимволы, возьмите его в кавычки. Готовые файлы можно перенести на другое устройство и установить — либо по одному через adb install-multiple, либо объединив в XAPK-архив.

☑️ Извлечение APK через ADB

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

Сравнение способов извлечения APK

СпособRoot не нуженПоддержка split APKСложность
Экстракторы (APK Extractor и аналоги)ДаЗависит от программы, часто даМинимальная
Файловый менеджерДа, но доступ не гарантированВручную, копированием всех файловСредняя
ADB с компьютераДаДа, полный контрольВыше средней
Root + прямой доступ к /data/appНет, нужен rootДаВысокая, рискованная

Для разовой задачи рациональнее всего экстрактор. Если нужно регулярно снимать копии с нескольких приложений или сохранять split-пакеты целиком, освоение ADB окупается полным контролем над процессом.

📊 Какой способ извлечения APK вы используете?
Приложение-экстрактор
Файловый менеджер
ADB с компьютера
Ещё не пробовал ни один

Ограничения и возможные проблемы

Не каждое приложение получится перенести корректно. Часть программ проверяет подпись пакета или источник установки: если подпись при повторной установке не совпадёт с ожидаемой, приложение откажется работать или потребует скачивания из официального магазина. Это нормальная защита, а не ошибка извлечения.

Ещё одна типичная ситуация — скопированный APK не устанавливается на другом устройстве с ошибкой «приложение не установлено». Возможные причины: извлечён только base.apk без обязательных split-модулей; архитектура пакета (arm64, armeabi-v7a, x86) не совпадает с процессором целевого устройства; на целевом устройстве уже стоит версия с другой подписью — тогда сначала удалите её, понимая, что данные приложения будут потеряны.

⚠️ Внимание: распространение извлечённых APK платных приложений нарушает лицензионные условия и авторские права разработчика. Используйте извлечение для личного резервного копирования и переноса между своими устройствами.

Отдельно упомянем системные приложения: их пакеты лежат в /system/app или /product/app, и извлечь их можно теми же способами, но установка на другое устройство часто бессмысленна — такие программы завязаны на конкретную прошивку и фирменные сервисы производителя.

Почему извлечённый APK иногда весит меньше, чем страница в магазине

Google Play отдаёт каждому устройству только нужные split-модули под его архитектуру и язык. Размер страницы в магазине может отражать полный набор ресурсов, а ваш извлечённый пакет — только модули вашего устройства. Это нормально и не означает, что копия повреждена.

Как проверить целостность извлечённого файла

После копирования убедитесь, что файл не повреждён. Простейшая проверка — открыть APK любым архиватором (7-Zip, WinRAR): APK является ZIP-архивом, и исправный файл откроется с видимой структурой — AndroidManifest.xml, classes.dex, папка res. Если архиватор выдаёт ошибку, копирование прошло неполностью, повторите извлечение.

Дополнительно можно посмотреть информацию о пакете командой aapt dump badging файл.apk из состава инструментов сборки Android — она покажет имя пакета, версию и требуемые разрешения. Это удобно, когда копий несколько и нужно определить, где какая версия.

Финальный тест — установка на целевом устройстве. Если система сообщает о несовпадении подписи, значит, на устройстве уже есть версия того же приложения от другого источника. Удалите её (с потерей данных) либо используйте APK с той же подписью.

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

Можно ли создать APK из установленного приложения без root-прав?

Да. Чтение APK-файлов из /data/app обычно не требует root — поэтому работают экстракторы и ADB. Root нужен разве что для доступа к данным приложений, но они в установочный пакет не входят.

Почему извлечённый APK не устанавливается на другой телефон?

Чаще всего причина в split-структуре: вы скопировали только base.apk, а приложению нужны ещё модули архитектуры и языка. Также возможны несовместимость архитектуры процессора и конфликт подписи с уже установленной версией.

Сохранятся ли мои данные и настройки в извлечённом APK?

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

Что делать, если приложение защищено от извлечения?

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

Куда экстракторы сохраняют извлечённые файлы?

Зависит от конкретной программы: чаще всего в папку Download, ExtractedApks или собственный каталог приложения в общем хранилище. Путь обычно указан в настройках экстрактора или показывается сразу после извлечения.