-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Reproducible Builds #44
Comments
@mshdabiola any word? |
Hello 👋 Yes it was build with the latest tag |
Where are your having problems |
At a clean tree, exactly from that commit, no reuse of artifacts from prior builds (as e.g. Android Studio does it if you do not run "clean project" first)?
With the diff :) As long as there's a diff, the two APKs are not identical. I've linked to the details from the initial comment here. Only if those APKs are identical one can be sure the shipped APK corresponds exactly to the code it says to correspond to – which confirms nothing was added, altered or removed. |
If I get your point right, the APK you reproduce is different from mine? It will be different because I used my signing key to sign my own apk |
Yupp.
(sigh) have you meanwhile taken a look at behind those links? And at the diff above? Nope, signing is not part of this. Actually, to put it into easy terms, your signing is transferred to my APK at the end of the process – because if the rest would be identical, after adding the same signing my APK should verify. That's how RB works. So if the Dex has huge differences, that has nothing at all to do with signing, but rather with building. Reasons could be:
Here's basically what I do:
|
Taking a closer look at your Update: yeah, -rw-r--r-- 0.0 unx 120 b- 118 defN 1981-01-01 01:01:02 3e025220 META-INF/version-control-info.textproto
- -rw-r--r-- 0.0 unx 10786 b- 10786 stor 1981-01-01 01:01:02 9e76dea3 assets/dexopt/baseline.prof
- -rw-r--r-- 0.0 unx 652 b- 652 stor 1981-01-01 01:01:02 2e4a83d2 assets/dexopt/baseline.profm
- -rw-r--r-- 0.0 unx 2001772 b- 993061 defN 1981-01-01 01:01:02 fd7a9870 classes.dex
- -rw-r--r-- 0.0 unx 2650776 b- 1271967 defN 1981-01-01 01:01:02 aace86d8 classes2.dex
+ -rw-r--r-- 0.0 unx 11483 b- 11483 stor 1981-01-01 01:01:02 b2d5b33d assets/dexopt/baseline.prof
+ -rw-r--r-- 0.0 unx 643 b- 643 stor 1981-01-01 01:01:02 7eafce21 assets/dexopt/baseline.profm
+ -rw-r--r-- 0.0 unx 2008212 b- 996292 defN 1981-01-01 01:01:02 0faaa458 classes.dex
+ -rw-r--r-- 0.0 unx 2525748 b- 1206942 defN 1981-01-01 01:01:02 79df616a 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 As you didn't reply to my previous comment from August, @mshdabiola – are you not interested in having reproducible builds established? It provides another level of security. If you don't want that, just let us know and we drop your app from the queue. Would be a pity, though. |
I've checked your app if its build is reproducible (see: Reproducible bulds, special client support and more in our repo), but while I was able to successfully generate the APK using
./gradlew assembleRelease
, the differences to the one provided at your latest release were huge. Was that APK really built from the commit the tag points to? If so, did I miss some build options? And if not, which commit was it?Diff of the APK from v1.3.0:
The Dex diff was huuuuge.
baseline.prof
always differs whenclasses.dex
does (as it contains its hash).We'd appreciate if you could help making your build reproducible. We've prepared some hints on reproducible builds for that.
Looking forward to your reply!
The text was updated successfully, but these errors were encountered: