def get_manifest_exported_components(self): ''' Get the package names which are exported. Therefore the manifest looks like: " <activity android:name=".SQLDemo" android:exported="true"> " Returns ------- set<str> Set of package names. ''' pns = set() for i in self.zip.namelist(): if i == "AndroidManifest.xml": ap = AXMLPrinter(self.zip.read(i)) dom = minidom.parseString(ap.get_buff()) for component_type in (MANIFEST_ACTIVITY, MANIFEST_PROVIDER, MANIFEST_RECEIVER, MANIFEST_SERVICE): component_tags = dom.getElementsByTagName(component_type) # check that tag is available for component_tag in component_tags: component_attributes = component_tag.attributes component_name = component_attributes.getNamedItemNS( MANIFEST_NS, "name").nodeValue exported = False exported_tag = component_attributes.getNamedItemNS( MANIFEST_NS, "exported") if exported_tag: exported = exported_tag.nodeValue if exported.lower() == "true": pns.add(component_name) return pns
def get_manifest_exported_components(self): ''' Get the package names which are exported. Therefore the manifest looks like: " <activity android:name=".SQLDemo" android:exported="true"> " Returns ------- set<str> Set of package names. ''' pns = set() for i in self.zip.namelist(): if i == "AndroidManifest.xml": ap = AXMLPrinter(self.zip.read(i)) dom = minidom.parseString(ap.get_buff()) for component_type in (MANIFEST_ACTIVITY, MANIFEST_PROVIDER, MANIFEST_RECEIVER, MANIFEST_SERVICE): component_tags = dom.getElementsByTagName(component_type) # check that tag is available for component_tag in component_tags: component_attributes = component_tag.attributes component_name = component_attributes.getNamedItemNS(MANIFEST_NS, "name").nodeValue exported = False exported_tag = component_attributes.getNamedItemNS(MANIFEST_NS, "exported") if exported_tag: exported = exported_tag.nodeValue if exported.lower() == "true": pns.add(component_name) return pns
def get_xml(self, fil): ap = AXMLPrinter(self.a.get_file(fil)) buff = minidom.parseString(ap.get_buff()) return buff
def get_xml_from_file(self, xml_file): ap = AXMLPrinter(self.apk.get_file(xml_file)) return minidom.parseString(ap.get_buff())