新增完整的woc-bridge业务服务,实现微信API代理、密钥自动提取、消息队列限流等功能: 1. 新增bridge核心代码与s6服务配置 2. 新增ptrace权限初始化脚本与docker配置 3. 新增M2M鉴权API代理与环境变量配置 4. 新增SQLCipher解密、密钥缓存、二维码截图等工具模块 5. 完善docker构建与实例部署配置
28 lines
1.0 KiB
Plaintext
28 lines
1.0 KiB
Plaintext
#!/usr/bin/with-contenv bash
|
||
# 等待微信窗口出现,最多等 5 分钟;超时也启动 bridge(/api/status 会返回 not_running)
|
||
WAITED=0
|
||
MAX_WAIT=300
|
||
while ! xdotool search --name "微信" >/dev/null 2>&1; do
|
||
sleep 2
|
||
WAITED=$((WAITED + 2))
|
||
if [ "$WAITED" -ge "$MAX_WAIT" ]; then
|
||
echo "woc-bridge: 等待微信窗口超时(${WAITED}s),仍然启动 bridge" >&2
|
||
break
|
||
fi
|
||
done
|
||
|
||
# 以 abc 用户身份运行(与微信同 X 会话,才能操作微信窗口)
|
||
# s6-setuidgid 不接受 VAR=value 参数,须先用 s6-env 设环境变量再切用户
|
||
|
||
# 校验 ptrace 权限(key_extractor 读微信进程内存需要)
|
||
if [ -w /proc/sys/kernel/yama/ptrace_scope ] 2>/dev/null; then
|
||
echo 0 > /proc/sys/kernel/yama/ptrace_scope 2>/dev/null || true
|
||
fi
|
||
|
||
exec s6-env DISPLAY=${DISPLAY:-:1} XAUTHORITY=/config/.Xauthority \
|
||
s6-setuidgid abc \
|
||
python3 /opt/woc-bridge/server.py \
|
||
--listen 0.0.0.0:8088 \
|
||
--wechat-db /config \
|
||
--display ${DISPLAY:-:1}
|