mirror of
https://github.com/f-droid/fdroidserver.git
synced 2025-11-14 11:10:30 +03:00
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
This commit is contained in:
parent
4ba5b8b5ec
commit
e17815e9f0
7 changed files with 183 additions and 9 deletions
|
|
@ -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:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue