- 新增登录状态守卫后台任务 - 新增好友申请自动通过规则引擎 - 新增多分辨率UI配置与模板资源 - 新增消息拉取复合游标支持 - 优化发送队列与UI自动化逻辑 - 新增批量发送日志与错误处理 - 优化Docker镜像构建与ptrace初始化 - 新增联系人名称缓存预热
36 lines
1.3 KiB
Bash
36 lines
1.3 KiB
Bash
#!/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_PTRACE,key 提取仍可尝试" >&2
|
||
else
|
||
echo "woc-ptrace: 宿主机未启用 YAMA($PTRACE_SCOPE 不存在),且容器未持有 SYS_PTRACE;自动 key 提取可能不可用" >&2
|
||
fi
|
||
fi
|