--- /home/fdroid/fdroiddata/tmp/com.trianguloy.urlchecker_32.apk +++ /home/fdroid/fdroiddata/tmp/sigcp_com.trianguloy.urlchecker_32.apk ├── /usr/lib/android-sdk/build-tools/debian/apksigner verify --verbose --print-certs {} │┄ error from `/usr/lib/android-sdk/build-tools/debian/apksigner verify --verbose --print-certs {}` (b): │┄ DOES NOT VERIFY │┄ ERROR: APK Signature Scheme v3 signer #1: APK integrity check failed. CHUNKED_SHA256 digest mismatch. Expected: <2da47c0c59650d8dad8d203414d9e870c86228046df4427b5319b07a9bb86e54>, actual: <201550b95f0ee24517bf0a27aa436edf144b12b90da27e50c3c113bcdb2e0ecb> │┄ ERROR: APK Signature Scheme v3 signer #1: APK integrity check failed. VERITY_CHUNKED_SHA256 digest mismatch. Expected: , actual: <35619aec3da3cef0301e8607cf8e1b78fd5e1e4068a74bb2379a9a2a541a92f525100b0000000000> │ @@ -1,18 +0,0 @@ │ -Verifies │ -Verified using v1 scheme (JAR signing): true │ -Verified using v2 scheme (APK Signature Scheme v2): true │ -Verified using v3 scheme (APK Signature Scheme v3): true │ -Verified using v4 scheme (APK Signature Scheme v4): false │ -Verified for SourceStamp: false │ -Number of signers: 1 │ -Signer #1 certificate DN: CN=FDroid, OU=FDroid, O=fdroid.org, L=ORG, ST=ORG, C=UK │ -Signer #1 certificate SHA-256 digest: 93d79b1e72d5a6b0bc6811b9bc0a83181c3510d58c11571140ff3f8a63f22174 │ -Signer #1 certificate SHA-1 digest: 4379772b4b19bbe08f35f769ca28919f85cc0298 │ -Signer #1 certificate MD5 digest: 8231c199c126d8f230bd39593e81007f │ -Signer #1 key algorithm: RSA │ -Signer #1 key size (bits): 2048 │ -Signer #1 public key SHA-256 digest: 38e723ee5e083c73b7a0cbd9e570b00dbbc88b9b31702fa1a28b24bbcb29d859 │ -Signer #1 public key SHA-1 digest: 7dedb2f7648cc29e0821316b638068acddcbf1ae │ -Signer #1 public key MD5 digest: ddcc343b6944895e3518a85333d9b2f6 │ -WARNING: META-INF/com/android/build/gradle/app-metadata.properties not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. │ -WARNING: META-INF/version-control-info.textproto not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. ├── zipinfo {} │ @@ -212,8 +212,8 @@ │ -rw---- 0.0 fat 1228 b- defN 81-Jan-01 01:01 res/zE.xml │ -rw---- 0.0 fat 2460 b- defN 81-Jan-01 01:01 res/z_.xml │ -rw---- 0.0 fat 375 b- stor 81-Jan-01 01:01 res/zr.png │ -rw---- 0.0 fat 467332 b- stor 81-Jan-01 01:01 resources.arsc │ -rw---- 2.0 fat 17820 b- defN 81-Jan-01 01:01 META-INF/21561DFD.SF │ -rw---- 2.0 fat 1334 b- defN 81-Jan-01 01:01 META-INF/21561DFD.RSA │ -rw---- 2.0 fat 17693 b- defN 81-Jan-01 01:01 META-INF/MANIFEST.MF │ -217 files, 910178 bytes uncompressed, 701918 bytes compressed: 22.9% │ +217 files, 910178 bytes uncompressed, 701917 bytes compressed: 22.9% ├── classes.dex │ ├── dexdump -a -d -f -h {} │ │┄ Ignoring differences in offsets to keep diff size reasonable. │ │ @@ -1,12 +1,12 @@ │ │ DEX version '035' │ │ DEX file header: │ │ magic : 'dex\n035\0' │ │ -checksum : 6a4aaef3 │ │ -signature : 5bce...1aea │ │ +checksum : 65dfad89 │ │ +signature : 79f6...a297 │ │ file_size : 163656 │ │ header_size : 112 │ │ link_size : 0 │ │ link_off : 0 (0x000000) │ │ string_ids_size : 1452 │ │ string_ids_off : 112 (0x000070) │ │ type_ids_size : 517 │ │ @@ -426,40 +426,40 @@ │ │ access : 0x10008 (STATIC CONSTRUCTOR) │ │ code - │ │ registers : 26 │ │ ins : 0 │ │ outs : 26 │ │ insns size : 63 16-bit code units │ │ 00ad04: |[00ad04] a.b.:()V │ │ -00ad14: 1a18 8b04 |0000: const-string v24, "nb-NO" // string@048b │ │ -00ad18: 1a19 9004 |0002: const-string v25, "nl" // string@0490 │ │ +00ad14: 1a18 d603 |0000: const-string v24, "fr-FR" // string@03d6 │ │ +00ad18: 1a19 a403 |0002: const-string v25, "de" // string@03a4 │ │ 00ad1c: 1a00 b803 |0004: const-string v0, "en" // string@03b8 │ │ -00ad20: 1a01 de04 |0006: const-string v1, "pt-PT" // string@04de │ │ -00ad24: 1a02 7104 |0008: const-string v2, "ja" // string@0471 │ │ -00ad28: 1a03 8405 |000a: const-string v3, "tr" // string@0584 │ │ -00ad2c: 1a04 4204 |000c: const-string v4, "hi" // string@0442 │ │ -00ad30: 1a05 9e05 |000e: const-string v5, "vi" // string@059e │ │ -00ad34: 1a06 6f04 |0010: const-string v6, "iw" // string@046f │ │ -00ad38: 1a07 a705 |0012: const-string v7, "zh-CN" // string@05a7 │ │ -00ad3c: 1a08 a403 |0014: const-string v8, "de" // string@03a4 │ │ -00ad40: 1a09 b503 |0016: const-string v9, "el" // string@03b5 │ │ -00ad44: 1a0a 7504 |0018: const-string v10, "ko" // string@0475 │ │ -00ad48: 1a0b 9305 |001a: const-string v11, "ur" // string@0593 │ │ -00ad4c: 1a0c a805 |001c: const-string v12, "zh-TW" // string@05a8 │ │ -00ad50: 1a0d 7403 |001e: const-string v13, "be" // string@0374 │ │ -00ad54: 1a0e dd04 |0020: const-string v14, "pt-BR" // string@04dd │ │ -00ad58: 1a0f 6d04 |0022: const-string v15, "it" // string@046d │ │ -00ad5c: 1a10 d603 |0024: const-string v16, "fr-FR" // string@03d6 │ │ -00ad60: 1a11 c404 |0026: const-string v17, "or" // string@04c4 │ │ -00ad64: 1a12 8d05 |0028: const-string v18, "uk" // string@058d │ │ -00ad68: 1a13 1405 |002a: const-string v19, "ru" // string@0514 │ │ -00ad6c: 1a14 c203 |002c: const-string v20, "es" // string@03c2 │ │ -00ad70: 1a15 6204 |002e: const-string v21, "in" // string@0462 │ │ -00ad74: 1a16 9d03 |0030: const-string v22, "cs" // string@039d │ │ -00ad78: 1a17 1105 |0032: const-string v23, "ro" // string@0511 │ │ +00ad20: 1a01 8d05 |0006: const-string v1, "uk" // string@058d │ │ +00ad24: 1a02 9e05 |0008: const-string v2, "vi" // string@059e │ │ +00ad28: 1a03 b503 |000a: const-string v3, "el" // string@03b5 │ │ +00ad2c: 1a04 7403 |000c: const-string v4, "be" // string@0374 │ │ +00ad30: 1a05 c404 |000e: const-string v5, "or" // string@04c4 │ │ +00ad34: 1a06 dd04 |0010: const-string v6, "pt-BR" // string@04dd │ │ +00ad38: 1a07 9d03 |0012: const-string v7, "cs" // string@039d │ │ +00ad3c: 1a08 9305 |0014: const-string v8, "ur" // string@0593 │ │ +00ad40: 1a09 4204 |0016: const-string v9, "hi" // string@0442 │ │ +00ad44: 1a0a a805 |0018: const-string v10, "zh-TW" // string@05a8 │ │ +00ad48: 1a0b 1105 |001a: const-string v11, "ro" // string@0511 │ │ +00ad4c: 1a0c 6204 |001c: const-string v12, "in" // string@0462 │ │ +00ad50: 1a0d 6f04 |001e: const-string v13, "iw" // string@046f │ │ +00ad54: 1a0e 1405 |0020: const-string v14, "ru" // string@0514 │ │ +00ad58: 1a0f 8b04 |0022: const-string v15, "nb-NO" // string@048b │ │ +00ad5c: 1a10 a705 |0024: const-string v16, "zh-CN" // string@05a7 │ │ +00ad60: 1a11 de04 |0026: const-string v17, "pt-PT" // string@04de │ │ +00ad64: 1a12 6d04 |0028: const-string v18, "it" // string@046d │ │ +00ad68: 1a13 9004 |002a: const-string v19, "nl" // string@0490 │ │ +00ad6c: 1a14 7504 |002c: const-string v20, "ko" // string@0475 │ │ +00ad70: 1a15 c203 |002e: const-string v21, "es" // string@03c2 │ │ +00ad74: 1a16 8405 |0030: const-string v22, "tr" // string@0584 │ │ +00ad78: 1a17 7104 |0032: const-string v23, "ja" // string@0471 │ │ 00ad7c: 251a 0302 0000 |0034: filled-new-array/range {v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25}, [Ljava/lang/String; // type@0203 │ │ 00ad82: 0c00 |0037: move-result-object v0 │ │ 00ad84: 7110 0000 0000 |0038: invoke-static {v0}, La/a;.a:([Ljava/lang/Object;)Ljava/util/List; // method@0000 │ │ 00ad8a: 0c00 |003b: move-result-object v0 │ │ 00ad8c: 6900 0000 |003c: sput-object v0, La/b;.a:Ljava/util/List; // field@0000 │ │ 00ad90: 0e00 |003e: return-void │ │ catches : (none) │ ├── classes.jar │ │ ├── zipinfo -v {} │ │ │ @@ -54,15 +54,15 @@ │ │ │ version of encoding software: 2.0 │ │ │ minimum file system compatibility required: MS-DOS, OS/2 or NT FAT │ │ │ minimum software version required to extract: 2.0 │ │ │ compression method: none (stored) │ │ │ file security status: not encrypted │ │ │ extended local header: no │ │ │ file last modified on (DOS date/time): 1980 Jan 1 00:00:00 │ │ │ - 32-bit CRC value (hex): d9cefdf0 │ │ │ + 32-bit CRC value (hex): 36f5511b │ │ │ compressed size: 603 bytes │ │ │ uncompressed size: 603 bytes │ │ │ length of filename: 9 characters │ │ │ length of extra field: 0 bytes │ │ │ length of file comment: 0 characters │ │ │ disk number on which file begins: disk 1 │ │ │ apparent file type: binary │ │ ├── a/b.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -4,10 +4,10 @@ │ │ │ │ import java.util.List; │ │ │ │ │ │ │ │ public abstract class b │ │ │ │ { │ │ │ │ public static final List a; │ │ │ │ │ │ │ │ static { │ │ │ │ - a = a.a.a((Object[])new String[] { "en", "pt-PT", "ja", "tr", "hi", "vi", "iw", "zh-CN", "de", "el", "ko", "ur", "zh-TW", "be", "pt-BR", "it", "fr-FR", "or", "uk", "ru", "es", "in", "cs", "ro", "nb-NO", "nl" }); │ │ │ │ + a = a.a.a((Object[])new String[] { "en", "uk", "vi", "el", "be", "or", "pt-BR", "cs", "ur", "hi", "zh-TW", "ro", "in", "iw", "ru", "nb-NO", "zh-CN", "pt-PT", "it", "nl", "ko", "es", "tr", "ja", "fr-FR", "de" }); │ │ │ │ } │ │ │ │ } ├── smali/a/b.smali │ @@ -8,115 +8,115 @@ │ │ │ # direct methods │ .method static constructor ()V │ .locals 26 │ │ .line 1 │ - const-string v24, "nb-NO" │ + const-string v24, "fr-FR" │ │ .line 2 │ .line 3 │ - const-string v25, "nl" │ + const-string v25, "de" │ │ .line 4 │ .line 5 │ const-string v0, "en" │ │ .line 6 │ .line 7 │ - const-string v1, "pt-PT" │ + const-string v1, "uk" │ │ .line 8 │ .line 9 │ - const-string v2, "ja" │ + const-string v2, "vi" │ │ .line 10 │ .line 11 │ - const-string v3, "tr" │ + const-string v3, "el" │ │ .line 12 │ .line 13 │ - const-string v4, "hi" │ + const-string v4, "be" │ │ .line 14 │ .line 15 │ - const-string v5, "vi" │ + const-string v5, "or" │ │ .line 16 │ .line 17 │ - const-string v6, "iw" │ + const-string v6, "pt-BR" │ │ .line 18 │ .line 19 │ - const-string v7, "zh-CN" │ + const-string v7, "cs" │ │ .line 20 │ .line 21 │ - const-string v8, "de" │ + const-string v8, "ur" │ │ .line 22 │ .line 23 │ - const-string v9, "el" │ + const-string v9, "hi" │ │ .line 24 │ .line 25 │ - const-string v10, "ko" │ + const-string v10, "zh-TW" │ │ .line 26 │ .line 27 │ - const-string v11, "ur" │ + const-string v11, "ro" │ │ .line 28 │ .line 29 │ - const-string v12, "zh-TW" │ + const-string v12, "in" │ │ .line 30 │ .line 31 │ - const-string v13, "be" │ + const-string v13, "iw" │ │ .line 32 │ .line 33 │ - const-string v14, "pt-BR" │ + const-string v14, "ru" │ │ .line 34 │ .line 35 │ - const-string v15, "it" │ + const-string v15, "nb-NO" │ │ .line 36 │ .line 37 │ - const-string v16, "fr-FR" │ + const-string v16, "zh-CN" │ │ .line 38 │ .line 39 │ - const-string v17, "or" │ + const-string v17, "pt-PT" │ │ .line 40 │ .line 41 │ - const-string v18, "uk" │ + const-string v18, "it" │ │ .line 42 │ .line 43 │ - const-string v19, "ru" │ + const-string v19, "nl" │ │ .line 44 │ .line 45 │ - const-string v20, "es" │ + const-string v20, "ko" │ │ .line 46 │ .line 47 │ - const-string v21, "in" │ + const-string v21, "es" │ │ .line 48 │ .line 49 │ - const-string v22, "cs" │ + const-string v22, "tr" │ │ .line 50 │ .line 51 │ - const-string v23, "ro" │ + const-string v23, "ja" │ │ .line 52 │ .line 53 │ filled-new-array/range {v0 .. v25}, [Ljava/lang/String; │ │ .line 54 │ .line 55