feat: publish workphone SDK deployment and API docs
This commit is contained in:
82
sdk/scripts/adb_connection_stabilize.sh
Executable file
82
sdk/scripts/adb_connection_stabilize.sh
Executable 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"
|
||||
Reference in New Issue
Block a user