APK for testing maxSdkVersion handling

APK is org.bitbucket.tickytacky.mirrormirror_4.apk disassembled with
`apktool decode`, maxSdkVersion added, then reassembled with `apktool build`
This commit is contained in:
Hans-Christoph Steiner 2025-02-17 16:22:55 +01:00
parent eef3188600
commit 40be283c4a
8 changed files with 130 additions and 6 deletions

View File

@ -637,6 +637,7 @@ include tests/metadata/obb.main.twoversions.yml
include tests/metadata/org.adaway.yml
include tests/metadata/org.fdroid.ci.test.app.yml
include tests/metadata/org.fdroid.fdroid.yml
include tests/metadata/org.maxsdkversion.yml
include tests/metadata/org.smssecure.smssecure/signatures/134/28969C09.RSA
include tests/metadata/org.smssecure.smssecure/signatures/134/28969C09.SF
include tests/metadata/org.smssecure.smssecure/signatures/134/MANIFEST.MF
@ -689,6 +690,7 @@ include tests/repo/obb.main.twoversions_1101613.apk
include tests/repo/obb.main.twoversions_1101615.apk
include tests/repo/obb.main.twoversions_1101617.apk
include tests/repo/obb.main.twoversions_1101617_src.tar.gz
include tests/repo/org.maxsdkversion_4.apk
include tests/repo/org.videolan.vlc/en-US/icon.png
include tests/repo/org.videolan.vlc/en-US/phoneScreenshots/screenshot10.png
include tests/repo/org.videolan.vlc/en-US/phoneScreenshots/screenshot12.png

View File

@ -0,0 +1,2 @@
Name: maxSdkVersion
Summary: Test setting maxSdkVersion in an APK

View File

@ -3,9 +3,9 @@
"version": 20002,
"index": {
"name": "/index-v2.json",
"sha256": "bef31251dd4bdfc34f9a9e7b93dbf3e0bc7172e17d1d72a550c10d1bc183c01c",
"size": 53527,
"numPackages": 10
"sha256": "f0912b64db80168ee807f43ab3470bb709b6659aee05ad63057dcbcd1c97dc5e",
"size": 55186,
"numPackages": 11
},
"diffs": {}
}

View File

@ -91,6 +91,16 @@
}
}
},
{
"suggestedVersionCode": "4",
"license": "Unknown",
"name": "maxSdkVersion",
"summary": "Test setting maxSdkVersion in an APK",
"added": 1739805810000,
"icon": "org.maxsdkversion.4.png",
"packageName": "org.maxsdkversion",
"lastUpdated": 1739805810000
},
{
"categories": [
"Development"
@ -652,6 +662,32 @@
"versionName": "0.1"
}
],
"org.maxsdkversion": [
{
"added": 1739805810000,
"apkName": "org.maxsdkversion_4.apk",
"features": [
"android.hardware.camera.front"
],
"hash": "877d582369d2840fc0d6892e44feaaad21419b0e35af42f22b3e127bcd08274d",
"hashType": "sha256",
"maxSdkVersion": 25,
"minSdkVersion": 14,
"packageName": "org.maxsdkversion",
"sig": "1a5e67bcef6b2d6242f2d36982b54589",
"signer": "401a3a5843a3d5cebc22e6de5cb76d08eaa6797122d7fe1283df1d192e132f5e",
"size": 12768,
"targetSdkVersion": 19,
"uses-permission": [
[
"android.permission.CAMERA",
null
]
],
"versionCode": 4,
"versionName": "1.0.3"
}
],
"souch.smsbypass": [
{
"added": 1524700800000,

View File

@ -1381,6 +1381,61 @@
}
}
},
"org.maxsdkversion": {
"metadata": {
"added": 1739805810000,
"lastUpdated": 1739805810000,
"name": {
"en-US": "maxSdkVersion"
},
"summary": {
"en-US": "Test setting maxSdkVersion in an APK"
},
"icon": {
"en-US": {
"name": "/icons/org.maxsdkversion.4.png",
"sha256": "428442a0b75be04af3191a066041341f8a0b289972f99868687f43e02055a348",
"size": 91
}
},
"preferredSigner": "401a3a5843a3d5cebc22e6de5cb76d08eaa6797122d7fe1283df1d192e132f5e"
},
"versions": {
"877d582369d2840fc0d6892e44feaaad21419b0e35af42f22b3e127bcd08274d": {
"added": 1739805810000,
"file": {
"name": "/org.maxsdkversion_4.apk",
"sha256": "877d582369d2840fc0d6892e44feaaad21419b0e35af42f22b3e127bcd08274d",
"size": 12768,
"ipfsCIDv1": "bafybeibdls2h4mpfw5gks3iirsne2qaez6uefwb5xmqkhahqbakvdszk6y"
},
"manifest": {
"versionName": "1.0.3",
"maxSdkVersion": 25,
"versionCode": 4,
"features": [
{
"name": "android.hardware.camera.front"
}
],
"usesSdk": {
"minSdkVersion": 14,
"targetSdkVersion": 19
},
"signer": {
"sha256": [
"401a3a5843a3d5cebc22e6de5cb76d08eaa6797122d7fe1283df1d192e132f5e"
]
},
"usesPermission": [
{
"name": "android.permission.CAMERA"
}
]
}
}
}
},
"souch.smsbypass": {
"metadata": {
"added": 1524700800000,

View File

@ -147,6 +147,35 @@ APK is called F-Droid Privileged Extension.</desc>
<added>2016-03-10</added>
</package>
</application>
<application id="org.maxsdkversion">
<id>org.maxsdkversion</id>
<added>2025-02-17</added>
<lastupdated>2025-02-17</lastupdated>
<name>maxSdkVersion</name>
<summary>Test setting maxSdkVersion in an APK</summary>
<icon>org.maxsdkversion.4.png</icon>
<desc>No description available</desc>
<license>Unknown</license>
<web></web>
<source></source>
<tracker></tracker>
<marketversion></marketversion>
<marketvercode>4</marketvercode>
<package>
<version>1.0.3</version>
<versioncode>4</versioncode>
<apkname>org.maxsdkversion_4.apk</apkname>
<hash type="sha256">877d582369d2840fc0d6892e44feaaad21419b0e35af42f22b3e127bcd08274d</hash>
<size>12768</size>
<sdkver>14</sdkver>
<targetSdkVersion>19</targetSdkVersion>
<maxsdkver>25</maxsdkver>
<added>2025-02-17</added>
<sig>1a5e67bcef6b2d6242f2d36982b54589</sig>
<permissions>CAMERA</permissions>
<features>android.hardware.camera.front</features>
</package>
</application>
<application id="no.min.target.sdk">
<id>no.min.target.sdk</id>
<added>2018-10-10</added>

Binary file not shown.

View File

@ -605,7 +605,7 @@ class UpdateTest(unittest.TestCase):
apps = fdroidserver.metadata.read_metadata()
knownapks = fdroidserver.common.KnownApks()
apks, cachechanged = fdroidserver.update.process_apks({}, 'repo', knownapks, False)
self.assertEqual(len(apks), 17)
self.assertEqual(len(apks), 18)
apk = apks[1]
self.assertEqual(apk['packageName'], 'com.politedroid')
self.assertEqual(apk['versionCode'], 3)
@ -668,7 +668,7 @@ class UpdateTest(unittest.TestCase):
fdroidserver.update.options.clean = False
read_from_json = fdroidserver.update.get_cache()
self.assertEqual(19, len(read_from_json))
self.assertEqual(20, len(read_from_json))
for f in glob.glob('repo/*.apk'):
self.assertTrue(os.path.basename(f) in read_from_json)
@ -1241,7 +1241,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), 17)
self.assertEqual(len(apks), 18)
foundtest = False
for apk in apks:
if apk['packageName'] == 'com.politedroid' and apk['versionCode'] == 3: