pre-crunch and pre-strip PNG in tor-service-android to make it reproducible
PNG crunching is not a deterministic process, especially the way aapt does it. This makes the builds not reproducible. The easy solution to this is to pre-crunch the PNGs and commit them to git. This also uses exiftool to strip any metadata from the PNG. This then disables running the crunch as part of the gradle build process.
I have submitted this upstream to Orbot: https://github.com/guardianproject/orbot/pull/252
And it is here in my tor-android-service-fork: https://gitlab.com/eighthave/tor-android-service/commits/png-pre-compress
Once it is merged, someone will need to do:
$ sudo apt install exiftool zopfli $ cd /path/to/tor-android-service $ ./tools/png-pre-compress
Then commit all the changed PNGs.