如何从Android设备获取apk文件? 或者如何将apk文件从设备传输到系统? android
如上所述,您可使用adb中的pull命令获取apk。 shell
因为您正在谈论已安装的应用程序,所以请继续查看Android文件系统的/ data / app目录。 您会在其中找到APK。 浏览器
而后使用adb命令-adb pull /data/data/appname.apk app
我已经看到许多解决此问题的方法,要么您必须扎根手机,要么必须安装应用程序。 而后通过大量的搜索,我获得了针对非root / root用户的电话的解决方案。 google
列出您到目前为止得到的应用程序。 加密
adb shell pm list packages
而后您能够选择一个应用程序,例如twitter spa
adb backup -apk com.twitter.android
这里重要的是不要设置用于加密备份的密码 code
这将建立一个名为backup.ap的文件,可是您仍然没法打开它。 为此,您必须使用dd命令再次将其提取。 ip
dd if=backup.ab bs=24 skip=1 | openssl zlib -d > backup.tar
在此以后,您要作的就是提取tar内容并完成。 ssl
但愿它对大家有用
这些建议对我都不起做用,由于Android会在包名称后附加序列号以产生最终的APK文件名。 在较新的Android版本(Oreo和Pie)上,附加了不可预测的随机字符串。 如下命令序列对非root用户的设备有效 :
1)肯定应用程序的软件包名称,例如“ com.example.someapp”。 若是您已经知道软件包名称,请跳过此步骤。
adb shell pm list packages
浏览软件包名称列表,并尝试在有问题的应用程序和软件包名称之间找到匹配项。 一般这很容易,可是请注意,程序包名称可能与应用程序名称彻底无关。 若是您没法从包名称列表中识别该应用,请尝试使用浏览器在Google Play中找到该应用。 Google Play中应用程序的网址包含程序包名称。
2)获取所需软件包的APK文件的完整路径名。
adb shell pm path com.example.someapp
输出看起来像
包:/data/app/com.example.someapp-2.apk
要么
包:/data/app/com.example.someapp-nfFSVxn_CTafgra3Fr_rXQ == / base.apk
3)使用第2步中的完整路径名,将APK文件从Android设备拉至开发框。
adb pull /data/app/com.example.someapp-2.apk path/to/desired/destination
我没有使用代码从移动设备中提取.apk文件,可是我一直在使用从移动设备中提取.apk文件的软件,而我使用的软件在下面带有google play连接:
但愿对您有帮助。
不须要root:
此代码将得到名称为3rd party的包路径,以便您轻松识别APK
adb shell pm list packages -f -3
输出将是
包:/data/app/XX.XX.XX.apk=YY.YY.YY
如今,使用如下代码提取该软件包:
adb pull /data/app/XX.XX.XX.apk
若是您在C:>\\
cmd上方执行,那么您将在那里找到该程序包。