Skip to content

[Bug]: Reproducible Builds fail since v2.7.0 #3231

Description

@IzzySoft

Contact Details

No response

Checklist

  • I am able to reproduce the bug with the latest version.

  • I made sure that there are no existing OPEN or CLOSED issues which I could contribute my information to.

  • I have taken the time to fill in all the required details. I understand that the bug report will be dismissed otherwise.

  • This issue contains only one bug.

  • I have read and understood the Contribution Guidelines.

  • I agree to follow this project's Code of Conduct

Affected app version

2.7.1

Affected Android version

n/a

Affected phone model

n/a

Affected node model

n/a

Affected node firmware version

n/a

Steps to reproduce the bug

And the differences are huge. Just looking at the APK diff:

  -rw-r--r--  0.0 unx      120 b-      118 defN 1981-01-01 01:01:02 0f7d4d27 META-INF/version-control-info.textproto
- -rw-r--r--  0.0 unx     9903 b-     9903 stor 1981-01-01 01:01:02 d0627435 assets/dexopt/baseline.prof
+ -rw-r--r--  0.0 unx     9902 b-     9902 stor 1981-01-01 01:01:02 b3d95030 assets/dexopt/baseline.prof
  -rw-r--r--  0.0 unx     1041 b-     1041 stor 1981-01-01 01:01:02 945cd915 assets/dexopt/baseline.profm
- -rw-r--r--  0.0 unx  9686032 b-  3863751 defN 1981-01-01 01:01:02 b8b1a033 classes.dex
- -rw-r--r--  0.0 unx  5476480 b-  2261935 defN 1981-01-01 01:01:02 b25d8bf1 classes2.dex
+ -rw-r--r--  0.0 unx  9686024 b-  3863878 defN 1981-01-01 01:01:02 f7ebc9d1 classes.dex
+ -rw-r--r--  0.0 unx  5476480 b-  2261943 defN 1981-01-01 01:01:02 c353d802 classes2.dex
  -rw-r--r--  0.0 unx    10096 b-    10096 stor 1981-01-01 01:01:02 9734baa0 lib/arm64-v8a/libandroidx.graphics.path.so
  -rw-r--r--  0.0 unx     7112 b-     7112 stor 1981-01-01 01:01:02 4f56ac38 lib/arm64-v8a/libdatastore_shared_counter.so
  -rw-r--r--  0.0 unx  1911280 b-  1911280 stor 1981-01-01 01:01:02 201cef06 lib/arm64-v8a/libsqliteX.so
@@ -20,7 +20,7 @@
  -rw-r--r--  0.0 unx  2063152 b-  2063152 stor 1981-01-01 01:01:02 79fcc28f lib/x86_64/libsqliteX.so
  -rw-r--r--  0.0 unx   132737 b-    42484 defN 1981-01-01 01:01:02 e0ef716d assets/PublicSuffixDatabase.list
  -rw-r--r--  0.0 unx   106496 b-    81282 defN 1981-01-01 01:01:02 08b3b793 assets/database/geoid-height-map-v0.db
- -rw-r--r--  0.0 unx       36 b-       36 defN 1981-01-01 01:01:02 7d430010 assets/datadog.buildId
+ -rw-r--r--  0.0 unx       36 b-       38 defN 1981-01-01 01:01:02 c16155c1 assets/datadog.buildId
  -rw-r--r--  0.0 unx    24830 b-     2964 defN 1981-01-01 01:01:02 5874dbdf assets/device_hardware.json
  -rw-r--r--  0.0 unx    99216 b-    22112 defN 1981-01-01 01:01:02 9ea4221d assets/firmware_releases.json
  -rw----     2.0 fat     1733 b-      780 defN 1981-01-01 01:01:02 5b5d6064 DebugProbesKt.bin
@@ -309,7 +309,7 @@
  -rw----     2.0 fat     6449 b-     2821 defN 1981-01-01 01:01:02 4bb1d7eb src/google/protobuf/timestamp.proto
  -rw----     2.0 fat     7774 b-     2609 defN 1981-01-01 01:01:02 7bc10c3b src/google/protobuf/type.proto
  -rw----     2.0 fat     5392 b-     1762 defN 1981-01-01 01:01:02 09e2702d src/google/protobuf/wrappers.proto
- -rw----     0.0 fat    31424 b-     6259 defN 1981-01-01 01:01:02 9e5d2c06 AndroidManifest.xml
+ -rw----     0.0 fat    31416 b-     6250 defN 1981-01-01 01:01:02 cd7a0279 AndroidManifest.xml
  -rw----     0.0 fat      744 b-      341 defN 1981-01-01 01:01:02 bc6a4519 res/-1.xml

So first, the build process does not seem to match. Going by the AndroidManifest:

     XML ELEM START [lineno=18, name='manifest', #attributes=7]
-      ATTR: http://schemas.android.com/apk/res/android:versionCode=29314197
-      ATTR: http://schemas.android.com/apk/res/android:versionName='2.7.1 (29314197) fdroid'
+      ATTR: http://schemas.android.com/apk/res/android:versionCode=4846
+      ATTR: http://schemas.android.com/apk/res/android:versionName='2.7.1 (4846) fdroid'
       ATTR: http://schemas.android.com/apk/res/android:compileSdkVersion=36

we get entirely different versionName and versionCode here. Next, there's that datadog.buildIdBuildIDs are deadly for RB. That the baseline differs seems logical, as it a.o. holds the checksums of the dex files – which differ as well.

All we do here is running ./gradlew clean assembleFdroidRelease (with OpenJDK 21). What changed with v2.7.0 that this ran so far apart? Any clue how we can fix that gap?

Actual behavior

No response

Expected behavior

No response

Screenshots/Screen recordings

No response

Relevant log output

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions