Mac下的Apk多渠道验证工具

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

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

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


cannal.sh

count=0
rootPath=./
toolsPath=./tools/
currentFolderName=${PWD##*/}

#在tools路径下
if [ "$currentFolderName" == "tools" ] ; then
	rootPath=../
	toolsPath=./
fi

apkUnzipFolder="${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 > $androidManifestTxt
	python ${toolsPath}xmlParsePy.py
	let count=$count+1
done

if [ -d $apkUnzipFolder ]; then 
rm -rf $apkUnzipFolder
fi

if [ -f $androidManifestTxt ]; then 
rm -r $androidManifestTxt
fi

echo "完成,共检查${count}个文件"

xmlParsePy.py

import os 

toolsPath = './'
if os.path.basename(os.getcwd())=='tools':
	toolsPath = '../'

from xml.dom import minidom
xmldoc = minidom.parse(toolsPath+'AndroidManifest.txt')
itemlist = xmldoc.getElementsByTagName('meta-data') 
for s in itemlist :
	name = s.attributes['android:name'].value
	value = s.attributes['android:value'].value
	if name == 'UMENG_CHANNEL' :
		print value

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

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


资源下载:

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


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值