如何从 Android 设备获取 apk 文件?

13 浏览
0 Comments

如何从 Android 设备获取 apk 文件?

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

admin 更改状态以发布 2023年5月22日
0
0 Comments

使用adb。通过adb pull,您可以在设备连接USB时将文件从设备复制到系统。

当然,您还需要正确的权限才能访问文件所在的目录。否则,您需要先root设备。


如果您发现许多APK的名称为"base.apk",则还可以使用此单行命令将所有APK从可访问的手机上拉出,同时将任何"base.apk"名称重命名为包名。这也修复了似乎在名称后面带有随机字符的APK路径的目录未找到问题:

for i in $(adb shell pm list packages | awk -F':' '{print $2}'); do 
  adb pull "$(adb shell pm path $i | awk -F':' '{print $2}')"
  mv base.apk $i.apk &> /dev/null 
done

如果您获得了"adb:错误:无法统计远程对象",则表示您没有必要的权限。我在非root的Moto Z2上运行了这个操作,并能够下载我没有卸载的所有APK(请参见下文),除了YouTube。

adb shell pm uninstall --user 0 com.android.cellbroadcastreceiver   <--- kills presidential alert app!

(要查看用户,运行adb shell pm list users)这是一种在不使用root的情况下删除/卸载几乎所有应用程序(包括系统应用程序)的方法(提示更新应用程序会更新您的电话线路,或者不会找到grep为"ccc"的烦人更新应用程序)

0
0 Comments

这些建议都没有对我起作用,因为Android会在包名后面添加一个序列号形成最终的APK文件名。在较新的Android版本(Oreo和Pie)中,会添加一个不可预测的随机字符串。下面是我在非root设备上使用的一组命令:

1)确定应用程序的包名,例如“com.example.someapp”。如果你已经知道包名,可以跳过此步骤。

adb shell pm list packages

浏览包名列表,尝试找到问题应用程序和包名之间的匹配。这通常很容易,但请注意,包名可能与应用程序名称完全不相关。如果你无法从包名列表中识别应用程序,请尝试使用浏览器在Google Play中查找该应用程序。Google Play的应用程序URL包含包名。

2)获取所需包的APK文件的完整路径名。

adb shell pm path com.example.someapp

输出将看起来像这样:
package:/data/app/com.example.someapp-2.apk

package:/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

0