35 lines
1.4 KiB
Bash
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
|