在寫分析報告的時候需要貼上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