From e17815e9f066ba40fedb6db2786f861b696b7585 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Thu, 26 Apr 2018 13:17:25 +0200 Subject: [PATCH] handle bad SDK Version values in APKs Even though it is invalid to have *SdkVersion in AndroidManifest.xml set as anything but an integer, sometimes people manage to get something in there. `fdroid update` needs to be able to handle all that. * https://developer.android.com/guide/topics/manifest/uses-sdk-element#min * https://gitlab.com/souch/SMSbypass/blob/v0.9/app/src/main/AndroidManifest.xml#L29 * https://gitlab.com/souch/SMSbypass/blob/v0.9/app/src/main/res/values/strings.xml#L27 admin#65 --- fdroidserver/update.py | 36 +++++++++++++--- tests/metadata/souch.smsbypass.txt | 52 +++++++++++++++++++++++ tests/repo/index-v1.json | 64 ++++++++++++++++++++++++++++- tests/repo/index.xml | 31 ++++++++++++++ tests/repo/souch.smsbypass_9.apk | Bin 0 -> 81295 bytes tests/stats/known_apks.txt | 1 + tests/update.TestCase | 8 +++- 7 files changed, 183 insertions(+), 9 deletions(-) create mode 100644 tests/metadata/souch.smsbypass.txt create mode 100644 tests/repo/souch.smsbypass_9.apk diff --git a/fdroidserver/update.py b/fdroidserver/update.py index 830a2252..b108f38a 100644 --- a/fdroidserver/update.py +++ b/fdroidserver/update.py @@ -1181,6 +1181,25 @@ def scan_apk_aapt(apk, apkfile): apk['icons_src'] = _get_apk_icons_src(apkfile, icon_name) +def _sanitize_sdk_version(value): + """Sanitize the raw values from androguard to handle bad values + + minSdkVersion/targetSdkVersion/maxSdkVersion must be integers, + but that doesn't stop devs from doing strange things like + setting them using Android XML strings. + + https://gitlab.com/souch/SMSbypass/blob/v0.9/app/src/main/AndroidManifest.xml#L29 + https://gitlab.com/souch/SMSbypass/blob/v0.9/app/src/main/res/values/strings.xml#L27 + """ + try: + sdk_version = int(value) + if sdk_version > 0: + return str(sdk_version) # heinous, but this is still str in the codebase + except (TypeError, ValueError): + pass + return None + + def scan_apk_androguard(apk, apkfile): try: from androguard.core.bytecodes.apk import APK @@ -1221,12 +1240,17 @@ def scan_apk_androguard(apk, apkfile): except ValueError: pass - if apkobject.get_max_sdk_version() is not None: - apk['maxSdkVersion'] = apkobject.get_max_sdk_version() - if apkobject.get_min_sdk_version() is not None: - apk['minSdkVersion'] = apkobject.get_min_sdk_version() - if apkobject.get_target_sdk_version() is not None: - apk['targetSdkVersion'] = apkobject.get_target_sdk_version() + minSdkVersion = _sanitize_sdk_version(apkobject.get_min_sdk_version()) + if minSdkVersion is not None: + apk['minSdkVersion'] = minSdkVersion + + targetSdkVersion = _sanitize_sdk_version(apkobject.get_target_sdk_version()) + if targetSdkVersion is not None: + apk['targetSdkVersion'] = targetSdkVersion + + maxSdkVersion = _sanitize_sdk_version(apkobject.get_max_sdk_version()) + if maxSdkVersion is not None: + apk['maxSdkVersion'] = maxSdkVersion icon_id_str = apkobject.get_element("application", "icon") if icon_id_str: diff --git a/tests/metadata/souch.smsbypass.txt b/tests/metadata/souch.smsbypass.txt new file mode 100644 index 00000000..6b16e050 --- /dev/null +++ b/tests/metadata/souch.smsbypass.txt @@ -0,0 +1,52 @@ +Categories:Phone & SMS +License:GPL-3.0 +Web Site:https://gitlab.com/souch/SMSbypass +Source Code:https://gitlab.com/souch/SMSbypass/tree/HEAD +Issue Tracker:https://gitlab.com/souch/SMSbypass/issues +Donate:http://rodolphe.souchaud.free.fr/donate +FlattrID:cad90e036b975ed129a3ce80a0750466 + +Auto Name:Battery level +Summary:Filter SMS and show them in a fake app +Description: +In order to keep away curious eyes, SMS-bypass filters incoming SMS messages +before they reach your inbox. Based on bughunter2.smsfilter. + +Features: + +* Discrete fake app "Battery level": Long tap on Battery percentage will show SMS. +* Filter incoming SMS specified address: redirect the SMS to SMS-bypass messages list; remove SMS arrival sound or vibration; show a discreet notification icon (battery level); vibrate if checked in settings +* Add contact from contact list +* Export messages to a text file +. + +Repo Type:git +Repo:https://gitlab.com/souch/SMSbypass.git + +Build:0.8,5 + commit=v0.8 + subdir=app + gradle=yes + prebuild=sed -i -e '/minSdkVersion/amaxSdkVersion 19\n' build.gradle + +Build:0.8b,6 + disable=don't build, just use as template for AUM, correct VC is 8 + commit=2bd6164ff6391906af2af2b484de69a4ff926a01 + subdir=app + gradle=yes + +Build:0.8.1,8 + disable=mistagged + commit=v0.8.1 + subdir=app + gradle=yes + +Build:0.9,9 + commit=v0.9 + subdir=app + gradle=yes + +Auto Update Mode:Version v%v +Update Check Mode:Tags +Current Version:0.9 +Current Version Code:9 diff --git a/tests/repo/index-v1.json b/tests/repo/index-v1.json index cda10cf2..912f610c 100644 --- a/tests/repo/index-v1.json +++ b/tests/repo/index-v1.json @@ -21,6 +21,26 @@ ] }, "apps": [ + { + "categories": [ + "Phone & SMS" + ], + "suggestedVersionName": "0.9", + "suggestedVersionCode": "9", + "description": "

In order to keep away curious eyes, SMS-bypass filters incoming SMS messages before they reach your inbox. Based on bughunter2.smsfilter.

Features:

", + "donate": "http://rodolphe.souchaud.free.fr/donate", + "flattrID": "cad90e036b975ed129a3ce80a0750466", + "issueTracker": "https://gitlab.com/souch/SMSbypass/issues", + "license": "GPL-3.0", + "name": "Battery level", + "sourceCode": "https://gitlab.com/souch/SMSbypass/tree/HEAD", + "summary": "Filter SMS and show them in a fake app", + "webSite": "https://gitlab.com/souch/SMSbypass", + "added": 1524700800000, + "icon": "souch.smsbypass.9.png", + "packageName": "souch.smsbypass", + "lastUpdated": 1524700800000 + }, { "categories": [ "tests" @@ -525,6 +545,48 @@ "versionCode": 1619, "versionName": "0.1" } + ], + "souch.smsbypass": [ + { + "added": 1524700800000, + "apkName": "souch.smsbypass_9.apk", + "hash": "80b0ae68a1189baa3ee6717092e3dbf1a4210165f7f7e5f2f9616bd63a2ec01d", + "hashType": "sha256", + "minSdkVersion": "8", + "packageName": "souch.smsbypass", + "sig": "e50c99753cd45e2736d52cb49be07581", + "signer": "d3aec784b1fd71549fc22c999789122e3639895db6bd585da5835fbe3db6985c", + "size": 81295, + "targetSdkVersion": "18", + "uses-permission": [ + [ + "android.permission.RECEIVE_SMS", + null + ], + [ + "android.permission.SEND_SMS", + null + ], + [ + "android.permission.READ_CONTACTS", + null + ], + [ + "android.permission.WRITE_EXTERNAL_STORAGE", + null + ], + [ + "android.permission.VIBRATE", + null + ], + [ + "android.permission.READ_EXTERNAL_STORAGE", + null + ] + ], + "versionCode": 9, + "versionName": "0.9" + } ] } -} +} \ No newline at end of file diff --git a/tests/repo/index.xml b/tests/repo/index.xml index ef6988de..9b6ef50a 100644 --- a/tests/repo/index.xml +++ b/tests/repo/index.xml @@ -8,6 +8,37 @@ + + souch.smsbypass + 2018-04-26 + 2018-04-26 + Battery level + Filter SMS and show them in a fake app + souch.smsbypass.9.png + <p>In order to keep away curious eyes, SMS-bypass filters incoming SMS messages before they reach your inbox. Based on bughunter2.smsfilter.</p><p>Features:</p><ul><li> Discrete fake app "Battery level": Long tap on Battery percentage will show SMS.</li><li> Filter incoming SMS specified address: redirect the SMS to SMS-bypass messages list; remove SMS arrival sound or vibration; show a discreet notification icon (battery level); vibrate if checked in settings</li><li> Add contact from contact list</li><li> Export messages to a text file</li></ul> + GPL-3.0 + Phone & SMS + Phone & SMS + https://gitlab.com/souch/SMSbypass + https://gitlab.com/souch/SMSbypass/tree/HEAD + https://gitlab.com/souch/SMSbypass/issues + http://rodolphe.souchaud.free.fr/donate + cad90e036b975ed129a3ce80a0750466 + 0.9 + 9 + + 0.9 + 9 + souch.smsbypass_9.apk + 80b0ae68a1189baa3ee6717092e3dbf1a4210165f7f7e5f2f9616bd63a2ec01d + 81295 + 8 + 18 + 2018-04-26 + e50c99753cd45e2736d52cb49be07581 + READ_CONTACTS,READ_EXTERNAL_STORAGE,RECEIVE_SMS,SEND_SMS,VIBRATE,WRITE_EXTERNAL_STORAGE + + duplicate.permisssions 2017-12-22 diff --git a/tests/repo/souch.smsbypass_9.apk b/tests/repo/souch.smsbypass_9.apk new file mode 100644 index 0000000000000000000000000000000000000000..ce96f299bf1a7b21ea347929a20162de6f417b25 GIT binary patch literal 81295 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
2%~u!!ye3uFQ!iO_Ev+mfO9u1|?Ugoq4TYT-H?8 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 RoOz%O^9G-k*Z`En{s$K?^a%g} literal 0 HcmV?d00001 diff --git a/tests/stats/known_apks.txt b/tests/stats/known_apks.txt index ef90c797..392c68ff 100644 --- a/tests/stats/known_apks.txt +++ b/tests/stats/known_apks.txt @@ -10,4 +10,5 @@ obb.main.twoversions_1101615.apk obb.main.twoversions 2016-01-01 obb.main.twoversions_1101617.apk obb.main.twoversions 2016-06-20 obb.mainpatch.current_1619.apk obb.mainpatch.current 2016-04-23 obb.mainpatch.current_1619_another-release-key.apk obb.mainpatch.current 2017-06-01 +souch.smsbypass_9.apk souch.smsbypass 2018-04-26 urzip-; Рахма́нинов, [rɐxˈmanʲɪnəf] سيرجي_رخمانينوف 谢尔盖·.apk info.guardianproject.urzip 2016-06-23 diff --git a/tests/update.TestCase b/tests/update.TestCase index eb59c3d0..6616669f 100755 --- a/tests/update.TestCase +++ b/tests/update.TestCase @@ -253,7 +253,7 @@ class UpdateTest(unittest.TestCase): apps = fdroidserver.metadata.read_metadata(xref=True) knownapks = fdroidserver.common.KnownApks() apks, cachechanged = fdroidserver.update.process_apks({}, 'repo', knownapks, False) - self.assertEqual(len(apks), 13) + self.assertEqual(len(apks), 14) apk = apks[0] self.assertEqual(apk['packageName'], 'com.politedroid') self.assertEqual(apk['versionCode'], 3) @@ -298,6 +298,10 @@ class UpdateTest(unittest.TestCase): if os.path.basename(os.getcwd()) != 'tests': raise Exception('This test must be run in the "tests/" subdir') + apk_info = fdroidserver.update.scan_apk('repo/souch.smsbypass_9.apk') + self.assertIsNone(apk_info.get('maxSdkVersion')) + self.assertEqual(apk_info.get('versionName'), '0.9') + apk_info = fdroidserver.update.scan_apk('repo/duplicate.permisssions_9999999.apk') self.assertEqual(apk_info['icons_src'], {'160': 'res/drawable/ic_launcher.png', '-1': 'res/drawable/ic_launcher.png'}) @@ -549,7 +553,7 @@ class UpdateTest(unittest.TestCase): knownapks = fdroidserver.common.KnownApks() apks, cachechanged = fdroidserver.update.process_apks({}, 'repo', knownapks, False) fdroidserver.update.translate_per_build_anti_features(apps, apks) - self.assertEqual(len(apks), 13) + self.assertEqual(len(apks), 14) foundtest = False for apk in apks: if apk['packageName'] == 'com.politedroid' and apk['versionCode'] == 3: