linux怎么根据apk的包名获取路径,通过ADB方式直接获取APP名字,非包名

通过adb获取已安装的包名很简单

adb shell pm list packages

这里可以获取到所有app的包名,包括系统的和自己安装的,但是想获取app名字,比如"微信",就很困难。搜集了一些方法:

一、直接dumpsys

网上较多流传的一个命令可以获取到APP的详细信息

adb shell dumpsys package com.tencent.mm

但打印后发现,可以获取到版本号、权限等字段,就是没有app名字,而有些网友使用这个命令确实获取到了app名字。这个情况是普遍存在的,可能是兼容性问题。

二、在电脑端用AAPT工具解析apk文件

aapt工具在sdk里面自带了,可以解析apk文件,那么只要拿到你想解析的app的apk文件就行。

先查找所有包名及对应apk位置

adb shell pm list packages -f

打印出apk的位置和包名,把apk文件拉取到电脑端。

adb pull /data/app/com.leon.demo-ZMMnebZlBtlM_xwAxZyXPQ==/base.apk

用aapt工具解析这个拉到本地的apk文件,注意先把aapt工具所在目录加入Path

aapt d badging base.apk

应该就可以打印出所有信息,包括app名字了,如果出现中文乱码,改下编码

chcp 65001

再次打印即可。

但是这个方法显然效率太低,因为每个app你都需要复制到本地再解析,而一般手机上几十个甚至上百个app。所以换一个思路,把aapt工具直接在手机上跑呢。

三、把aapt工具推到手机上,直接在手机上跑shell命令

adb push aapt-arm-pie /data/local/tmp

adb shell chmod 0755 /data/local/tmp/aapt-arm-pie

调用aapt来解析手机上的apk

adb shell /data/local/tmp/aapt-arm-pie d badging /data/app/com.facebook.katana-3/base.apk

可以看到解析出来的apk信息。

需要精简信息的话可以加入相关参数来格式化输出,也可以自己写个shell脚本,来循环查询所有app。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值