feat: publish workphone SDK deployment and API docs

This commit is contained in:
Manus AI
2026-07-14 18:10:52 +08:00
commit 021d633cc1
534 changed files with 122391 additions and 0 deletions

View File

@@ -0,0 +1,82 @@
#!/usr/bin/env bash
# ADB 连接稳定化:宿主机 adb server + USB/无线扫描 + u2/ATX + Agent/WS 自检
set -euo pipefail
SDK_ROOT="$(cd "$(dirname "$0")/.." && pwd)"
SDK_PORT="${SDK_PORT:-8899}"
LAN_ENV="${SDK_ROOT}/config/lan.env"
if [[ -f "${LAN_ENV}" ]]; then
# shellcheck source=/dev/null
source "${LAN_ENV}" || true
fi
WIRELESS_IPS="${WIRELESS_IPS:-192.168.110.80 192.168.1.12 192.168.0.12}"
export ANDROID_ADB_SERVER_PORT="${ANDROID_ADB_SERVER_PORT:-5038}"
LOG="${TMPDIR:-/tmp}/adb-stabilize-$(date +%Y%m%d_%H%M%S).log"
adb() {
command adb -P "${ANDROID_ADB_SERVER_PORT}" "$@"
}
exec > >(tee -a "$LOG") 2>&1
echo "=== ADB 连接稳定化 $(date) ==="
echo "日志: $LOG"
echo "ADB port: ${ANDROID_ADB_SERVER_PORT}"
bash "${SDK_ROOT}/scripts/adb_host_server_listen_all.sh" --background || true
sleep 1
echo "--- 清理离线无线连接 ---"
adb disconnect >/dev/null 2>&1 || true
adb kill-server >/dev/null 2>&1 || true
adb start-server >/dev/null 2>&1 || true
sleep 2
echo "--- USB / 已配对设备 ---"
adb devices -l || true
# 尝试无线(短超时,避免 hang
for ip in $WIRELESS_IPS; do
[[ "${ip}" =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]] || continue
( adb connect "${ip}:5555" & pid=$!; sleep 3; kill $pid 2>/dev/null || true ) || true
done
adb devices -l || true
SERIAL=""
while read -r s st _rest; do
[[ -z "${s}" || -z "${st}" ]] && continue
if [[ "$st" == "device" ]]; then
SERIAL="$s"
break
fi
if [[ "$st" == "unauthorized" ]]; then
echo "⚠️ 设备 ${s} 未授权:请在手机上点「允许 USB 调试」并选「文件传输/MTP」"
fi
done < <(adb devices | awk 'NR>1 && NF>=2 {print $1, $2}')
if [[ -z "$SERIAL" ]]; then
echo "❌ 当前无已授权 ADB 设备"
echo " 1) 开发者选项 → USB 调试 开启"
echo " 2) USB 模式 → 文件传输"
echo " 3) 重新插拔数据线,看手机弹窗点「允许」"
echo " 4) 再运行: bash sdk/scripts/adb_connection_stabilize.sh"
exit 1
fi
echo "✅ 已授权设备: $SERIAL"
if command -v python3 >/dev/null 2>&1; then
echo "--- uiautomator2 init (ATX 9008) ---"
python3 -m uiautomator2 init --serial "$SERIAL" 2>/dev/null || \
python3 -m uiautomator2 init -s "$SERIAL" 2>/dev/null || \
echo "⚠️ u2 init 跳过(可手动: python3 -m uiautomator2 init --serial $SERIAL"
fi
echo "--- 启动 Frida 主控 + Agent ---"
bash "${SDK_ROOT}/scripts/frida_workphone_oneclick.sh" -d "$SERIAL" || true
echo "--- 连接状态 ---"
curl -s "http://127.0.0.1:${SDK_PORT}/api/v3/connection/status" | python3 -m json.tool 2>/dev/null || true
curl -s "http://127.0.0.1:${SDK_PORT}/api/v3/hook/probe/${SERIAL}" | python3 -m json.tool 2>/dev/null | head -20 || true
echo ""
echo "管理端: http://127.0.0.1:${SDK_PORT}/hub"
echo "设备控制台: http://127.0.0.1:${SDK_PORT}/static/index.html"