From 924215f01fdcdd52216335bc2ed545d816042d64 Mon Sep 17 00:00:00 2001 From: CrimsonGlory Date: Thu, 24 May 2018 15:02:29 -0300 Subject: [PATCH] Update apk.py Since a malformed apk can return non-ascii data, better to use string formatting. ``` 2018-05-23T13:17:38+00:00 172.21.0.1 worker_no_vt[1000]: File "/myapp/PlugIns/APK/tdoly_apk_parse/apk.py", line 466, in get_activities 2018-05-23T13:17:38+00:00 172.21.0.1 worker_no_vt[1000]: return self.get_elements("activity", "name") 2018-05-23T13:17:38+00:00 172.21.0.1 worker_no_vt[1000]: File "/myapp/PlugIns/APK/tdoly_apk_parse/apk.py", line 400, in get_elements 2018-05-23T13:17:38+00:00 172.21.0.1 worker_no_vt[1000]: l.append(str(value)) 2018-05-23T13:17:38+00:00 172.21.0.1 worker_no_vt[1000]: UnicodeEncodeError: 'ascii' codec can't encode character u'\u1e37' in position 2: ordinal not in range(128) 2018-05-23T13:17:38+00:00 172.21.0.1 worker_no_vt[1000]: INFO:root:**** PlugIn : apk_metadata **** 2018-05-23T13:17:38+00:00 172.21.0.1 worker_no_vt[1000]: INFO:root:Traceback (most recent call last): ``` --- apk.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apk.py b/apk.py index aa35731..62fefa1 100644 --- a/apk.py +++ b/apk.py @@ -208,7 +208,7 @@ def __init__(self, filename, raw=False, mode="r", magic_file=None, zipmodule=ZIP "versionName") for item in self.xml[i].getElementsByTagName('uses-permission'): - self.permissions.append(str(item.getAttributeNS(NS_ANDROID_URI, "name"))) + self.permissions.append("%s" % (item.getAttributeNS(NS_ANDROID_URI, "name"))) self.valid_apk = True @@ -394,7 +394,7 @@ def get_elements(self, tag_name, attribute): value = item.getAttributeNS(NS_ANDROID_URI, attribute) value = self.format_value(value) - l.append(str(value)) + l.append("%s" % value) return l def format_value(self, value):