feat: publish workphone SDK deployment and API docs
This commit is contained in:
31
sdk/scripts/auto_capture_when_frida_back.sh
Executable file
31
sdk/scripts/auto_capture_when_frida_back.sh
Executable file
@@ -0,0 +1,31 @@
|
||||
#!/usr/bin/env bash
|
||||
# 守护:轮询微信 Frida 附着状态,一旦 frida_connected=true 立即跑真机验收(截图+读/发/转发+revoke)并退出。
|
||||
# 真机铁律:只在 Frida 真附着时才跑 E2E,绝不伪造。
|
||||
set -uo pipefail
|
||||
SDK="${WORKPHONE_SDK_URL:-http://127.0.0.1:8899}"
|
||||
DEVICE_ID="${DEVICE_ID:-xgfe65eimrrofyws}"
|
||||
MAX_MIN="${MAX_MIN:-120}" # 最长守护分钟
|
||||
INTERVAL="${INTERVAL:-30}"
|
||||
REPO_ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
|
||||
LOG="$REPO_ROOT/sdk/tmp/auto_capture_$(date +%Y%m%d_%H%M%S).log"
|
||||
mkdir -p "$(dirname "$LOG")"
|
||||
deadline=$(( $(date +%s) + MAX_MIN*60 ))
|
||||
echo "[watch] start sdk=$SDK device=$DEVICE_ID interval=${INTERVAL}s max=${MAX_MIN}min" | tee -a "$LOG"
|
||||
while [ "$(date +%s)" -lt "$deadline" ]; do
|
||||
R="$(curl -sS -m 15 -X POST "$SDK/api/v3/wechat/execute" -H 'Content-Type: application/json' \
|
||||
-d "{\"device_id\":\"$DEVICE_ID\",\"action\":\"get_profile\",\"params\":{}}" 2>/dev/null)"
|
||||
FR="$(printf '%s' "$R" | python3 -c "import sys,json
|
||||
try:
|
||||
d=json.load(sys.stdin);print((d.get('data') or {}).get('frida_connected'))
|
||||
except: print('err')" 2>/dev/null)"
|
||||
echo "[watch] $(date +%H:%M:%S) frida_connected=$FR" | tee -a "$LOG"
|
||||
if [ "$FR" = "True" ]; then
|
||||
echo "[watch] Frida 已附着 → 跑真机验收" | tee -a "$LOG"
|
||||
WORKPHONE_SDK_URL="$SDK" DEVICE_ID="$DEVICE_ID" bash "$REPO_ROOT/sdk/scripts/run_wechat_realdevice_acceptance.sh" 2>&1 | tee -a "$LOG"
|
||||
echo "[watch] done exit=${PIPESTATUS[0]}" | tee -a "$LOG"
|
||||
exit 0
|
||||
fi
|
||||
sleep "$INTERVAL"
|
||||
done
|
||||
echo "[watch] 超时未等到 Frida 附着(${MAX_MIN}min),退出。设备侧需:微信前台+frida-server+Agent。" | tee -a "$LOG"
|
||||
exit 2
|
||||
Reference in New Issue
Block a user