diff --git a/README.md b/README.md index 0a519a0..265b8da 100644 --- a/README.md +++ b/README.md @@ -150,6 +150,9 @@ Needs JDK 11+, Python 3, `d8` and `apksigner.jar` (Android SDK build-tools), to `com.minamp.bc` that Plexamp Lite's `tools/setup_toolchain.sh` prepares (`BC_SRC`, default `~/android-toolchain/bcsrc`). No Gradle. +With build-tools 34's `d8.jar` and `apksigner.jar` and `apktool_2.9.3.jar` in `~/android-toolchain/calendar-tools` +(where they are on this Mac), just `./build.sh`. Elsewhere: + ```sh D8=d8 APKTOOL=~/apktool.jar APKSIGNER=$SDK/build-tools/34.0.0/lib/apksigner.jar ./build.sh # add ANDROID_JAR=$SDK/platforms/android-10/android.jar to compile against the real platform diff --git a/build.sh b/build.sh index 17ac89c..b05ba1f 100755 --- a/build.sh +++ b/build.sh @@ -11,7 +11,17 @@ set -eu cd "$(dirname "$0")" OUT=build +# defaults: the copies in ~/android-toolchain/calendar-tools (build-tools 34's d8.jar and apksigner.jar, apktool 2.9.3) +CT=${CALENDAR_TOOLS:-$HOME/android-toolchain/calendar-tools} +if [ -z "${D8:-}" ] && [ -f "$CT/d8.jar" ]; then D8="java -cp $CT/d8.jar com.android.tools.r8.D8"; fi D8=${D8:-d8} +if [ -z "${APKTOOL:-}" ] && [ -f "$CT/apktool_2.9.3.jar" ]; then APKTOOL=$CT/apktool_2.9.3.jar; fi +if [ -z "${APKSIGNER:-}" ] && [ -f "$CT/apksigner.jar" ]; then APKSIGNER=$CT/apksigner.jar; fi +if ! command -v javac >/dev/null 2>&1; then + for j in "${JAVA_HOME:-}" /opt/homebrew/opt/openjdk@17 /opt/homebrew/opt/openjdk; do + if [ -n "$j" ] && [ -x "$j/bin/javac" ]; then JAVA_HOME=$j; PATH=$j/bin:$PATH; export JAVA_HOME PATH; break; fi + done +fi APKTOOL=${APKTOOL:?set APKTOOL=/path/to/apktool.jar} APKSIGNER=${APKSIGNER:?set APKSIGNER=/path/to/apksigner.jar} KS=${KEYSTORE:-gingercal.keystore}