WechatOnCloud/docker/woc-ptrace-init.sh
Kris c45282f094 feat: 新增好友自动通过、UI自动化能力与多分辨率适配
- 新增登录状态守卫后台任务
- 新增好友申请自动通过规则引擎
- 新增多分辨率UI配置与模板资源
- 新增消息拉取复合游标支持
- 优化发送队列与UI自动化逻辑
- 新增批量发送日志与错误处理
- 优化Docker镜像构建与ptrace初始化
- 新增联系人名称缓存预热
2026-07-17 18:10:31 +08:00

36 lines
1.3 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/with-contenv bash
# 设置 ptrace_scope=0允许 bridge 进程读取微信进程内存
# 用于 SQLCipher 密钥自动提取key_extractor.py 读 /proc/<pid>/mem
PTRACE_SCOPE="/proc/sys/kernel/yama/ptrace_scope"
# 检查容器是否拥有 SYS_PTRACE capability
# 通过 /proc/self/status 中的 CapEff 判断 bit 12 (CAP_SYS_PTRACE)
has_sys_ptrace() {
local cap_eff
cap_eff=$(awk '/^CapEff:/{print $2}' /proc/self/status 2>/dev/null)
if [ -z "$cap_eff" ]; then
return 1
fi
# CAP_SYS_PTRACE = 12掩码 0x1000
local mask
mask=$((0x${cap_eff} & 0x1000))
[ "$mask" -ne 0 ]
}
if [ -e "$PTRACE_SCOPE" ]; then
# 文件存在:尝试写入 0
if echo 0 > "$PTRACE_SCOPE" 2>/dev/null; then
echo "woc-ptrace: ptrace_scope 已设置为 0" >&2
else
echo "woc-ptrace: 无法写入 ptrace_scope可能需要 --privileged 或 SYS_PTRACE capability" >&2
fi
else
# 文件不存在YAMA 模块未加载(常见于 Docker Desktop WSL2 精简内核)
if has_sys_ptrace; then
echo "woc-ptrace: 宿主机未启用 YAMA$PTRACE_SCOPE 不存在),但容器已持有 SYS_PTRACEkey 提取仍可尝试" >&2
else
echo "woc-ptrace: 宿主机未启用 YAMA$PTRACE_SCOPE 不存在),且容器未持有 SYS_PTRACE自动 key 提取可能不可用" >&2
fi
fi