首页 > 其他分享 >六、通过ADB方式直接获取APP名字,非包名

六、通过ADB方式直接获取APP名字,非包名

时间:2023-08-01 14:58:48浏览次数:53  
标签:包名 shell APP apk aapt ADB 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命令

参考:https://android.stackexchange.com/questions/90141/obtain-package-name-and-common-name-of-apps-via-adb
先下载手机上可以运行的aapt文件:https://github.com/Calsign/APDE/blob/master/APDE/src/main/assets/aapt-binaries/aapt-arm-pie
下载后,push到手机上并给与权限

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。

标签:包名,shell,APP,apk,aapt,ADB,adb,app
From: https://www.cnblogs.com/7qin/p/17596471.html

相关文章

  • 初探-HttpServletRequestWrapper包装类
    HttpServletRequestWrapper是JavaServletAPI中的一个类,它是一个装饰器设计模式的实现,用于扩展和包装原始的HttpServletRequest对象。通过继承HttpServletRequestWrapper类,我们可以在不修改原始请求对象的情况下,对其进行增强或修改。这个类的作用在于拦截和改变对原始Ht......
  • 【软件测试】web测试与app测试的区别
    系统架构方面:web项目,一般都是b/s架构,基于浏览器的app项目,则是c/s的,必须要有客户端,用户需要安装客户端。 B/S只要更新了服务器端,客户端就会同步会更新。APP项目则需要客户端和服务器都更新。  app下修改了服务端,意味着客户端用户所使用的核心版本都需要进......
  • App运行日志
    App运行日志Android采用Log工具打印日志,它将各类日志划分为五个等级:Log.e:表示错误信息,比如可能导致程序崩溃的异常Log.w:表示警告信息Log.i:表示一般信息Log.d:表示调试信息,可把程序运行时的变量值打印出来,方便跟踪测试Log.v:表示冗余信息Log.d使用Log.d(tag:"第一个参数tag......
  • SequoiaDB分布式数据库2023.7月刊
    本月看点速览再获肯定!巨杉数据库入选德勤粤港澳大湾区及广州高科技高成长两大榜单《数据库发展研究报告(2023年)》发布,巨杉数据库参编携手华南理工大学,“巨杉数据库管理与应用奖学金”成功颁发青杉计划2023已开启,一起攀登更高的“杉” 再获肯定!巨杉数据库入选德勤粤港澳大湾......
  • IoToS-App 0.6.0 移动端业务实现 文档开源
    IoTOS-App v0.6.0    本次更新主要适配移动端卡号查询、智能诊断、用量记录、批量业务办理、会话记录功能实现。   www.iotos.top文档页面网站源代码已开源,感兴趣的可用于搭建简单文档网站等,vue、markdown、html语法适配。文档网站源码地址:  https://gitee.com/c......
  • 2023-07-31 在uniapp使用canvas绘制一个圆角为50%的图片【代码来自chatGpt,稍作修改】
    <template><view><canvasid="myCanvas":style="{width:'200px',height:'200px'}"></canvas></view></template><script>exportdefault{onReady(){this.......
  • 008、adb命令 (service call iphonesubinfo 15),获取手机号码
    获取手机号码命令, adb shell service call iphonesubinfo 15 如下:不同android版本15的数字不一样,可是是13或17等C:\Users\SZ-M1-BD-0080>adbshellservicecalliphonesubinfo15Result:Parcel(0x00000000:000000000000000e0038002b00310036'..............
  • Mybatis学习(1)——mybatis介绍 & 入门案例 & 全局配置文件详解 & 增删改查 + mybatis事
    Mybatis学习(1)——mybatis介绍&入门案例&全局配置文件详解&增删改查+mybatis事务&mapper.xml文件#{}和${}&动态SQL入门原文链接:https://blog.csdn.net/Pireley/article/details/131520252目录引出一、mybatis是啥1.官网&ORM(ObjectRelationMapping)对象关......
  • Mybatis中的Mapper.xml映射文件sql查询接收多个参数 分页查询 sql语句动态生成的时候,
    Mybatis中的Mapper.xml映射文件sql查询接收多个参数分页查询sql语句动态生成的时候,使用${},sql语句中某个参数进行占位的时候用#{}原文链接:https://blog.csdn.net/Ep_Little_prince/article/details/100687848​我们都知道,在Mybatis中的Mapper.xml映射文件可以定制动态SQ......
  • Mapper.xml详解 一对一 多对一 多对多
    Mapper.xml详解Mapper.xml详解一对一多对一多对多原文链接:https://blog.csdn.net/qq_36850813/article/details/80037363 我们知道,每一款框架产品在实际开发中,都是通过XML文件来培训框架的相关流程的,MyBatis也不例外,主要有两个配置文件:config.xml和Mapper.xml,当然,这两种配......