From: Hans-Christoph Steiner Date: Wed, 14 Feb 2018 21:03:00 +0000 (+0100) Subject: update: switch to new androguard v3.1 API based on lxml X-Git-Tag: 1.0.1~4^2~1 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;ds=sidebyside;h=5281228ea5e1c3d615cf508f19cf1740a8829a57;p=fdroidserver.git update: switch to new androguard v3.1 API based on lxml apkobject.get_android_manifest_xml() used to return a xml.dom.minidom object, now it returns an lxml.etree.Element object. --- diff --git a/fdroidserver/update.py b/fdroidserver/update.py index a2f1a04c..16a7c3ba 100644 --- a/fdroidserver/update.py +++ b/fdroidserver/update.py @@ -1240,28 +1240,28 @@ def scan_apk_androguard(apk, apkfile): xml = apkobject.get_android_manifest_xml() - for item in xml.getElementsByTagName('uses-permission'): - name = str(item.getAttribute("android:name")) - maxSdkVersion = item.getAttribute("android:maxSdkVersion") - maxSdkVersion = None if maxSdkVersion is '' else int(maxSdkVersion) + for item in xml.findall('uses-permission'): + name = str(item.attrib['{' + xml.nsmap['android'] + '}name']) + maxSdkVersion = item.attrib.get('{' + xml.nsmap['android'] + '}maxSdkVersion') + maxSdkVersion = int(maxSdkVersion) if maxSdkVersion else None permission = UsesPermission( name, maxSdkVersion ) apk['uses-permission'].append(permission) - for item in xml.getElementsByTagName('uses-permission-sdk-23'): - name = str(item.getAttribute("android:name")) - maxSdkVersion = item.getAttribute("android:maxSdkVersion") - maxSdkVersion = None if maxSdkVersion is '' else int(maxSdkVersion) + for item in xml.findall('uses-permission-sdk-23'): + name = str(item.attrib['{' + xml.nsmap['android'] + '}name']) + maxSdkVersion = item.attrib.get('{' + xml.nsmap['android'] + '}maxSdkVersion') + maxSdkVersion = int(maxSdkVersion) if maxSdkVersion else None permission_sdk_23 = UsesPermissionSdk23( name, maxSdkVersion ) apk['uses-permission-sdk-23'].append(permission_sdk_23) - for item in xml.getElementsByTagName('uses-feature'): - feature = str(item.getAttribute("android:name")) + for item in xml.findall('uses-feature'): + feature = str(item.attrib['{' + xml.nsmap['android'] + '}name']) if feature != "android.hardware.screen.portrait" \ and feature != "android.hardware.screen.landscape": if feature.startswith("android.feature."):