如何从android设备获取apk文件?或者如何将apk文件从设备传输到系统?


当前回答

完成@Yojimbo的回答,这是我所做的(只适用于Linux/Mac,不会在Windows上开箱工作……可能在git的bash shell中):

for i in $(adb shell pm list packages -f -3 | cut -d= -f 1 | cut -d ":" -f 2); do adb pull $i; done

这是一个丑陋的bash,但工作:)

编辑: 它不再适用于AndroidM:所有文件都命名为“base.apk”在另一个目录下。应该是“微不足道的”修复。

其他回答

不需要root:

这段代码将获得第三方包的路径和名称,以便您可以轻松识别您的APK

adb shell pm list packages -f -3

输出将是

包:/ / app / XX.XX.XX.apk = YY.YY.YY数据

现在使用下面的代码拉出这个包:

adb pull /data/app/XX.XX.XX.apk

如果你在C:>\中执行上面的cmd命令,那么你会在那里找到这个包。

如上所述,您可以通过使用adb中的pull命令来获得apk。

由于您正在讨论已安装的应用程序,请继续查看Android文件系统的/data/app目录。你会在那里找到APK。

然后使用adb命令- adb pull /data/data/appname.apk

我得到了一个不存在的错误

我是这么做的

adb shell pm list packages -f | findstr zalo
package:/data/app/com.zing.zalo-1/base.apk=com.zing.zalo

adb shell
mido:/ $ cp /data/app/com.zing.zalo-1/base.apk /sdcard/zalo.apk
mido:/ $ exit


adb pull /sdcard/zalo.apk Desktop

/sdcard/zalo.apk: 1 file pulled. 7.7 MB/s (41895394 bytes in 5.200s)
C:\Users\xyz>adb shell pm list packages -f | findstr whatsapp
package:/data/app/com.whatsapp-1/base.apk=com.whatsapp

C:\Users\xyz>adb pull /data/app/com.whatsapp-1/base.apk Desktop
/data/app/com.whatsapp-1/base.apk: 1 f.... 13.8 MB/s (32803925 bytes in 
2.269s)

完成@Yojimbo的回答,这是我所做的(只适用于Linux/Mac,不会在Windows上开箱工作……可能在git的bash shell中):

for i in $(adb shell pm list packages -f -3 | cut -d= -f 1 | cut -d ":" -f 2); do adb pull $i; done

这是一个丑陋的bash,但工作:)

编辑: 它不再适用于AndroidM:所有文件都命名为“base.apk”在另一个目录下。应该是“微不足道的”修复。