Files
openterm/build.sh
T

35 lines
1.4 KiB
Bash

#!/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