Mac下的Apk多渠道验证工具

来源:互联网 发布:.net 淘宝客源码下载 编辑:程序博客网 时间:2024/06/16 09:57

我之前写过一个在Windows平台下基于jre环境的Apk多渠道验证工具,详见http://blog.csdn.net/h3c4lenovo/article/details/10041047

这种场景比较局限,而且之后修改渠道提供商之后再做修改很麻烦需要重新编译jar包。

于是这次我写了一个基于shell脚本和python脚本的多渠道验证工具,我的开发环境是mac,所以对于mac来说这个脚本不需要单独配置环境也不需要编译,稍作修改即可满足所有人的需要。


cannal.sh

count=0rootPath=./toolsPath=./tools/currentFolderName=${PWD##*/}#在tools路径下if [ "$currentFolderName" == "tools" ] ; thenrootPath=../toolsPath=./fiapkUnzipFolder="${rootPath}apkUnzipFolder"androidManifestTxt="${rootPath}AndroidManifest.txt"for line in $(find ${rootPath}* -prune -iname '*.apk'); do     echo "开始检查:$line"    unzip -o -q -d $apkUnzipFolder $line    java -jar ${toolsPath}AXMLPrinter2.jar $apkUnzipFolder/AndroidManifest.xml > $androidManifestTxtpython ${toolsPath}xmlParsePy.pylet count=$count+1doneif [ -d $apkUnzipFolder ]; then rm -rf $apkUnzipFolderfiif [ -f $androidManifestTxt ]; then rm -r $androidManifestTxtfiecho "完成,共检查${count}个文件"

xmlParsePy.py

import os toolsPath = './'if os.path.basename(os.getcwd())=='tools':toolsPath = '../'from xml.dom import minidomxmldoc = minidom.parse(toolsPath+'AndroidManifest.txt')itemlist = xmldoc.getElementsByTagName('meta-data') for s in itemlist :name = s.attributes['android:name'].valuevalue = s.attributes['android:value'].valueif name == 'UMENG_CHANNEL' :print value

主要思路就是遍历当前目录,找到目录下所有以*.apk结尾的文件,对其unzip解压缩,通过AXMLPrinter2.jar将混淆后的AndroidManifest文件反编译。

利用python对xml进行解析找到需要的渠道名称


资源下载:

http://download.csdn.net/detail/h3c4lenovo/8123251


1 0