Я пытаюсь извлечь APK-файл установленного приложения для Android БЕЗ рут-прав.
Я думал, что это невозможно, потому что все файлы APK для несистемных приложений находятся в / data / app, и для доступа к этой папке требуются права суперпользователя. Затем я обнаружил, что в магазине Google Play есть множество приложений, которые, похоже, имеют доступ к APK-файлам даже на нерутированных устройствах.
Может кто-нибудь сказать мне, как это возможно? Нет ли приложений для резервного копирования файлов APK без рута?
Ответы:
Доступ к / data / app возможен без прав root; разрешения для этого каталога: rwxrwx - x. Разрешение на выполнение для каталога означает, что вы можете получить к нему доступ, однако отсутствие разрешения на чтение означает, что вы не можете получить список его содержимого, поэтому для доступа к нему необходимо знать имя файла, к которому вы будете обращаться. Менеджер пакетов Android скажет вам имя сохраненного APK для данного пакета.
Чтобы сделать это из командной строки, используйте,
adb shell pm list packages
чтобы получить список установленных пакетов и найти нужный пакет.С помощью имени пакета мы можем получить фактическое имя файла и местоположение APK, используя
adb shell pm path your-package-name
.И, зная полный каталог, мы можем, наконец, вытащить ADB с помощью
adb pull full/directory/of/the.apk
Благодарим @tarn за указание на то, что в Lollipop путь apk будет
/data/app/your-package-name-1/base.apk
источник
adb shell pm list packages
для получения списка установленных пакетов, выберите нужный пакет, добавьте-1.apk
к нему и извлеките его/data/app
. Пример: если имя пакетаorg.mozilla.firefox
, используйтеadb pull /data/app/org.mozilla.firefox-1.apk
.adb: error: remote object '/data/app/com.Slack-1/base.apk' does not exist
Android добавляет порядковый номер к имени пакета, чтобы получить окончательное имя файла APK (возможно, это зависит от версии ОС Android). Следующая последовательность команд работает на некорневом устройстве :
Получите полный путь к файлу APK для нужного пакета.
Это дает результат , как:
package:/data/app/com.example.someapp-2.apk
.Перетащите APK-файл с устройства Android в окно разработки.
Расположение APK после успешного извлечения будет на ../sdk/platform-tools/base.apk на вашем ПК / ноутбуке.
источник
Вам не нужны разрешения ROOT, чтобы получить список установленных приложений.
Вы можете сделать это с помощью Android PackageManager.
Ниже приведен небольшой фрагмент кода.
источник
источник
Когда у вас установлен Eclipse для разработки Android:
источник
На Android-версии Nougat (7.0) запустите
adb shell pm list packages
список пакетов, установленных на устройстве. Затем бегите,adb shell pm path your-package-name
чтобы показать путь к apk. После использования adb скопируйте пакет в Загрузкиadb shell cp /data/app/com.test-1/base.apk /storage/emulated/0/Download
. Затем вытащите apk из загрузок на ваш компьютер, запустивadb pull /storage/emulated/0/Download/base.apk
.источник
Я получил
does not exist error
Вот как я это делаю:
источник
List PackageManager.getInstalledApplications () предоставит вам список установленных приложений, а ApplicationInfo.sourceDir - это путь к файлу .apk.
источник
Я нашел способ получить имя пакета APK на устройстве без полномочий root. это не так элегантно, но работает все время.
Шаг 1 : на вашем устройстве откройте целевой APK
Шаг 2 : в окне cmd ПК введите следующие команды:
поскольку вывод этой команды многочислен, рекомендуется перенаправление в файл.
Шаг 3 : откройте этот файл dump.txt в любом редакторе.
для устройства до Android 4.4:
начало файла будет выглядеть так:
название пакета в 3-й строке, com.tencent.mm для этого примера.
для Android 4.4 и более поздних
версий: вывод dumpsys немного изменился. попробуйте поискать "Stack # 1", имя пакета будет очень близко под ним.
Кроме того, поиск "baseDir", вы найдете полный путь к файлу apk!
источник
Откройте ES проводник -> нажмите кнопку «Меню» в левом верхнем углу (три горизонтальные полосы) -> в разделе «Библиотеки» выберите «Приложения».
Таким образом, вы получаете список всех пользовательских приложений. Найдите свое приложение и выберите его с долгим нажатием на него. Затем нажмите «Еще» в правом нижнем углу и выберите «Отправить». Затем вы можете использовать различные параметры, например, вы можете выбрать «ES Save To», чтобы сохранить файл .apk в вашем домашнем каталоге или где-либо еще.
источник
Или вы можете получить «Bluetooth File Transfer» из Google Play и установить домашнюю папку на
/system/
. Тогда вы даже можете пойти в/
.источник