很多站长朋友们都不太清楚php解析apk,今天小编就来给大家整理php解析apk,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php怎么获取apk的不同大小的icon 2、 怎么用php获取apk中的图标信息 3、 PHP获取安卓apk包里的apk签名 php怎么获取apk的不同大小的icon先前我采用的方法就是在服务器安装了java的扩展,通过解析apk得出默认icon路径,
我每个apk都有默认icon路径,其他大小的icon其实都是变了一个目录,目录一般都比较有规律,比如:drawable-hdpi,drawable-ldpi,drawable-mdpi这样的目录里,获取到默认icon后根据规律设计规则再解压icon,
或者更加目录的前缀“drawable”,当然这个可能会变,只要你依据java获取的默认icon路径来获取其他的就是没问题的,举个例子:比如获取到的默认icon路径是“test/drawable-hdpi/test.png”,那么其他的icon应该就是“test/drawable-mdpi/test.png”
怎么用php获取apk中的图标信息1 用aapt读取包信息
aapt dump badging ./xxx.apk
aapt包含在android sdk中的build-tools文件夹,可以把这个文件拷到服务器上单独使用,大小仅1.2M;需要注意的一点是,该程序是32位环境的程序,64位系统运行可能需要安装大概三个扩展包(如果本身没有的话),我服务器CentOS可以直接运行,就不细说了
该命令执行很快,瞬间. PHP实时返回数据没问题
这里返回的信息中就已经包含了包名\APP名称 及应用图标在apk包中的位置(类似res/drawable-mdpi/icon.png).
命令行返回的信息是纯文本,PHP不能直接用,我下面的PHP源码中会将其转为数组,以方便使用
2 用unzip直接提取需要的图标文件
#解压apk包中指定图片
unzip ./xxx.apk res/drawable-mdpi/icon.png -d /tmp
#将解压出来的图片移到我们需要的位置
mv /tmp/res/drawable-mdpi/icon.png /tmp/temp.png
因为apk本身就是zip文件重命名而已,所以无需改名,可以直接解压. 另unzip可以指定只解压压缩包中某文件,也省了很多资源.
3 最后就是在PHP中用exec执行这些命令
PHP获取安卓apk包里的apk签名所需工具:aapt,Android SDK中的工具,只有一个exe,可以直接运行。
keytool,JDK中的工具,需要安装JDK环境。
需要提供目标应用的apk
1、获取包名
例如:aapt.exe dump badging C:\Users\Administrator\Desktop\demo-apk-1.0.1.8791.apk > C:\Users\Administrator\Desktop\1.txt
获取到的包名是com.pakgname.swbg
2、获取签名
SHA1: 56:BD:02:6B:9D:53:D7:F5:32:B2:BC:BD:BB:34:5B:F1:CD:EF:7F:C0
这里借助github开源的类apkparser
在项目composer.json中执行下面命令或修改composer.json引入即可
方法二适用于没有JAVA环境的情况下,一般linux都会有openssl环境。
原理:通过分析方法一中,发现apk包解压之后,里面会有.rsa签名证书,此证书是一个符合pki体系的x509证书,通过openssl命令即可查看信息。
关于php解析apk的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php解析apk PHP解析二维码的详细内容...