コード例 #1
0
    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
コード例 #2
0
ファイル: Apk.py プロジェクト: faheemfayyaz/androlyze
 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
             
             
コード例 #3
0
ファイル: get_field_type.py プロジェクト: jamella/SMVHunter
    def get_xml(self, fil):
        ap = AXMLPrinter(self.a.get_file(fil))
        buff = minidom.parseString(ap.get_buff())

        return buff
コード例 #4
0
    def get_xml(self, fil):
        ap = AXMLPrinter(self.a.get_file(fil))
        buff = minidom.parseString(ap.get_buff())

        return buff
コード例 #5
0
 def get_xml_from_file(self, xml_file):
     ap = AXMLPrinter(self.apk.get_file(xml_file))
     return minidom.parseString(ap.get_buff())