blob: 580ccd03555d217e9562356e5046ef5030320082 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#!/bin/sh
# Build the complete unsigned APK twice and compare it byte for byte.
set -eu
root=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)
a=$(mktemp -d)
b=$(mktemp -d)
trap 'rm -rf "$a" "$b"' 0
[ ! -f "$root/keystore.properties" ] || {
echo "verify-repro: keystore.properties must be absent" >&2
exit 1
}
make -C "$root" app
cp "$root/app/build/outputs/apk/release/app-release-unsigned.apk" "$a/app.apk"
rm -rf "$root/app/build" "$root/app/src/main/jniLibs" "$root/rsync/work" "$root/out"
make -C "$root" app
cp "$root/app/build/outputs/apk/release/app-release-unsigned.apk" "$b/app.apk"
if cmp "$a/app.apk" "$b/app.apk"; then
echo "verify-repro: APKs are bit-identical"
else
echo "verify-repro: NONDETERMINISM detected" >&2
exit 1
fi
|