Извлечение APK-файлов из установленных приложений Android
Юридическая информация и уведомление о безопасности: Эта статья предназначена только для образовательных целей. Извлечение APK с устройства предназначено для личного резервного копирования приложений вы уже легально установили на свое устройство. XAPK to APK не размещает, не распространяет, не ссылается и не облегчает доступ к защищенным авторским правом, платным или пиратским приложениям. Распространение извлеченных APK-файлов платных приложений или приложений, защищенных авторским правом, запрещено. Полные условия см. в нашем Отказ от ответственности.
У вас на телефоне есть замечательное приложение, на настройку которого вы потратили несколько часов, а потом узнали, что его удалили из Play Store. Или, может быть, вы переходите на новое устройство и на всякий случай хотите иметь автономную копию своих любимых инструментов. Решением проблемы является Извлечение APK-файлов из установленных на данный момент приложений.
Ниже мы рассмотрим, как извлечь APK из вашего телефона без рута, где это пригодится для резервного копирования и как потом проверить извлеченный файл с помощью нашего инструменты онлайн-анализа.
Ключевые выводы
- Вы можете извлечь APK-файл практически любого приложения непосредственно из внутренней памяти вашего устройства.
- Современные приложения часто используют Разделить APK-файлы, для чего требуется специальный экстрактор.
- Доступ root (суперпользователя) обычно не требуется для резервного копирования стандартных приложений.
- После извлечения вы можете перенести файл на SD-карту, ПК или в облачное хранилище.
Зачем извлекать APK?
Прежде чем перейти к вопросу «как», вот почему вам следует поддерживать библиотеку резервных копий APK:
- Сохраните приложения, выпуск которых прекращен: Если разработчик удалит свое приложение из магазина, у вас все равно останется устанавливаемая копия.
- Поддержка устаревшего оборудования: Сохраняйте версии, которые работают на вашем старом планшете, когда официальное обновление приложения требует более новых версий Android.
- Откат версии: Если обновление содержит ошибки, вы можете переустановить извлеченную резервную копию и вернуться к работе.
- Совместное использование приложений: Отправьте определенную версию приложения другу через Bluetooth или кабель без использования сотовой связи.
Способ 1: использование приложения APK Extractor (без рута)
The easiest way is to use a dedicated utility. В магазине Play Store доступны десятки приложений «APK Extractor». Эти инструменты работают, находя путь установки приложения в /data/app/ (который доступен для чтения, но обычно скрыт) и копируя base.apk в общедоступную папку загрузки.
Шаги:
- Установите надежный APK Extractor.
- Откройте приложение и предоставьте «Разрешения на хранение», если потребуется.
- Прокрутите список всех установленных приложений.
- Нажмите на приложение, которое хотите сохранить.
- Инструмент мгновенно скопирует APK во внутреннюю память.
Обработка разделенных APK-файлов
Если вы извлекаете сложное приложение, такое как Facebook или WhatsApp, вы можете найти несколько файлов .apk вместо одного. Это Разделить APK-файлы. Чтобы их использовать, вам понадобится наш Инструмент объединения APKS/APKM, чтобы объединить их в один файл.
Способ 2: ручное извлечение через ADB (расширенный).
Если вы не хотите устанавливать дополнительные приложения на свой телефон, вы можете использовать ПК с Мост отладки Android (ADB):
- Подключите телефон к компьютеру через USB и включите отладку по USB.
- Откройте терминал и введите: adb shell pm path com.example.app.
- Это покажет путь. Пример: package:/data/app/com.example.app/base.apk
- Тип: adb pull /data/app/com.example.app/base.apk ./backup.apk
- Файл теперь на вашем компьютере!
Что вы на самом деле получаете, когда извлекаете
«Установленное» Android-приложение больше не хранится на устройстве в виде отдельного APK, особенно если оно поступило из Play Store в виде пакета Android App Bundle. При извлечении вы можете получить один файл или несколько, и знание разницы поможет вам решить, что сохранить:
- Один базовый APK. Старые или небольшие приложения, загруженные в Play в виде простого APK-файла, по-прежнему устанавливаются как один файл. При извлечении возвращается один автономный .apk.
- Базовый APK + несколько разделов конфигурации. Приложения, опубликованные в формате AAB, устанавливаются как несколько APK-файлов параллельно: базовый base.apk плюс split_config.<abi>.apk (нативный код для вашего процессора), split_config.<density>.apk (ресурсы для вашего экрана) и split_config.<language>.apk (строки для вашего языка). Извлечение возвращает их все. Чтобы переустановить одно и то же приложение на одном устройстве, вам понадобятся они все.
- Иногда данные пакета активов. Современные игры, использующие Play Asset Delivery, хранят большие игровые ресурсы в частном кеше приложения вне самих APK. Обычно их нельзя экспортировать с помощью обычного экстрактора; пакеты ресурсов предназначены для повторной загрузки при первом запуске.
Если ваша цель — портативная резервная копия, которая будет установлена на другое устройство, вам обычно нужен либо (а) объединенный «универсальный APK», созданный с помощью нашего Объединение APKS и APK, либо (б) все разделенные файлы заархивированы вместе, чтобы установщик разделенных APK, такой как SAI, мог восстановить их как единое целое.
Как работает извлечение (без рута, за кулисами)
Большинству приложений «APK-экстрактор» фактически не требуется root, поскольку Android предоставляет установленные файлы пакетов через путь чтения на системном уровне. Стандартный поток:
- Приложение-экстрактор вызывает PackageManager.getPackageInfo(package, ...), чтобы получить список установленных приложений.
- Для выбранного приложения он читается как ApplicationInfo.sourceDir (путь к базовому APK, обычно /data/app/<package>-<hash>/base.apk) и splitSourceDirs (пути к любым разбиениям конфигурации).
- Установленный пользователем экстрактор не может читать эти пути напрямую, но механизм FileProvider в Android позволяет системным компонентам предоставлять временный доступ для чтения к определенным URI. ОС позволяет любому приложению открывать свои собственные APK и APK других приложений по URI; это сделано намеренно, поскольку путь установки всегда должен был быть доступен для чтения всем для таких задач, как удаление и обновление.
- Экстрактор копирует байты в доступный для записи каталог пользователя (загрузки, папку кэша приложения или внешнее хранилище) и представляет их в виде файла для совместного использования или установки.
Методы только для root (su; cp /data/app/...) обходят API и напрямую считывают необработанные пути. Они не работают быстрее и не нужны для несистемных приложений.
Извлечение через ADB (рекомендуется для резервных копий)
Самый чистый рабочий процесс, не связанный с приложениями, — это ADB, который большинство разработчиков уже настроили. Всю работу выполняют две команды:
# 1. Find the on-device path(s) for the package
adb shell pm path com.example.app
# Output (single APK):
# package:/data/app/~~hash==/com.example.app-1/base.apk
#
# Output (split APKs):
# package:/data/app/~~hash==/com.example.app-1/base.apk
# package:/data/app/~~hash==/com.example.app-1/split_config.arm64_v8a.apk
# package:/data/app/~~hash==/com.example.app-1/split_config.xxhdpi.apk
# package:/data/app/~~hash==/com.example.app-1/split_config.en.apk
# 2. Pull each path
adb pull /data/app/~~hash==/com.example.app-1/base.apk ./
Для приложений с разделенными APK повторите adb pull для каждого пути. Чтобы получить один установочный файл, закиньте их все на наш Объединение APKS и APK.
Что нельзя извлечь
При извлечении возвращаются установочные файлы приложения. нет возвращает:
- Данные приложения: preferences, databases, save files. Они находятся под /data/data/<package>/ и защищены от некорневого извлечения изолированной программной средой пользовательских данных.
- Играйте в пакеты ресурсов Asset Delivery: загружается при первом запуске, кэшируется конфиденциально и, как ожидается, будет повторно загружен в случае отсутствия.
- Прогресс, сохраненный в облаке: если приложение использует Google Play Games, Firebase или аналогичные приложения, часть, хранящаяся в облаке, находится на серверах издателя, а не на вашем устройстве.
Таким образом, извлечение полезно для случаев использования «Я хочу, чтобы копия установщика всегда была под рукой», но не заменяет правильное резервное копирование всего устройства (для которого требуются инструменты root или поставщика).
Анализируйте извлеченные APK-файлы
После резервного копирования своих приложений воспользуйтесь нашим онлайн-пакетом, чтобы проверить их метаданные, значки и разрешения.
Начать анализ APKЧасто задаваемые вопросы (FAQ)
Включает ли извлечение приложения мои данные для входа?
Нет. При извлечении копируется только код приложения и ресурсы. По соображениям безопасности он не включает данные вашей личной учетной записи, пароли или настройки.
Могу ли я извлечь системные приложения, такие как YouTube?
Да. Однако некоторые системные приложения могут сильно зависеть от конкретных версий ОС и могут неправильно устанавливаться на других устройствах.
Куда идут извлеченные APK?
Большинство приложений-экстракторов сохраняют файлы в папку с именем Извлеченные APK-файлы или Скачать во внутренней памяти вашего телефона.
Резервное копирование установленных приложений без потери разделенных конфигураций
Создание собственного локального репозитория приложений — это самый надежный способ никогда не терять доступ к любимым инструментам. Удобное приложение и терминал ADB помогут вам в этом, и в любом случае извлечение APK-файлов — это безопасный и практичный способ управления вашим устройством Android. После резервного копирования библиотеки найдите время для проверить подписи этих резервных копий, чтобы быть уверенными, что они останутся неизменными с течением времени.