codecinfo icon indicating copy to clipboard operation
codecinfo copied to clipboard

Reproducible Builds

Open IzzySoft opened this issue 1 year ago • 0 comments

At IzzyOnDroid we support Reproducible Builds (see: Reproducible Builds, special client support and more at IzzyOnDroid). Your app already had RB established, but your last release broke it: the APK was not built from the commit the tag points to, but from somewhere between that and the one before (its embedded vcsInfo points to the tag before, but it seems to include parts of the tagged commit), making it impossible to reproduce. Difference between the APKs:

  -rw-r--r--  0.0 unx      120 b-      118 defN 1981-01-01 01:01:02 47d7cac1 META-INF/version-control-info.textproto
- -rw-r--r--  0.0 unx     2610 b-     2610 stor 1981-01-01 01:01:02 e4a13f96 assets/dexopt/baseline.prof
+ -rw-r--r--  0.0 unx     2611 b-     2611 stor 1981-01-01 01:01:02 928ff892 assets/dexopt/baseline.prof
  -rw-r--r--  0.0 unx      328 b-      328 stor 1981-01-01 01:01:02 95cc7c5d assets/dexopt/baseline.profm
- -rw-r--r--  0.0 unx  2020200 b-   993715 defN 1981-01-01 01:01:02 ac357c21 classes.dex
+ -rw-r--r--  0.0 unx  2020184 b-   993642 defN 1981-01-01 01:01:02 78b70ee5 classes.dex
  -rw-r--r--  0.0 unx    10329 b-     2922 defN 1981-01-01 01:01:02 0948f515 assets/changelog.html

difference in classes.dex:

       outs          : 4
-      insns size    : 155 16-bit code units
+      insns size    : 148 16-bit code units
 | com.parseus.codecinfo.ui.MainActivity.onCreate:(Landroid/os/Bundle;)V
 |: sget v0, Landroid/os/Build$VERSION;.SDK_INT:I
 |: const/16 v1, #int 28 // #1c
@@ -376320,10 +376320,7 @@
 |: invoke-direct {v1, v6, v7, v2}, Lpi;.<init>:(Lcom/parseus/codecinfo/ui/MainActivity;Landroid/os/Bundle;LZ7;)V
 |: const/4 v7, #int 3 // #3
 |: invoke-static {v0, v2, v1, v7}, Lat;.x:(Ls8;Lo8;Lue;I)LJq;
-|: goto 008d // +0012
-|: invoke-virtual {v6}, Ltk;.x:()Lsk;
-|: move-result-object v0
-|: invoke-virtual {v0, v6}, Lsk;.n:(Lfk;)V
+|: goto 0086 // +000b
 |: invoke-virtual {v6, v7}, Lcom/parseus/codecinfo/ui/MainActivity;.B:(Landroid/os/Bundle;)V
 |: invoke-virtual {v6}, Landroid/app/Activity;.getWindow:()Landroid/view/Window;
 |: move-result-object v7
@@ -376338,8 +376335,8 @@
       catches       : (none)
       positions     :
       locals        :
-        0x0000 - 0x009b reg=6 this Lcom/parseus/codecinfo/ui/MainActivity;
-        0x0000 - 0x009b reg=7 (null) Landroid/os/Bundle;
+        0x0000 - 0x0094 reg=6 this Lcom/parseus/codecinfo/ui/MainActivity;
+        0x0000 - 0x0094 reg=7 (null) Landroid/os/Bundle;

Please always build the app from a clean tree at the commit the release tag points to. We'd appreciate if you could help keeping your build reproducible. We've also prepared some hints on reproducible builds for that.

Thanks – and looking forward to your reply!

IzzySoft avatar Jan 11 '25 19:01 IzzySoft