--- /home/fdroid/fdroiddata/tmp/org.freenetproject.mobile_303.apk +++ /home/fdroid/fdroiddata/tmp/sigcp_org.freenetproject.mobile_303.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: , actual: │┄ ERROR: APK Signature Scheme v3 signer #1: APK integrity check failed. VERITY_CHUNKED_SHA256 digest mismatch. Expected: , actual: <9fa9cbc7955707044c4d9ce233259bf0fa9fdca7919f7c925c640c2f490e6023b30d980000000000> │ @@ -1,55 +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: 0407fbd4e9db2937e02a27c21e9258e2cb2ce3f89e297249e593e007379f192e │ -Signer #1 certificate SHA-1 digest: 94e2ad8f009366fe17dbdba11b016b3c98613f90 │ -Signer #1 certificate MD5 digest: fb82fc79f06badd59e3731ae01919fbb │ -Signer #1 key algorithm: RSA │ -Signer #1 key size (bits): 2048 │ -Signer #1 public key SHA-256 digest: ecbaf0144c3e7f99445349059d9ae1699b46ea89d3c214788ff8fed6cc976962 │ -Signer #1 public key SHA-1 digest: a8e9f0f920544da93b1882a74377e35cfe4eebdb │ -Signer #1 public key MD5 digest: 42301099bae0c0da6c11a50f3a2ab360 │ -WARNING: META-INF/androidx.navigation_navigation-fragment.version 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/androidx.customview_customview.version 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/com.google.android.material_material.version 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/androidx.dynamicanimation_dynamicanimation.version 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/androidx.versionedparcelable_versionedparcelable.version 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/androidx.preference_preference.version 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/androidx.navigation_navigation-ui.version 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/androidx.lifecycle_lifecycle-runtime.version 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/androidx.appcompat_appcompat-resources.version 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/androidx.appcompat_appcompat.version 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/androidx.lifecycle_lifecycle-livedata.version 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/androidx.navigation_navigation-runtime.version 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/androidx.cursoradapter_cursoradapter.version 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/androidx.savedstate_savedstate.version 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/androidx.fragment_fragment.version 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/androidx.vectordrawable_vectordrawable.version 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/androidx.core_core.version 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/androidx.vectordrawable_vectordrawable-animated.version 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/androidx.localbroadcastmanager_localbroadcastmanager.version 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/androidx.lifecycle_lifecycle-viewmodel-savedstate.version 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/androidx.lifecycle_lifecycle-livedata-core.version 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/androidx.navigation_navigation-common.version 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/androidx.legacy_legacy-support-core-utils.version 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/androidx.viewpager2_viewpager2.version 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/androidx.transition_transition.version 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/androidx.print_print.version 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/androidx.documentfile_documentfile.version 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/androidx.recyclerview_recyclerview.version 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/androidx.arch.core_core-runtime.version 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/INDEX.LIST 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/androidx.activity_activity.version 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/androidx.drawerlayout_drawerlayout.version 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/androidx.interpolator_interpolator.version 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/androidx.lifecycle_lifecycle-viewmodel.version 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/androidx.loader_loader.version 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/androidx.viewpager_viewpager.version 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/androidx.cardview_cardview.version 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/androidx.coordinatorlayout_coordinatorlayout.version 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/androidx.annotation_annotation-experimental.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. ├── zipinfo {} │ @@ -1348,8 +1348,8 @@ │ -rw---- 0.0 fat 360 b- defN 81-Jan-01 01:01 res/xml/standalone_badge_offset.xml │ -rw---- 0.0 fat 516 b- defN 81-Jan-01 01:01 res/drawable/abc_seekbar_tick_mark_material.xml │ -rw---- 0.0 fat 1789 b- stor 81-Jan-01 01:01 freenet/clients/http/staticfiles/themes/sky/warning-16.png │ -rw---- 0.0 fat 212 b- stor 81-Jan-01 01:01 res/drawable-hdpi-v4/notification_bg_normal.9.png │ -rw---- 2.0 fat 165961 b- defN 81-Jan-01 01:01 META-INF/58C29F86.SF │ -rw---- 2.0 fat 1344 b- defN 81-Jan-01 01:01 META-INF/58C29F86.RSA │ -rw---- 2.0 fat 165834 b- defN 81-Jan-01 01:01 META-INF/MANIFEST.MF │ -1353 files, 24547494 bytes uncompressed, 9721317 bytes compressed: 60.4% │ +1353 files, 24547494 bytes uncompressed, 9721326 bytes compressed: 60.4% ├── 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 : f943e0b1 │ │ -signature : ee62...d2ce │ │ +checksum : 55eae1d9 │ │ +signature : a471...f894 │ │ file_size : 9049540 │ │ header_size : 112 │ │ link_size : 0 │ │ link_off : 0 (0x000000) │ │ string_ids_size : 68887 │ │ string_ids_off : 112 (0x000070) │ │ type_ids_size : 8629 │ │ @@ -1609428,18 +1609428,18 @@ │ │ 46a426: 1a04 6879 |00e9: const-string v4, "Toadlet.no" // string@7968 │ │ 46a42a: 6e20 b4dc 4300 |00eb: invoke-virtual {v3, v4}, Lfreenet/l10n/BaseL10n;.getString:(Ljava/lang/String;)Ljava/lang/String; // method@dcb4 │ │ 46a430: 0c03 |00ee: move-result-object v3 │ │ 46a432: 4d03 0209 |00ef: aput-object v3, v2, v9 │ │ 46a436: 6e40 24f2 e021 |00f1: invoke-virtual {v0, v14, v1, v2}, Lfreenet/support/HTMLNode;.addChild:(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Lfreenet/support/HTMLNode; // method@f224 │ │ 46a43c: 6e10 29f2 0b00 |00f4: invoke-virtual {v11}, Lfreenet/support/HTMLNode;.generate:()Ljava/lang/String; // method@f229 │ │ 46a442: 0c00 |00f7: move-result-object v0 │ │ -46a444: 1302 c800 |00f8: const/16 v2, #int 200 // #c8 │ │ -46a448: 0801 1d00 |00fa: move-object/from16 v1, v29 │ │ -46a44c: 0803 2000 |00fc: move-object/from16 v3, v32 │ │ -46a450: 0804 1100 |00fe: move-object/from16 v4, v17 │ │ +46a444: 0801 1d00 |00f8: move-object/from16 v1, v29 │ │ +46a448: 0803 2000 |00fa: move-object/from16 v3, v32 │ │ +46a44c: 0804 1100 |00fc: move-object/from16 v4, v17 │ │ +46a450: 1302 c800 |00fe: const/16 v2, #int 200 // #c8 │ │ 46a454: 6e50 14cc 3142 |0100: invoke-virtual {v1, v3, v2, v4, v0}, Lfreenet/clients/http/ConfigToadlet;.writeHTMLReply:(Lfreenet/clients/http/ToadletContext;ILjava/lang/String;Ljava/lang/String;)V // method@cc14 │ │ 46a45a: 0e00 |0103: return-void │ │ 46a45c: 1a00 08f1 |0104: const-string v0, "select-dir" // string@f108 │ │ 46a460: 7220 5ff3 0200 |0106: invoke-interface {v2, v0}, Lfreenet/support/api/HTTPRequest;.isPartSet:(Ljava/lang/String;)Z // method@f35f │ │ 46a466: 0a00 |0109: move-result v0 │ │ 46a468: 3900 8a03 |010a: if-nez v0, 0494 // +038a │ │ 46a46c: 7220 5ff3 7200 |010c: invoke-interface {v2, v7}, Lfreenet/support/api/HTTPRequest;.isPartSet:(Ljava/lang/String;)Z // method@f35f │ │ @@ -1670714,18 +1670714,18 @@ │ │ 4a19c0: 6e20 b4dc 3200 |037e: invoke-virtual {v2, v3}, Lfreenet/l10n/BaseL10n;.getString:(Ljava/lang/String;)Ljava/lang/String; // method@dcb4 │ │ 4a19c6: 0c02 |0381: move-result-object v2 │ │ 4a19c8: 1223 |0382: const/4 v3, #int 2 // #2 │ │ 4a19ca: 4d02 0103 |0383: aput-object v2, v1, v3 │ │ 4a19ce: 6e40 24f2 d610 |0385: invoke-virtual {v6, v13, v0, v1}, Lfreenet/support/HTMLNode;.addChild:(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Lfreenet/support/HTMLNode; // method@f224 │ │ 4a19d4: 7401 29f2 1500 |0388: invoke-virtual/range {v21}, Lfreenet/support/HTMLNode;.generate:()Ljava/lang/String; // method@f229 │ │ 4a19da: 0c00 |038b: move-result-object v0 │ │ -4a19dc: 1301 c800 |038c: const/16 v1, #int 200 // #c8 │ │ -4a19e0: 0803 2000 |038e: move-object/from16 v3, v32 │ │ -4a19e4: 0804 2300 |0390: move-object/from16 v4, v35 │ │ -4a19e8: 0806 1300 |0392: move-object/from16 v6, v19 │ │ +4a19dc: 0803 2000 |038c: move-object/from16 v3, v32 │ │ +4a19e0: 0804 2300 |038e: move-object/from16 v4, v35 │ │ +4a19e4: 0806 1300 |0390: move-object/from16 v6, v19 │ │ +4a19e8: 1301 c800 |0392: const/16 v1, #int 200 // #c8 │ │ 4a19ec: 6e50 97d1 4361 |0394: invoke-virtual {v3, v4, v1, v6, v0}, Lfreenet/clients/http/WelcomeToadlet;.writeHTMLReply:(Lfreenet/clients/http/ToadletContext;ILjava/lang/String;Ljava/lang/String;)V // method@d197 │ │ 4a19f2: 0e00 |0397: return-void │ │ 4a19f4: 0703 |0398: move-object v3, v0 │ │ 4a19f6: 07a0 |0399: move-object v0, v10 │ │ 4a19f8: 07e1 |039a: move-object v1, v14 │ │ 4a19fa: 081f 0400 |039b: move-object/from16 v31, v4 │ │ 4a19fe: 0724 |039d: move-object v4, v2 ├── smali/freenet/clients/http/WelcomeToadlet.smali │┄ Ordering differences only │ @@ -2250,22 +2250,22 @@ │ invoke-virtual {v6, v13, v0, v1}, Lfreenet/support/HTMLNode;->addChild(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Lfreenet/support/HTMLNode; │ │ .line 498 │ invoke-virtual/range {v21 .. v21}, Lfreenet/support/HTMLNode;->generate()Ljava/lang/String; │ │ move-result-object v0 │ │ - const/16 v1, 0xc8 │ - │ move-object/from16 v3, p0 │ │ move-object/from16 v4, p3 │ │ move-object/from16 v6, v19 │ │ + const/16 v1, 0xc8 │ + │ invoke-virtual {v3, v4, v1, v6, v0}, Lfreenet/clients/http/WelcomeToadlet;->writeHTMLReply(Lfreenet/clients/http/ToadletContext;ILjava/lang/String;Ljava/lang/String;)V │ │ return-void │ │ :cond_d │ move-object v3, v0 ├── smali/freenet/clients/http/ConfigToadlet.smali │┄ Ordering differences only │ @@ -2193,22 +2193,22 @@ │ invoke-virtual {v0, v14, v1, v2}, Lfreenet/support/HTMLNode;->addChild(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Lfreenet/support/HTMLNode; │ │ .line 235 │ invoke-virtual {v11}, Lfreenet/support/HTMLNode;->generate()Ljava/lang/String; │ │ move-result-object v0 │ │ - const/16 v2, 0xc8 │ - │ move-object/from16 v1, p0 │ │ move-object/from16 v3, p3 │ │ move-object/from16 v4, v17 │ │ + const/16 v2, 0xc8 │ + │ invoke-virtual {v1, v3, v2, v4, v0}, Lfreenet/clients/http/ConfigToadlet;->writeHTMLReply(Lfreenet/clients/http/ToadletContext;ILjava/lang/String;Ljava/lang/String;)V │ │ return-void │ │ :cond_3 │ const-string v0, "select-dir"