游戏出了版本之后提供给渠道有部分渠道会修改包名当他们内部系统做出调整后可能会改包名这个时候我又需要知道包名。之前没办法试图反编译apk发现失败了。然后就安装apk到手机上手机上再下载一个包查看软件然后找到包名。
之后我一直在想windows下应该是能实现的而碗豆荚之类的工具只显示apk的图标和它所需要的权限它对应的启动activity及包名是没有显示出来的。我尝试搜索”apk 包名查看工具”然后找到apkhelper这个工具下载使用后发现它能很快就显示相应的信息对此我就比较好奇了研究了一下记录几个重要的点。了解这些要点完全可以自己动手写工具了
重点是二个应用程序aapt.exe、unzip.exe
一、获取apk的包名及版本信息
通过aapt就能查到它所支持的参数及用法
aapt.exe dump badging xxx.apk > a.txt
将dump信息输入至a.txt中控制台打印信息显示中文会乱码打开a.txt会显示相应的信息
这样就拿到了
包名 -- package name
版本 -- versionCode、versionName
icon信息 – application-icon-xx
二、获取icon图标
右击apk通过压缩软件打开的确可以找到icon那是不是意味着通过unzip apk来找到icon呢可以是可以不过好几十M的东西解压也需要时间就显得很浪费了。我看apkhelper很快就显示出来了这个就需要再研究了之后我搜索“aapt 获取apk icon”找到这样一篇文章
我发现它是遍历文件流来查找文件如果我想在dos下使用也就只需要解压指定的文件即可。icon的路径通过第一步已经知道了现在就是要找命令如何调用了搜索到这篇帖子
unzip -j xx.apk file_path -d out_dir
不加-d 就直接将相应的文件解压到当前目录中了
参考链接