Files
workphone-sdk/sdk/build_universal_package.sh
Manus AI 80d2505304
Some checks failed
SDK CI / python-compile (push) Has been cancelled
feat: 完善微信无界面接口并更新部署说明
2026-07-24 02:09:35 +08:00

92 lines
3.0 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# 生成通用安装包APK + Agent + Hook 脚本 + 安装说明)
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "$0")" && pwd)"
DIST_DIR="$ROOT_DIR/dist/universal"
PKG_NAME="workphone-universal-$(date +%Y%m%d-%H%M%S)"
PKG_DIR="$DIST_DIR/$PKG_NAME"
mkdir -p "$PKG_DIR"
echo "== 1) 构建 Android APK =="
cp "$ROOT_DIR/agent/hook/wechat_hook_v2.js" "$ROOT_DIR/android-app/app/src/main/assets/wechat_hook_v2.js"
cp "$ROOT_DIR/agent/hook/wechat_version_compat.json" "$ROOT_DIR/android-app/app/src/main/assets/wechat_version_compat.json"
pushd "$ROOT_DIR/android-app" >/dev/null
export JAVA_HOME="${JAVA_HOME:-$(/usr/libexec/java_home -v 21)}"
export PATH="$JAVA_HOME/bin:$PATH"
./gradlew assembleRelease --no-daemon \
-x lintVitalAnalyzeRelease -x lintVitalReportRelease -x lintVitalRelease
popd >/dev/null
APK_PATH="$ROOT_DIR/android-app/app/build/outputs/apk/release/app-release.apk"
if [[ ! -f "$APK_PATH" ]]; then
echo "APK 未生成: $APK_PATH"
exit 1
fi
echo "== 2) 打包 Agent =="
pushd "$ROOT_DIR/agent" >/dev/null
bash package.sh
popd >/dev/null
cp "$APK_PATH" "$PKG_DIR/workphone-agent-release.apk"
cp "$ROOT_DIR/agent/dist/agent.tar.gz" "$PKG_DIR/agent.tar.gz"
cp "$ROOT_DIR/agent/install.sh" "$PKG_DIR/install.sh"
cp "$ROOT_DIR/agent/hook/wechat_hook_v2.js" "$PKG_DIR/wechat_hook_v2.js"
cp "$ROOT_DIR/agent/hook/wechat_version_compat.json" "$PKG_DIR/wechat_version_compat.json"
cp "$ROOT_DIR/scripts/frida-server-17.8.1-android-arm64" "$PKG_DIR/frida-server-17.8.1-android-arm64"
cp "$ROOT_DIR/scripts/frida-gadget-17.8.1-android-arm64.so" "$PKG_DIR/frida-gadget-17.8.1-android-arm64.so"
python3 "$ROOT_DIR/scripts/wechat_release_gate.py" \
--apk "$APK_PATH" \
--agent-archive "$ROOT_DIR/agent/dist/agent.tar.gz" \
--json-out "$PKG_DIR/release-gate.json"
cat > "$PKG_DIR/INSTALL.md" <<'EOF'
# WorkPhone 通用安装包
包含:
- `workphone-agent-release.apk`Android 设备端 App
- `agent.tar.gz`Termux Python Agent 包
- `install.sh`Termux 一键安装脚本
- `wechat_hook_v2.js`:微信 Hook 脚本
- `wechat_version_compat.json`:微信版本兼容矩阵
- `frida-server-17.8.1-android-arm64` / `frida-gadget-17.8.1-android-arm64.so`arm64 Hook 资产
## 1WSS Agent 无线更新 App
```bash
# 由设备端 Agent 通过 WSS 文件通道分片传输并执行安装
# 使用既有 WSS Agent 文件通道分片传输并执行安装,不使用 USB、Type-C 或主机 ADB。
```
## 2安装 AgentTermux
```bash
curl -sL http://<server>:8899/install.sh | bash -s -- --server ws://<server>:8899/ws/device
```
## 3部署 Hook 脚本
```bash
curl -s -X POST "http://<server>:8899/api/v3/scripts?module_id=wechat_hook_v2&version=3.1.0" \
-F "file=@wechat_hook_v2.js"
```
## 4无线 Hook 能力探测
```bash
curl -s "http://<server>:8899/api/v3/devices/<device_id>/modules"
```
当返回 `supports_hook=true` 且 `frida_version` 有值,表示 Hook 环境可用。
EOF
tar czf "$DIST_DIR/${PKG_NAME}.tar.gz" -C "$DIST_DIR" "$PKG_NAME"
echo "完成:"
echo "目录包: $PKG_DIR"
echo "压缩包: $DIST_DIR/${PKG_NAME}.tar.gz"