Как сохранить купленные приложения в виде APK?

Я не могу сохранить APK-файлы, которые я приобрел (фактически оплатил) в магазине Play. Обычно SaveAPK может сохранять интересующие меня APK-файлы, однако это не сработало: Copy failed.я также пробовал Astro File Manager, но каждое купленное мной приложение имело символ блокировки, и это не позволяло меня, чтобы поддержать это.

Затем я попытался найти в /data/app, но также не смог найти APK. Есть идеи, где они могут быть? Может быть, это какая-то защита от копирования в 4.x+, о которой я раньше не слышал.

Я использую Cyanogenmod 10.1-20130714-NIGHTLY-i9300.

Ответы (2)

.apkфайлы обычно устанавливаются в /data/app, как вы уже указали. Я также нахожу свои «купленные приложения» в этом месте; так что, возможно, вы искали неправильное имя: файлы обычно имеют «синтаксис» <package_name>-<n>.apk, где <package_name>имя пакета приложения, которое отображается в URL-адресе при просмотре приложения в Google Play через веб-браузер, и <n>представляет собой цифру . Я купил, например , ROM Toolbox и могу найти его здесь как com.jrummy.liberty.toolboxpro-1.apk.

Существует несколько вариантов получения .apkфайла приложения:

  • скопируйте его из /data/app(может потребоваться root - по крайней мере, если вы не знаете точное имя файла)
  • используйте приложение, такое как, например , AppMonster Free Backup Restore (рут не требуется)
  • используйте Titanium Backup ★ root (требуется root)
  • создайте резервную копию ADB и извлеките файл
Я посмотрел папку с ES File Manager, в котором были показаны значки для apk. Я также искал «синтаксис» приложения, которого там тоже не было. Appmonster перечислил приложение как «Защищено», и его резервная копия просто дала мне значок, а также текстовый файл. С другой стороны, резервная копия Titanium дала мне файл .apk.gz, однако я не уверен, что это настоящий APK.
Если он защищен, его, вероятно, нельзя будет получить без рута. И да, этот .apk.gzфайл на самом деле сжат GZip, .apkтак что вы можете просто gunzipполучить «обычный» файл .apk.

Да, это новая функция (шифрование приложений с прямой блокировкой), представленная в Android 4.1 (Jelly Bean), которая предназначена для предотвращения случайного копирования .apkфайлов. См. этот пост в блоге для получения более подробного описания этой функции с некоторыми техническими подробностями.

Часть текста поста, которая наиболее актуальна для этого вопроса:

Точка монтирования типичного приложения с прямой блокировкой теперь выглядит так:

shell@android:/mnt/asec/org.mypackage-1 # ls -l
ls -l
drwxr-xr-x system   system            2012-07-16 15:07 lib
drwx------ root     root              1970-01-01 09:00 lost+found
-rw-r----- system   u0_a96    1319057 2012-07-16 15:07 pkg.apk
-rw-r--r-- system   system     526091 2012-07-16 15:07 res.zip

Здесь res.zipхранятся ресурсы приложения, и он доступен для чтения всем, в то время как pkg.apkфайл, содержащий полный APK, доступен для чтения только системе и выделенному пользователю приложения ( u0_a96).

Таким образом, обычное приложение, такое как SaveAPK, не может читать .apkфайлы приложений с блокировкой вперед в JB (но ресурсы приложения по-прежнему доступны для чтения всем, поэтому приложения, содержащие наборы значков и темы для других приложений, по-прежнему будут работать правильно).

Однако эта защита эффективна только в заблокированном состоянии Android, поставляемого производителями устройств. Если у вас есть root, вы все равно можете получить доступ к .apkфайлам всех приложений, установленных на вашем устройстве, и делать с ними все, что захотите. Единственная проблема для вас заключается в том, что некоторые приложения для резервного копирования, которые вы использовали ранее, больше не будут работать, и вам нужно найти работающую замену (теперь приложению для резервного копирования потребуется использовать root-доступ для резервного копирования всех .apkфайлов).

«В Jelly Bean реализация прямой блокировки была переработана и теперь предлагает возможность хранить APK в зашифрованном контейнере, который требует монтирования ключа для конкретного устройства во время выполнения. Давайте рассмотрим реализацию немного подробнее. " Большой.