feat: publish workphone SDK deployment and API docs
This commit is contained in:
43
sdk/scripts/auto_accept_when_ready.sh
Executable file
43
sdk/scripts/auto_accept_when_ready.sh
Executable file
@@ -0,0 +1,43 @@
|
||||
#!/usr/bin/env bash
|
||||
# auto_accept_when_ready.sh - guard: when phone frida attaches WeChat, auto run 3-item acceptance
|
||||
# Polls hook/probe; on supports_hook=true runs run_three_acceptance.sh and archives evidence.
|
||||
# Usage: bash sdk/scripts/auto_accept_when_ready.sh [device_id] [max_wait_sec]
|
||||
set -o pipefail
|
||||
|
||||
ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
|
||||
DEVICE="${1:-xgfe65eimrrofyws}"
|
||||
MAX_WAIT="${2:-7200}"
|
||||
BASE="${SDK_BASE_URL:-http://127.0.0.1:8899}"
|
||||
INTERVAL=10
|
||||
LOG="$ROOT/sdk/logs/auto_accept_${DEVICE}.log"
|
||||
mkdir -p "$(dirname "$LOG")"
|
||||
|
||||
echo "[auto-accept] start $(date) device=$DEVICE max=${MAX_WAIT}s" | tee -a "$LOG"
|
||||
deadline=$(( $(date +%s) + MAX_WAIT ))
|
||||
|
||||
while [ "$(date +%s)" -lt "$deadline" ]; do
|
||||
# 就绪信号:diag_wcdb RPC 可用(= 新 wechat_hook_v2.js 已重载,含 WCDB 2.x 适配)
|
||||
DIAG="$(curl -s --max-time 30 -X POST "$BASE/api/v3/hook/execute" -H 'Content-Type: application/json' \
|
||||
-d "{\"device_id\":\"$DEVICE\",\"platform\":\"wechat\",\"action\":\"diag_wcdb\",\"params\":{},\"hook_only\":true}" 2>/dev/null)"
|
||||
SUP="$(printf '%s' "$DIAG" | python3 -c 'import sys,json
|
||||
try:
|
||||
d=json.load(sys.stdin); inner=d.get("data",d)
|
||||
# 最新 JS 标志:diag_wcdb 含 main_query 实读测试字段
|
||||
print("True" if (inner.get("success") and "main_query" in inner) else "ERR")
|
||||
except Exception:
|
||||
print("ERR")' 2>/dev/null)"
|
||||
SUP="${SUP:-ERR}"
|
||||
if [ "$SUP" = "True" ]; then
|
||||
echo "[auto-accept] $(date) diag_wcdb ok (new JS loaded) -> run 3-item acceptance" | tee -a "$LOG"
|
||||
echo "[auto-accept] WCDB diag: $DIAG" >> "$LOG"
|
||||
bash "$ROOT/sdk/scripts/run_three_acceptance.sh" "$DEVICE" 2>&1 | tee -a "$LOG"
|
||||
RC="${PIPESTATUS[0]:-0}"
|
||||
echo "[auto-accept] acceptance exit=$RC $(date)" | tee -a "$LOG"
|
||||
exit "$RC"
|
||||
fi
|
||||
echo "[auto-accept] $(date '+%H:%M:%S') 新JS未就绪(diag_wcdb=$SUP),等手机重启Agent,retry ${INTERVAL}s" >> "$LOG"
|
||||
sleep "$INTERVAL"
|
||||
done
|
||||
|
||||
echo "[auto-accept] timeout, frida not ready $(date)" | tee -a "$LOG"
|
||||
exit 1
|
||||
Reference in New Issue
Block a user