获取已安装应用的APK

我正在寻找一种方法来解压安装的Android应用程序的APK文件,而无需root权限。

我认为这是不可能的,因为所有用于非系统应用的APK文件都位于/ data / app中,并且访问此文件夹需要root权限。 然后,我发现Google Play中有很多应用程序似乎可以访问APK文件,即使在没有根的设备上也是如此。

有人能告诉我这可能吗? 没有备份没有root权限的APK文件的备份应用程序吗?


访问/ data / app可能没有root权限; 该目录上的权限是rwxrwx - x。 目录上的执行权限意味着您可以访问它,但是缺少读取权限意味着您无法获得其内容列表 - 因此,要访问它,您必须知道您将访问的文件的名称。 Android的包管理器会告诉你一个给定包的存储apk的名字。

要从命令行执行此操作,请使用adb shell pm list packages获取已安装软件包的列表并找到所需的软件包。

使用软件包名称,我们可以使用adb shell pm path your-package-name来获取APK的实际文件名和位置。

知道完整的目录后,我们可以使用adb pull full/directory/of/the.apk来拉取adb

感谢@tarn指出在Lollipop下,apk路径将是/data/app/your-package-name-1/base.apk


Android会在程序包名称后附加一个序列号以产生最终的APK文件名称(这可能会因Android OS的版本而异)。 以下命令序列在非根设备上工作:

  • 获取所需软件包的APK文件的完整路径名称。

    adb shell pm path com.example.someapp
    

    这给出了输出: package:/data/app/com.example.someapp-2.apk

  • 将APK文件从Android设备拖到开发框。

    adb pull /data/app/com.example.someapp-2.apk
    

  • Google Play商店中有一款名为“Apk extracter”的应用。 通过这个应用程序,你可以得到安装应用程序的.apk文件。 获取并享受!

    链接地址: http://www.djcxy.com/p/31971.html

    上一篇: Get APK of installed app

    下一篇: Is it legal to decompile an APK and use part of its code in your app