用python3解析androidmanifest.xml文件, 获得包名权限信息。
同时打印权限中danger权限的个数,具体权限见下图(第一行代码):
import os
import xml.etree.ElementTree as ET
#android namespace
namespace = '{http://schemas.android.com/apk/res/android}'
#android danger-permission list
dangerPermissionArray = ['android.permission.READ_CALENDAR',
'android.permission.WRITE_CALENDAR',
'android.permission.CAMERA',
'android.permission.WRITE_CONTACTS',
'android.permission.GET_ACCOUNTS',
'android.permission.READ_CONTACTS',
'android.permission.ACCESS_FINE_LOCATION',
'android.permission.ACCESS_COARSE_LOCATION',
'android.permission.RECORD_AUDIO',
'android.permission.READ_CALL_LOG',
'android.permission.READ_PHONE_STATE',
'android.permission.CALL_PHONE',
'android.permission.WRITE_CALL_LOG',
'android.permission.USE_SIP',
'android.permission.PROCESS_OUTGOING_CALLS',
'com.android.voicemail.permission.ADD_VOICEMAIL',
'android.permission.BODY_SENSORS',
'android.permission.READ_SMS',
'android.permission.RECEIVE_WAP_PUSH',
'android.permission.RECEIVE_MMS',
'android.permission.RECEIVE_SMS',
'android.permission.SEND_SMS',
'android.permission.READ_CELL_BROADCASTS',
'android.permission.READ_EXTERNAL_STORAGE',
'android.permission.WRITE_EXTERNAL_STORAGE']
#uses-permissions list
usesPermissionArray = []
#danger uses-permission list
dangerUsesPermissionArray = []
tree = ET.parse('AndroidManifest.xml')
root = tree.getroot()
#get packageName and print
packageName = root.attrib['package']
print(' ----------------')
print('|APK packagename:\n ----------------\n'+packageName,'\n')
#get permission and print
print(' ---------------')
print('|APK permission:\n ---------------')
for child in root.iter('uses-permission'):
childName = child.get(namespace+'name')
usesPermissionArray.append(childName)
print(childName)
if (dangerPermissionArray.count(childName)) > 0 :
dangerUsesPermissionArray.append(childName)
print('-------------------------------------------\nall work done with finding ',
len(usesPermissionArray),
' permissions\n ',
len(dangerUsesPermissionArray),
' are danger!\n-------------------------------------------')
os.system('pause')