Skip to content

Reproducible builds #3263

@ThexXTURBOXx

Description

@ThexXTURBOXx

I am currently trying to get my app uploaded to F-Droid with reproducible builds.
I could solve all the issues except for the NT_GNU_BUILD_ID within the libdartjni.so files:
https://gitlab.com/ThexXTURBOXx/fdroiddata/-/jobs/13647445748

In this diffoscope output, I have compared the signed (!) apk from GitHub with the unsigned (!) apk from F-Droid. For this reason, the certificates are also a difference here (of course they wouldn't be if the libdartjni.so issue was resolved:

Diffoscope output
--- app-release.apk
+++ studip_uni_passau.femtopedia.de.unipassaustudip_203.apk
│┄ 'androguard' Python package not installed; cannot extract V2 signing keys.
│┄ 'apktool' not available in path. Format-specific differences are supported for Android APK files. Installing the 'apktool' package may produce better output.
├── /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: Missing META-INF/MANIFEST.MF
│ @@ -1,17 +0,0 @@
│ -Verifies
│ -Verified using v1 scheme (JAR signing): false
│ -Verified using v2 scheme (APK Signature Scheme v2): true
│ -Verified using v3 scheme (APK Signature Scheme v3): false
│ -Verified using v3.1 scheme (APK Signature Scheme v3.1): false
│ -Verified using v4 scheme (APK Signature Scheme v4): false
│ -Verified for SourceStamp: false
│ -Number of signers: 1
│ -Signer #1 certificate DN: CN=Nico Mexis, L=Anger, ST=Bavaria, C=83454
│ -Signer #1 certificate SHA-256 digest: f17448cfb1bd29bc4b29932de068feab87175654dfac0e1a48605f2aeecebaef
│ -Signer #1 certificate SHA-1 digest: 1d3e9ce1194d756b0a38ef26f64f00550f0eaeca
│ -Signer #1 certificate MD5 digest: 5113e3699cecd214ae2e58adcc6c8db6
│ -Signer #1 key algorithm: RSA
│ -Signer #1 key size (bits): 2048
│ -Signer #1 public key SHA-256 digest: ecf8d5b43fd5bdeecf612ad7d0dfa8242e0de3f0def52cb8e85aa116944b91b1
│ -Signer #1 public key SHA-1 digest: 161bcb2b5b9df9b545cdb2cb97fba74a08445384
│ -Signer #1 public key MD5 digest: 7ab94e51668fb248bf4bafefefa7ce79
├── zipinfo {}
│ @@ -1,8 +1,8 @@
│ -Zip file size: 64922583 bytes, number of entries: 403
│ +Zip file size: 64914391 bytes, number of entries: 403
│  -rw-r--r--  0.0 unx       57 b- defN 81-Jan-01 01:01 META-INF/com/android/build/gradle/app-metadata.properties
│  -rw-r--r--  0.0 unx       46 b- defN 81-Jan-01 01:01 META-INF/version-control-info.textproto
│  -rw-r--r--  0.0 unx      934 b- stor 81-Jan-01 01:01 assets/dexopt/baseline.prof
│  -rw-r--r--  0.0 unx      177 b- stor 81-Jan-01 01:01 assets/dexopt/baseline.profm
│  -rw-r--r--  0.0 unx  2815536 b- defN 81-Jan-01 01:01 classes.dex
│  -rw-r--r--  0.0 unx  9044912 b- stor 81-Jan-01 01:01 lib/arm64-v8a/libapp.so
│  -rw-r--r--  0.0 unx   123592 b- stor 81-Jan-01 01:01 lib/arm64-v8a/libdartjni.so
├── lib/arm64-v8a/libdartjni.so
│┄ File has been modified after NT_GNU_BUILD_ID has been applied.
│ ├── readelf --wide --notes {}
│ │ @@ -1,8 +1,8 @@
│ │
│ │  Displaying notes found in: .note.android.ident
│ │    Owner                Data size   Description
│ │    Android              0x00000084  NT_VERSION (version)       description data: 15 00 00 00 72 32 38 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 31 33 36 37 36 33 35 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
│ │
│ │  Displaying notes found in: .note.gnu.build-id
│ │    Owner                Data size   Description
│ │ -  GNU                  0x00000014  NT_GNU_BUILD_ID (unique build ID bitstring)         Build ID: 6025c922e74df201380451eb87732148b921ca58
│ │ +  GNU                  0x00000014  NT_GNU_BUILD_ID (unique build ID bitstring)         Build ID: 060cc6845256ce4a4ee9b6694b7bd8f8943576a9
├── lib/armeabi-v7a/libdartjni.so
│┄ File has been modified after NT_GNU_BUILD_ID has been applied.
│ ├── readelf --wide --notes {}
│ │ @@ -1,8 +1,8 @@
│ │
│ │  Displaying notes found in: .note.android.ident
│ │    Owner                Data size   Description
│ │    Android              0x00000084  NT_VERSION (version)       description data: 15 00 00 00 72 32 38 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 31 33 36 37 36 33 35 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
│ │
│ │  Displaying notes found in: .note.gnu.build-id
│ │    Owner                Data size   Description
│ │ -  GNU                  0x00000014  NT_GNU_BUILD_ID (unique build ID bitstring)         Build ID: 25acbaa9e18314cab399a724862f2f38c29351d0
│ │ +  GNU                  0x00000014  NT_GNU_BUILD_ID (unique build ID bitstring)         Build ID: 24f84463e5d49b718dffdc1cc7a211ebe0a4d094
├── lib/x86_64/libdartjni.so
│┄ File has been modified after NT_GNU_BUILD_ID has been applied.
│ ├── readelf --wide --notes {}
│ │ @@ -1,8 +1,8 @@
│ │
│ │  Displaying notes found in: .note.android.ident
│ │    Owner                Data size   Description
│ │    Android              0x00000084  NT_VERSION (version)       description data: 15 00 00 00 72 32 38 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 31 33 36 37 36 33 35 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
│ │
│ │  Displaying notes found in: .note.gnu.build-id
│ │    Owner                Data size   Description
│ │ -  GNU                  0x00000014  NT_GNU_BUILD_ID (unique build ID bitstring)         Build ID: 87e9919a9f5ee9bf86357b22573151ed1e16858e
│ │ +  GNU                  0x00000014  NT_GNU_BUILD_ID (unique build ID bitstring)         Build ID: dd60108c29f25d1fa2544fc71814e1f3f0387b70

As far as I can tell, this problem was not reported previously here. Is this a limitation of the jni/jnigen package or is there a way to turn off adding the build ID or something else to remedy this issue?

Thank you very much in advance!

Metadata

Metadata

Assignees

Type

No type

Projects

Status

No status

Relationships

None yet

Development

No branches or pull requests

Issue actions