55 lines
1.9 KiB
Bash
Executable File
55 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -e
|
|
|
|
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
WORK="$DIR/build"
|
|
SDK="/home/benzj/Android/Sdk"
|
|
BUILD_TOOLS="$SDK/build-tools/34.0.0"
|
|
ANDROID_JAR="$SDK/platforms/android-34/android.jar"
|
|
KEYSTORE="/home/benzj/Projekte/benzjeremy.github.io/myfdroid/myfdroid.keystore"
|
|
KEYPASS="myfdroid_secret_key_2026"
|
|
|
|
rm -rf "$WORK"
|
|
mkdir -p "$WORK/bin" "$WORK/gen" "$WORK/compiled_res"
|
|
|
|
echo "==> 1. Compiling resources with aapt2..."
|
|
"$BUILD_TOOLS/aapt2" compile --dir "$DIR/app/src/main/res" -o "$WORK/compiled_res.zip"
|
|
|
|
echo "==> 2. Linking resources and generating R.java..."
|
|
"$BUILD_TOOLS/aapt2" link \
|
|
-I "$ANDROID_JAR" \
|
|
--manifest "$DIR/app/src/main/AndroidManifest.xml" \
|
|
--java "$WORK/gen" \
|
|
-o "$WORK/unaligned.apk" \
|
|
--auto-add-overlay \
|
|
"$WORK/compiled_res.zip"
|
|
|
|
echo "==> 3. Compiling Java sources..."
|
|
find "$DIR/app/src/main/java" "$WORK/gen" -name "*.java" > "$WORK/sources.txt"
|
|
javac --release 8 -cp "$ANDROID_JAR" -d "$WORK/bin" @"$WORK/sources.txt"
|
|
|
|
echo "==> 4. Converting bytecode to DEX with d8..."
|
|
find "$WORK/bin" -name "*.class" > "$WORK/classes.txt"
|
|
"$BUILD_TOOLS/d8" --output "$WORK" --lib "$ANDROID_JAR" @"$WORK/classes.txt"
|
|
|
|
echo "==> 5. Adding classes.dex to APK..."
|
|
cd "$WORK"
|
|
python3 -c "import zipfile; z = zipfile.ZipFile('unaligned.apk', 'a'); z.write('classes.dex', 'classes.dex'); z.close()"
|
|
cd "$DIR"
|
|
|
|
echo "==> 6. Aligning APK with zipalign..."
|
|
"$BUILD_TOOLS/zipalign" -p -f 4 "$WORK/unaligned.apk" "$WORK/aligned.apk"
|
|
|
|
echo "==> 7. Signing APK with apksigner..."
|
|
"$BUILD_TOOLS/apksigner" sign \
|
|
--ks "$KEYSTORE" \
|
|
--ks-pass "pass:$KEYPASS" \
|
|
--key-pass "pass:$KEYPASS" \
|
|
--out "$DIR/benzcloud-client-v1.0.apk" \
|
|
"$WORK/aligned.apk"
|
|
|
|
echo "==> 8. Verifying APK signature..."
|
|
"$BUILD_TOOLS/apksigner" verify --verbose "$DIR/benzcloud-client-v1.0.apk"
|
|
|
|
echo "✅ SUCCESS! Native BenzCloud Client APK built at: $DIR/benzcloud-client-v1.0.apk"
|