在写分析报告的时候需要贴上apk的权限,手动一个一个粘贴上去感觉很麻烦,于是自己写了个脚本自动获取权限,同时能给出相应的中文说明。不废话了,先来介绍python的几个函数:
1、Python 去除字符串空格的函数为:strip()去除两边空格,lstrip()去除左边空格,rstrip()去除右边空格。
# 例去除字符串左右空格 a = ' Python ' a = a.strip() # 去除空格后保存变量 print a # 输出变量a >> Python
2、startswith()函数判断文本是否以某个字符开始,endswith()函数判断文本是否以某个字符结束。
3、字符串查找:变量.find("要查找的内容"[,开始位置,结束位置]),开始位置和结束位置,表示要查找的范围,为空则表示查找所有。查找到后会返回位置,位置从0开始算,如果没找到则返回-1。在python中-1被认为是True,切记!
str = 'a,hello' print str.find('hello') # 在字符串str里查找字符串hello >> 2 # 输出结果
本文主要用到find函数。通过查找“uses-permission”来定位权限描述所在的位置,然后通过列表的“:”操作符来截取权限信息。具体代码如下:
1 #-*-coding:utf-8-*- 2 3 ''' uses-permission Array ''' 4 usesPermissionArray = [] 5 ''' sdk version ''' 6 sdkVersion = '' 7 ''' localesArray ''' 8 localesArray = [] 9 ''' icon file name ''' 10 #iconFileArray = [] 11 12 f = open(r"C:\Users\***\Desktop\AndroidManifest.xml", "r+") 13 xmlinfo = f.readlines() 14 15 for line in xmlinfo: 16 if line.find('uses-permission') > -1 : 17 usesPermissionArray.append(line[line.find('"')+1:line.rfind('"')]) 18 elif line.find('sdkVersion:') > -1 : 19 sdkVersion = line[line.find('"')+1:line.rfind('"')] #get sdkVersion 20 elif line.find('locales:') > -1 : 21 localesArray = line[line.find(':')+2:].split(' ') 22 print usesPermissionArray
这是我以前写的博客,后来发现github上有更全面的方法:https://github.com/antitree/AxmlParserPY