Renames the app (label, texts, Audiobookshelf client name, User-Agent, APK). The package name, preferences and signing key stay, so it installs over MiniABS and keeps its settings. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
39 lines
1.9 KiB
Bash
Executable File
39 lines
1.9 KiB
Bash
Executable File
#!/bin/sh
|
|
# Builds Podlite.apk for Android 2.2+ (API 8) using the plain SDK tools, no Gradle.
|
|
# ANDROID_JAR android.jar for API 8 (compiling against it guarantees no newer APIs sneak in)
|
|
# KEYSTORE signing keystore (created on first build if missing)
|
|
set -e
|
|
cd "$(dirname "$0")"
|
|
ANDROID_JAR=${ANDROID_JAR:-/home/claude/sable/android-platforms/android-8/android.jar}
|
|
KEYSTORE=${KEYSTORE:-miniabs.keystore}
|
|
BC_SRC=${BC_SRC:-$HOME/android-toolchain/bcsrc} # Bouncy Castle renamed to com.minamp.bc (Minamp's tools/setup_toolchain.sh)
|
|
OUT=build
|
|
|
|
rm -rf "$OUT"
|
|
mkdir -p "$OUT/gen" "$OUT/classes"
|
|
|
|
echo "== resources"
|
|
aapt package -f -m -J "$OUT/gen" -M AndroidManifest.xml -S res -A assets -I "$ANDROID_JAR" \
|
|
-F "$OUT/Podlite.unsigned.apk"
|
|
|
|
echo "== compile (Java 8 bytecode, API 8 class library)"
|
|
javac -nowarn -Xlint:-options -encoding UTF-8 -source 8 -target 8 \
|
|
-bootclasspath "$ANDROID_JAR" -classpath "$ANDROID_JAR" -sourcepath "src:$BC_SRC:$OUT/gen" \
|
|
-d "$OUT/classes" $(find src "$OUT/gen" -name '*.java')
|
|
|
|
echo "== dex"
|
|
dalvik-exchange --dex --min-sdk-version=8 --output="$OUT/classes.dex" "$OUT/classes"
|
|
(cd "$OUT" && aapt add Podlite.unsigned.apk classes.dex > /dev/null)
|
|
|
|
echo "== align + sign (v1 JAR signature with SHA-1, which Android 2.x requires)"
|
|
if [ ! -f "$KEYSTORE" ]; then
|
|
keytool -genkeypair -keystore "$KEYSTORE" -storepass miniabs -keypass miniabs -alias miniabs \
|
|
-keyalg RSA -keysize 2048 -validity 10000 -dname "CN=Podlite" > /dev/null 2>&1
|
|
fi
|
|
zipalign -f 4 "$OUT/Podlite.unsigned.apk" "$OUT/Podlite.aligned.apk"
|
|
apksigner sign --ks "$KEYSTORE" --ks-pass pass:miniabs --key-pass pass:miniabs --ks-key-alias miniabs \
|
|
--min-sdk-version 8 --v1-signing-enabled true --v2-signing-enabled false --v3-signing-enabled false \
|
|
--out "$OUT/Podlite.apk" "$OUT/Podlite.aligned.apk"
|
|
apksigner verify --min-sdk-version 8 "$OUT/Podlite.apk"
|
|
ls -l "$OUT/Podlite.apk"
|