adb 命令导出apk

举报
林欣 发表于 2025/07/21 11:23:20 2025/07/21
【摘要】 在 Android 调试中,可以使用 adb 命令导出设备上已安装应用的 APK 文件。以下是详细步骤和常见用法: 方法 1:通过 pm path 获取 APK 路径并拉取 步骤 1:查找应用的包名adb shell pm list packages | grep "关键词"示例(查找微信包名):adb shell pm list packages | grep "wechat"输出:pac...

在 Android 调试中,可以使用 adb 命令导出设备上已安装应用的 APK 文件。以下是详细步骤和常见用法:


方法 1:通过 pm path 获取 APK 路径并拉取

步骤 1:查找应用的包名

adb shell pm list packages | grep "关键词"
  • 示例(查找微信包名):
    adb shell pm list packages | grep "wechat"
    
    输出
    package:com.tencent.mm
    

步骤 2:获取 APK 安装路径

adb shell pm path <包名>
  • 示例
    adb shell pm path com.tencent.mm
    
    输出
    package:/data/app/com.tencent.mm-XXXXXXXX/base.apk
    

步骤 3:拉取 APK 到本地

adb pull <设备上的APK路径> <本地保存路径>
  • 示例
    adb pull /data/app/com.tencent.mm-XXXXXXXX/base.apk ./wechat.apk
    

方法 2:直接通过 adb pull 导出(适用于系统应用)

系统应用通常安装在 /system/app//system/priv-app/ 目录下,可直接拉取:

adb pull /system/app/<应用名>/<应用名>.apk ./local.apk
  • 示例(导出系统计算器):
    adb pull /system/app/Calculator/Calculator.apk ./calculator.apk
    

方法 3:使用 adb shell + cat 导出(适用于无权限路径)

如果 adb pull 报错(如 Permission denied),可通过 cat 重定向到本地:

adb shell cat <设备上的APK路径> > ./local.apk
  • 示例
    adb shell cat /data/app/com.tencent.mm-XXXXXXXX/base.apk > ./wechat.apk
    
  • 注意:此方法在 Windows 上需使用 adb exec-out 替代 adb shell cat
    adb exec-out cat /data/app/com.tencent.mm-XXXXXXXX/base.apk > wechat.apk
    

方法 4:批量导出所有应用(需 root)

如果设备已 root,可以批量导出所有 APK:

adb shell
su
cd /data/app
for apk in $(find . -name "*.apk"); do
  adb pull /data/app/$apk ./${apk//\//_}
done

常见问题

  1. Permission denied 错误

    • 原因:/data/app/ 下的 APK 需要 root 权限访问。
    • 解决方案:
      • 使用 adb exec-out(无需 root):
        adb exec-out cat /data/app/com.example.app/base.apk > app.apk
        
      • 或通过 adb root 重启 adb 为 root 模式(需设备支持)。
  2. 导出的 APK 无法安装

    • 可能是拆分 APK(Split APK),需导出所有分包(如 base.apk + config.xxhdpi.apk)。
    • 使用 adb shell pm list packages -f 查看完整路径。
  3. 查找系统应用路径

    • 系统应用通常位于:
      • /system/app/(普通系统应用)
      • /system/priv-app/(特权应用)
      • /vendor/app/(厂商定制应用)

完整示例

导出微信 APK

# 1. 查找包名
adb shell pm list packages | grep "wechat"
# 输出: package:com.tencent.mm

# 2. 获取 APK 路径
adb shell pm path com.tencent.mm
# 输出: package:/data/app/com.tencent.mm-XXXXXXXX/base.apk

# 3. 拉取 APK(方法1)
adb pull /data/app/com.tencent.mm-XXXXXXXX/base.apk ./wechat.apk

# 若失败,改用方法3(无需 root)
adb exec-out cat /data/app/com.tencent.mm-XXXXXXXX/base.apk > wechat.apk

通过以上方法,你可以轻松导出设备上的 APK 文件。如果需要导出 数据+APK(如备份应用),可以结合 adb backup 命令(需应用允许备份)。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。