#!/data/data/com.dsharnessmobile.shell/files/usr/bin/bash # OpenTerm 一键构建脚本 set -e P=/data/data/com.dsharnessmobile.shell/files/usr J=$P/lib/jvm/java-17-openjdk/bin export PATH=$J:$P/bin:$PATH SRC=/data/data/com.dsharnessmobile.shell/files/home/.dsh/workspaces/incoming/OpenTerm OUT=/data/data/com.dsharnessmobile.shell/files/home/OpenTermBuild FWRES=/system/framework/framework-res.apk cd "$OUT" rm -rf src gen classes classes.dex unsigned.apk OpenTerm.apk mkdir -p src/com/dsh/openterm gen/com/dsh/openterm classes cp -r "$SRC"/src/com/dsh/openterm/* src/com/dsh/openterm/ cp "$SRC"/AndroidManifest.xml . # 1. 资源 + R.java aapt package -f -M AndroidManifest.xml -S "$SRC/res" -I "$FWRES" -J gen # 2. 编译 javac --release 8 -classpath "$HOME/android-stub.jar:$HOME/json.jar" -d classes \ src/com/dsh/openterm/*.java $(find gen -name "*.java") # 3. 转 dex java -cp "$HOME/r8.jar" com.android.tools.r8.D8 --release \ --lib "$HOME/android-stub.jar" --output . classes/com/dsh/openterm/*.class # 4. 打包 aapt package -f -M AndroidManifest.xml -S "$SRC/res" -I "$FWRES" -F unsigned.apk aapt add unsigned.apk classes.dex # 5. 签名 apksigner sign --ks "$HOME/openterm.keystore" --ks-pass pass:openterm123 \ --key-pass pass:openterm123 --out OpenTerm.apk unsigned.apk apksigner verify OpenTerm.apk cp OpenTerm.apk "$SRC/../OpenTerm.apk" ls -la "$SRC/../OpenTerm.apk" echo BUILD_OK