云端 Mac mini 上的 OpenClaw:macOS TCC、辅助功能、屏幕录制与自动化权限(2026)
在租用的 Mac mini M4(香港、日本、韩国、新加坡或美国机房)上跑 OpenClaw 这类代理时,最常见的失败方式其实很乏味:守护进程能启动、日志看起来也正常,但窗口焦点拿不到、像素读不到、按键送不进去。十有八九根因在 透明度、同意与控制(TCC)——在系统设置里由人工点「允许」之前,macOS 不会把辅助功能或屏幕录制真正接进你的自动化目标。这份 2026 指南给出五列表格式的权限矩阵、七步且不可打乱的授权顺序,以及日志路径的硬数字,让你一次性把环境配好,然后安心依赖 LaunchAgent 排程 与 钥匙串优先的密钥卫生,而不必再守着笔记本反复点弹窗。上述边界稳定后,再通过 MCP 工具服务器接入指南 扩展工具面——每个 MCP 进程仍继承同一套权限与密钥策略。把 TCC 当成发布清单的一项:与代码评审、密钥轮换同级对待,才能在生产里稳定复现「能点、能截、能键入」的行为。
为何云 Mac 上的 TCC 比办公桌更「吵」
个人电脑上你多半是无意识地点完所有弹窗;在 ProxyMac 上团队往往先 SSH 登录,而纯终端会话永远不会把模态框推到眼前。更糟的是,有人把 OpenClaw.app 丢进 ~/Downloads 或 Dropbox 同步目录——路径一变,系统就视为另一套包实例,旧授权会被悄悄作废。正确流程是工程化的:先放进 /Applications,再安排一次真正的图形会话,最后才谈自动化。云侧运维还要考虑时区与值班:谁能在业务窗口内完成那一次图形授权,应写进值班表而不是临时在群里喊人。
- 包路径稳定:在 plist 引用二进制之前,先把应用拖入
/Applications并完成一次版本对齐。 - 用户一致:点「允许」的 UID 必须与运行
launchd作业的 UID 相同——不要「管理员安装、普通员工跑」。 - 远程现实:屏幕录制类提示理论上出现在物理控制台;通过 VNC 多数仍可操作,但高延迟容易让你错过右上角小条——务必读下文 VNC 小节。
权限矩阵(每一道门关掉时会发生什么)
在指责模型延迟或 API 配额之前,先把这张表扫一遍,能省下大量无效排查时间。
| 权限门 | 受影响的 OpenClaw 能力 | 用户可见现象 | 首选处理 | 备注 |
|---|---|---|---|---|
| 辅助功能 | 点击菜单、向原生 Cocoa 控件输入文字 | 日志出现「AXUIElementCreateApplication failed」一类错误 | 升级后在列表里对该应用关再开一次 | 也会卡住不少 AppleScript 桥接场景 |
| 屏幕录制 | 基于像素的工具、浏览器画布截取 | 黑屏帧或位图句柄为空 | 重新打开隐私面板;macOS 15 小版本后偶需重新授权 | 无法在无图形会话中授予 |
| 自动化(Apple 事件) | 在受支持场景下脚本化 Safari/Chrome | 提示「无权向该应用发送 Apple 事件」 | 在自动化列表里按目标应用逐项批准 | 建议配合最小权限浏览器配置档 |
| 文件与文件夹(下载/桌面等) | 读取工程树、写入产物 | 路径在访达里明明存在却返回 ENOENT | 显式授予文件夹;除非策略强制否则避免 blanket 完全磁盘访问 | 把仓库放在 ~/Developer 可缩小授权范围 |
| 麦克风 / 摄像头 | 语音唤醒、会议机器人 | 系统立即弹窗或采集设备列表为空 | 用 QuickTime 做一次测试以触发首次提示 | 纯文本代理常可跳过——仍应在文档中标明「未使用」 |
七步授权顺序(请勿重排)
- 预留图形窗口:用屏幕共享连接或现场 KVM,确保有人能看见右上角的系统提示。
- 安装到 /Applications 并删除其他位置的副本,避免隐私列表里出现重复包项。
- 从访达交互式启动一次 OpenClaw,不要用
sudo open,以便请求进程与未来 LaunchAgent 一致。 - 按此顺序走隐私与安全子面板:辅助功能 → 屏幕录制 → 自动化 → 文件(按需)→ 麦克风/摄像头。
- 故意触发一次会失败的工具(例如无害截图),强迫系统在列表中插入应用行。
- 重启一次;TCC 缓存很粘,重启能区分「缓存拒绝」与真实策略。
- 只有到这一步再放入 无人值守排程指南 中的 LaunchAgent,并在
~/Library/Logs或你自选路径下核对日志。
LaunchAgent、loginwindow 与「无头半真半假」
在 launchd 下运行的代理会继承同一用户在交互授权后写入的 TCC 决策。它们不会继承你在错误的 sudo 安装会话里、以 root 身份点过的批准——于是出现经典分裂:「终端里能用,plist 里挂掉」。若有 UserName 键,请与点过「允许」的账户严格对齐。
远程 VNC:不进数据中心也能看清弹窗
ProxyMac 客户通常通过加密的屏幕共享连到 mini。对 TCC 来说这一般够用,前提是暂时关掉过重压缩(小锁图标需要锐利文字)、中途不要有人关掉隐私窗口,以及避免「远程套远程」把标题栏缩到无法点的尺寸。码率与画质请对照 VNC 说明;并与 SSH 与 VNC 选型指南 一起阅读,让工程师在封网期知道何时应退回纯 CLI 工作流。
三个硬数字与下一步该看什么
- 上文七步 plist 清单与页面内嵌的 HowTo JSON-LD 一一对应——可直接抄进内部 Wiki 作为验收标准。
- 每次改权限后建议 tail 的三类日志:代理自有日志、
log stream --predicate 'subsystem == "com.apple.TCC"'(限定到你的测试时间窗),以及安全团队已在采集的/var/log/system.log片段。 - 五个区域意味着你可能每台裸金属都要重复一次入职式配置——清单可以脚本化,但点「允许」不要脚本化,这既脆弱也违背苹果的设计意图。
常见问题
能否仅通过 SSH 授予屏幕录制? 不能——多项提示必须在图形会话出现。请先用 VNC 完成一次,再回到 SSH。
克隆磁盘后权限为何坏了? TCC 把批准绑在包 ID 与签名上;克隆或漂移构建需要重新授权。
LaunchAgent 是否继承同一套 TCC? 同一用户引导会话下可以;UID 不一致或 root 无 GUI 时不行。
TCC 搞定后,为何 ProxyMac 上的 Mac mini 仍是 OpenClaw 的合适载体
代理的可信度取决于底下的硬件隔离。专用 Apple Silicon M4 Mac mini 提供 arm64 原生浏览器、可预测的单租户 CPU 以支撑并发工具调用,以及苹果框架默认假设的同一套 macOS 栈——于是屏幕录制开启时,你捕获的是真实 Metal 表面,而不是蹩脚的 x86 仿真差异。把机器放在 香港 / 日本 / 韩国 / 新加坡 / 美国 可与业务已调用的 API 同区域共置;ProxyMac 的 SSH 与 VNC 访问模型也贴合平台团队调试 TCC 的习惯:shell 看日志,GUI 点同意。租赁相对自购把资本支出变成有时间边界的实验,特别适合 2026 年可能每月调整方向的代理试点。