diff --git a/README.md b/README.md index 4b8adcb..9d2bb3d 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # ApkGolf -This repository hosts the smallest Android APK in the world. The current size of the APK is *1295 bytes*. +This repository hosts the smallest Android APK in the world. The current size of the APK is *922 bytes*. To learn more about how this was achieved, please read the [blog post](https://fractalwrench.co.uk/posts/playing-apk-golf-how-low-can-an-android-app-go/). diff --git a/app-unsigned.apk b/app-unsigned.apk new file mode 100644 index 0000000..d5d5f65 Binary files /dev/null and b/app-unsigned.apk differ diff --git a/app/keystore.jks b/app/keystore.jks deleted file mode 100644 index edee274..0000000 Binary files a/app/keystore.jks and /dev/null differ diff --git a/build.sh b/build.sh index 8e064ab..5f4437a 100755 --- a/build.sh +++ b/build.sh @@ -1,9 +1,11 @@ #!/usr/bin/env bash +set -e + rm -rf build mkdir -p build/apk -set -x +: ${ANDROID_HOME:?"Need to set ANDROID_HOME"} # Use zopfli compression if available recompress() { @@ -14,7 +16,10 @@ recompress() { fi } -#TODO ensure that ANDROID_HOME is set +set -x + +echo "Creating keystore" +keytool -genkeypair -keyalg EC -keysize 256 -v -keystore build/keystore.jks -storepass android -dname 'C=' -alias android -keypass android echo "Creating base AndroidManifest.xml" $ANDROID_HOME/build-tools/26.0.2/aapt p -M app/AndroidManifest.xml -S app/res -I $ANDROID_HOME/platforms/android-26/android.jar -f -F build/base.apk @@ -35,7 +40,7 @@ zip -j -r build/app-unsigned.apk build/apk recompress build/app-unsigned.apk echo "Signing archive" -KEYSTORE_PASS=android $ANDROID_HOME/build-tools/26.0.2/apksigner sign --v1-signing-enabled false --ks app/keystore.jks --out build/signed-release.apk --ks-pass env:KEYSTORE_PASS --ks-key-alias android --min-sdk-version 24 build/app-unsigned.apk +$ANDROID_HOME/build-tools/26.0.2/apksigner sign --v1-signing-enabled false --ks build/keystore.jks --out build/signed-release.apk --ks-pass pass:android --ks-key-alias android --min-sdk-version 24 build/app-unsigned.apk set +x diff --git a/keystore.jks b/keystore.jks new file mode 100644 index 0000000..5182ebc Binary files /dev/null and b/keystore.jks differ diff --git a/signed-release.apk b/signed-release.apk index c2be19b..7042951 100644 Binary files a/signed-release.apk and b/signed-release.apk differ