--- /home/fdroid/fdroiddata/tmp/com.craigd.lmsmaterial.app_201.apk +++ /home/fdroid/fdroiddata/tmp/sigcp_com.craigd.lmsmaterial.app_201.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: <3aa59f06430348052d338afe8b1b1fdfbce723b2f7df7aaea9aa07332d93763d>, actual: │┄ ERROR: APK Signature Scheme v3 signer #1: APK integrity check failed. VERITY_CHUNKED_SHA256 digest mismatch. Expected: <5af9482796c23921d5b84adca986eac78a9527c1e82a620da561412f01b487bf1fd3330000000000>, actual: │ @@ -1,67 +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: dccf7b71f9c0766e9f0e87ead39b78cca877132718a17c0a5173966aef8934f4 │ -Signer #1 certificate SHA-1 digest: de24599baff76f060b2b60604354005a6877611d │ -Signer #1 certificate MD5 digest: 9aa2841d3672a0ef6c0051ba83d45eb3 │ -Signer #1 key algorithm: RSA │ -Signer #1 key size (bits): 2048 │ -Signer #1 public key SHA-256 digest: ecc64091f0231af9b1f5e55f997ebbda39bf5c26c8ca9048660e27b1c4cd6bd3 │ -Signer #1 public key SHA-1 digest: 91d7f0b9ddf48c45d492271ba991b385577e7f78 │ -Signer #1 public key MD5 digest: 6f4629ff340ad8f23a4fe9673dd90589 │ -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/androidx.activity_activity-ktx.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.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.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/. │ -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.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/androidx.asynclayoutinflater_asynclayoutinflater.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.core_core-ktx.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.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.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/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.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.emoji2_emoji2-views-helper.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.emoji2_emoji2.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-ktx.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.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.legacy_legacy-support-core-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.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.lifecycle_lifecycle-livedata-core-ktx.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.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.lifecycle_lifecycle-process.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-ktx.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.lifecycle_lifecycle-viewmodel-ktx.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-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.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.media_media.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.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.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.savedstate_savedstate-ktx.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.slidingpanelayout_slidingpanelayout.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.startup_startup-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.swiperefreshlayout_swiperefreshlayout.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.tracing_tracing.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.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.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.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.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.window_window.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/services/kotlinx.coroutines.CoroutineExceptionHandler 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/services/kotlinx.coroutines.internal.MainDispatcherFactory not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/. ├── zipinfo {} │ @@ -1,10 +1,10 @@ │ Zip file size: 3400479 bytes, number of entries: 461 │ -rw-rw-rw- 0.0 unx 56 b- defN 81-Jan-01 01:01 META-INF/com/android/build/gradle/app-metadata.properties │ --rw-rw-rw- 0.0 unx 7427080 b- defN 81-Jan-01 01:01 classes.dex │ +-rw-rw-rw- 0.0 unx 7427076 b- defN 81-Jan-01 01:01 classes.dex │ -rw---- 2.4 fat 1714 b- defN 81-Jan-01 01:01 DebugProbesKt.bin │ -rw---- 2.4 fat 6 b- stor 81-Jan-01 01:01 META-INF/androidx.activity_activity-ktx.version │ -rw---- 2.4 fat 6 b- stor 81-Jan-01 01:01 META-INF/androidx.activity_activity.version │ -rw---- 2.4 fat 6 b- stor 81-Jan-01 01:01 META-INF/androidx.annotation_annotation-experimental.version │ -rw---- 2.4 fat 6 b- stor 81-Jan-01 01:01 META-INF/androidx.appcompat_appcompat-resources.version │ -rw---- 2.4 fat 6 b- stor 81-Jan-01 01:01 META-INF/androidx.appcompat_appcompat.version │ -rw---- 2.4 fat 6 b- stor 81-Jan-01 01:01 META-INF/androidx.arch.core_core-runtime.version │ @@ -456,8 +456,8 @@ │ -rw---- 0.0 fat 396 b- defN 81-Jan-01 01:01 res/z3.xml │ -rw---- 0.0 fat 1116 b- defN 81-Jan-01 01:01 res/zH.xml │ -rw---- 0.0 fat 840 b- defN 81-Jan-01 01:01 res/zq.xml │ -rw---- 0.0 fat 321252 b- stor 81-Jan-01 01:01 resources.arsc │ -rw---- 2.0 fat 41325 b- defN 81-Jan-01 01:01 META-INF/B34BCFD6.SF │ -rw---- 2.0 fat 1334 b- defN 81-Jan-01 01:01 META-INF/B34BCFD6.RSA │ -rw---- 2.0 fat 41198 b- defN 81-Jan-01 01:01 META-INF/MANIFEST.MF │ -461 files, 8199497 bytes uncompressed, 3340633 bytes compressed: 59.3% │ +461 files, 8199493 bytes uncompressed, 3340677 bytes compressed: 59.3% ├── classes.dex │ ├── classes.jar │ │ ├── zipinfo {} │ │ │ @@ -1,8 +1,8 @@ │ │ │ -Zip file size: 10067558 bytes, number of entries: 5378 │ │ │ +Zip file size: 10067551 bytes, number of entries: 5378 │ │ │ ?rwxrwxr-x 2.0 unx 318 b- stor 80-Jan-01 00:00 android/support/v4/app/INotificationSideChannel.class │ │ │ ?rwxrwxr-x 2.0 unx 503 b- stor 80-Jan-01 00:00 android/support/v4/media/MediaBrowserCompat$Api21Impl.class │ │ │ ?rwxrwxr-x 2.0 unx 2930 b- stor 80-Jan-01 00:00 android/support/v4/media/MediaBrowserCompat$CallbackHandler.class │ │ │ ?rwxrwxr-x 2.0 unx 987 b- stor 80-Jan-01 00:00 android/support/v4/media/MediaBrowserCompat$ConnectionCallback$ConnectionCallbackApi21.class │ │ │ ?rwxrwxr-x 2.0 unx 230 b- stor 80-Jan-01 00:00 android/support/v4/media/MediaBrowserCompat$ConnectionCallback$ConnectionCallbackInternal.class │ │ │ ?rwxrwxr-x 2.0 unx 989 b- stor 80-Jan-01 00:00 android/support/v4/media/MediaBrowserCompat$ConnectionCallback.class │ │ │ ?rwxrwxr-x 2.0 unx 362 b- stor 80-Jan-01 00:00 android/support/v4/media/MediaBrowserCompat$CustomActionCallback.class │ │ │ @@ -3919,15 +3919,15 @@ │ │ │ ?rwxrwxr-x 2.0 unx 559 b- stor 80-Jan-01 00:00 com/android/volley/toolbox/NoCache.class │ │ │ ?rwxrwxr-x 2.0 unx 2479 b- stor 80-Jan-01 00:00 com/android/volley/toolbox/RequestFuture.class │ │ │ ?rwxrwxr-x 2.0 unx 1805 b- stor 80-Jan-01 00:00 com/android/volley/toolbox/StringRequest.class │ │ │ ?rwxrwxr-x 2.0 unx 584 b- stor 80-Jan-01 00:00 com/android/volley/toolbox/Volley$1.class │ │ │ ?rwxrwxr-x 2.0 unx 2514 b- stor 80-Jan-01 00:00 com/craigd/lmsmaterial/app/MainActivity$Discovery.class │ │ │ ?rwxrwxr-x 2.0 unx 2184 b- stor 80-Jan-01 00:00 com/craigd/lmsmaterial/app/PhoneStateReceiver$1.class │ │ │ ?rwxrwxr-x 2.0 unx 2503 b- stor 80-Jan-01 00:00 com/craigd/lmsmaterial/app/SettingsActivity$SettingsFragment$1.class │ │ │ -?rwxrwxr-x 2.0 unx 1775 b- stor 80-Jan-01 00:00 com/craigd/lmsmaterial/app/SettingsActivity$SettingsFragment$2.class │ │ │ +?rwxrwxr-x 2.0 unx 1768 b- stor 80-Jan-01 00:00 com/craigd/lmsmaterial/app/SettingsActivity$SettingsFragment$2.class │ │ │ ?rwxrwxr-x 2.0 unx 2387 b- stor 80-Jan-01 00:00 com/craigd/lmsmaterial/app/SettingsActivity$SettingsFragment$3.class │ │ │ ?rwxrwxr-x 2.0 unx 1813 b- stor 80-Jan-01 00:00 com/craigd/lmsmaterial/app/SettingsActivity$SettingsFragment$4.class │ │ │ ?rwxrwxr-x 2.0 unx 2952 b- stor 80-Jan-01 00:00 com/craigd/lmsmaterial/app/SettingsActivity$SettingsFragment$Discovery.class │ │ │ ?rwxrwxr-x 2.0 unx 1174 b- stor 80-Jan-01 00:00 kotlin/DeepRecursiveScopeImpl$crossFunctionCompletion$$inlined$Continuation$1.class │ │ │ ?rwxrwxr-x 2.0 unx 3307 b- stor 80-Jan-01 00:00 kotlin/DeepRecursiveScopeImpl.class │ │ │ ?rwxrwxr-x 2.0 unx 151 b- stor 80-Jan-01 00:00 kotlin/ExceptionsKt.class │ │ │ ?rwxrwxr-x 2.0 unx 545 b- stor 80-Jan-01 00:00 kotlin/InitializedLazyImpl.class │ │ │ @@ -5373,8 +5373,8 @@ │ │ │ ?rwxrwxr-x 2.0 unx 497 b- stor 80-Jan-01 00:00 kotlinx/coroutines/flow/internal/FlowProduceCoroutine.class │ │ │ ?rwxrwxr-x 2.0 unx 44623 b- defN 80-Jan-01 00:00 kotlin/collections/CollectionsKt___CollectionsKt.class │ │ │ ?rwxrwxr-x 2.0 unx 28592 b- defN 80-Jan-01 00:00 kotlin/text/StringsKt__StringsKt.class │ │ │ ?rwxrwxr-x 2.0 unx 179 b- stor 80-Jan-01 00:00 kotlin/collections/CollectionsKt.class │ │ │ ?rwxrwxr-x 2.0 unx 1766 b- stor 80-Jan-01 00:00 kotlin/text/StringsKt___StringsJvmKt.class │ │ │ ?rwxrwxr-x 2.0 unx 35022 b- defN 80-Jan-01 00:00 kotlin/text/StringsKt___StringsKt.class │ │ │ ?rwxrwxr-x 2.0 unx 153 b- stor 80-Jan-01 00:00 kotlin/text/StringsKt.class │ │ │ -5378 files, 11143480 bytes uncompressed, 9072472 bytes compressed: 18.6% │ │ │ +5378 files, 11143473 bytes uncompressed, 9072465 bytes compressed: 18.6% │ │ ├── com/craigd/lmsmaterial/app/SettingsActivity$SettingsFragment$2.class │ │ │ ├── procyon -ec {} │ │ │ │ @@ -15,14 +15,13 @@ │ │ │ │ } │ │ │ │ │ │ │ │ public boolean onPreferenceClick(final Preference preference) { │ │ │ │ Log.d("LMS", "Discover clicked"); │ │ │ │ Toast.makeText(this.this$0.getContext(), (CharSequence)this.this$0.getResources().getString(2131689512), 0).show(); │ │ │ │ if (SettingsActivity$SettingsFragment.access$000(this.this$0) == null) { │ │ │ │ final SettingsActivity$SettingsFragment this$0 = this.this$0; │ │ │ │ - final SettingsActivity$SettingsFragment this$2 = this.this$0; │ │ │ │ - SettingsActivity$SettingsFragment.access$002(this$0, new SettingsActivity$SettingsFragment$Discovery(this$2, this$2.getContext().getApplicationContext())); │ │ │ │ + SettingsActivity$SettingsFragment.access$002(this$0, new SettingsActivity$SettingsFragment$Discovery(this$0, this$0.getContext().getApplicationContext())); │ │ │ │ } │ │ │ │ SettingsActivity$SettingsFragment.access$000(this.this$0).discover(); │ │ │ │ return true; │ │ │ │ } │ │ │ │ } ├── smali/com/craigd/lmsmaterial/app/SettingsActivity$SettingsFragment$2.smali │ @@ -32,15 +32,15 @@ │ │ return-void │ .end method │ │ │ # virtual methods │ .method public onPreferenceClick(Landroidx/preference/Preference;)Z │ - .locals 3 │ + .locals 2 │ │ const-string p1, "LMS" │ │ const-string v0, "Discover clicked" │ │ .line 236 │ invoke-static {p1, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I │ @@ -82,25 +82,23 @@ │ if-nez p1, :cond_0 │ │ .line 239 │ iget-object p1, p0, Lcom/craigd/lmsmaterial/app/SettingsActivity$SettingsFragment$2;->this$0:Lcom/craigd/lmsmaterial/app/SettingsActivity$SettingsFragment; │ │ new-instance v0, Lcom/craigd/lmsmaterial/app/SettingsActivity$SettingsFragment$Discovery; │ │ - iget-object v1, p0, Lcom/craigd/lmsmaterial/app/SettingsActivity$SettingsFragment$2;->this$0:Lcom/craigd/lmsmaterial/app/SettingsActivity$SettingsFragment; │ - │ - invoke-virtual {v1}, Lcom/craigd/lmsmaterial/app/SettingsActivity$SettingsFragment;->getContext()Landroid/content/Context; │ + invoke-virtual {p1}, Lcom/craigd/lmsmaterial/app/SettingsActivity$SettingsFragment;->getContext()Landroid/content/Context; │ │ - move-result-object v2 │ + move-result-object v1 │ │ - invoke-virtual {v2}, Landroid/content/Context;->getApplicationContext()Landroid/content/Context; │ + invoke-virtual {v1}, Landroid/content/Context;->getApplicationContext()Landroid/content/Context; │ │ - move-result-object v2 │ + move-result-object v1 │ │ - invoke-direct {v0, v1, v2}, Lcom/craigd/lmsmaterial/app/SettingsActivity$SettingsFragment$Discovery;->(Lcom/craigd/lmsmaterial/app/SettingsActivity$SettingsFragment;Landroid/content/Context;)V │ + invoke-direct {v0, p1, v1}, Lcom/craigd/lmsmaterial/app/SettingsActivity$SettingsFragment$Discovery;->(Lcom/craigd/lmsmaterial/app/SettingsActivity$SettingsFragment;Landroid/content/Context;)V │ │ invoke-static {p1, v0}, Lcom/craigd/lmsmaterial/app/SettingsActivity$SettingsFragment;->access$002(Lcom/craigd/lmsmaterial/app/SettingsActivity$SettingsFragment;Lcom/craigd/lmsmaterial/app/SettingsActivity$SettingsFragment$Discovery;)Lcom/craigd/lmsmaterial/app/SettingsActivity$SettingsFragment$Discovery; │ │ .line 241 │ :cond_0 │ iget-object p1, p0, Lcom/craigd/lmsmaterial/app/SettingsActivity$SettingsFragment$2;->this$0:Lcom/craigd/lmsmaterial/app/SettingsActivity$SettingsFragment;