#!/usr/bin/python # -*- coding: utf-8 -*- from pychrysalide import Plugin from manifest import AndroidManifest from xml.dom import minidom import zipfile class AndroPerms(Plugin): """List all permissions given to an APK files.""" def get_action(self): """Register the plugin for given actions.""" return Plugin.PGA_DISASS_PROCESS def execute_on_binary(self, binary, action): """Process once a binary is disassembled.""" zf = zipfile.ZipFile(binary.get_filename()) f = zf.open('AndroidManifest.xml', 'r') data = f.read() f.closed manifest = AndroidManifest(data) xml = minidom.parseString(manifest.getXML()) print print "Permissions for ", binary.get_filename(), " :" print "-------------" print for p in xml.getElementsByTagName("uses-permission"): print p.getAttribute("android:name") print