python解析AndroidManifest.xml文件

  在写分析报告的时候需要贴上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

你可能感兴趣的:(python解析AndroidManifest.xml文件)