面向 macOS 本地应用副本、兼容性和启动路径的安全操作工具。当前实现针对微信客户端与 WeChatTweak 的特定工作流,不承诺支持其他应用。
本项目调用已安装的 WeChatTweak。仓库不包含、分发或留存微信与 WeChatTweak 的任何二进制文件;install 只在本机复制用户已有的官方微信。安装时保留 /Applications/WeChat.app,并默认把待修改副本放在 ~/Applications/WeChat.app。
WeChatTweak 对特定微信 build 的 Mach-O 做静态 patch,随后执行 ad-hoc 重签名。本项目会先验证 source 的 bundle ID、腾讯签名、build 和路径边界,再在目标目录内完成临时复制、patch、签名校验、锁定与回滚保护。它不注入 dylib,也不安装后台服务。
- macOS
- 已安装的官方微信:
/Applications/WeChat.app - Homebrew
- 已安装 WeChatTweak:
brew install sunnyyoung/tap/wechattweak第三方 Homebrew tap 和 WeChatTweak 上游代码不受本项目控制,请先自行审阅并决定是否信任。本项目不要求关闭 SIP,也不建议这样做。
先取得仓库:
git clone https://github.com/HaokaiDing/macos-local-copy-tools.git
cd macos-local-copy-tools然后执行:
# 检查系统、应用路径和依赖
./bin/app-copy-runner doctor
# 复制官方应用并 patch 默认副本
./bin/app-copy-runner install
# 查看官方版、副本和签名状态
./bin/app-copy-runner status
# 启动由本工具安装并可由 receipt 核对的副本
./bin/app-copy-runner launchinstall 的默认目标是 ~/Applications/WeChat.app;/Applications/WeChat.app 保持原样。安装记录放在副本旁边的 ~/Applications/WeChat.app.app-copy-runner-receipt.json,不会写入已签名的 .app。receipt 包含本机绝对路径,分享前应删除或脱敏;它只用于防止误覆盖,不是防篡改凭证。日常启动时先用 status 确认路径,避免误开官方版后以为 patch 失效。
脚本不会覆盖已经存在且不受本工具管理的目标。若 ~/Applications/WeChat.app 已经存在,可先将它归档到明确位置,或为新副本选择其他路径:
./bin/app-copy-runner install \
--destination "$HOME/Applications/WeChat-Patched.app"历史遗留、没有 receipt 的副本默认不会由 launch 打开。确认 status 输出和签名后,可以明确放行:
./bin/app-copy-runner launch --force-unmanaged- 静态 Mach-O patch 与具体微信 build 绑定,不保证兼容所有版本。
- 安装器会检查上游输出包含
revoketarget、主程序发生变化且签名有效;这仍不是独立的指令字节证明。 - 微信更新后,先重新运行
doctor和status,确认当前 build 获得 WeChatTweak 上游支持,再重新安装副本。 - 若
doctor显示patch-tool support: no,应停止安装,不要绕过版本检查。 - ad-hoc 重签名可能触发 Gatekeeper 拒绝启动,并可能丢失官方签名携带的 entitlements 或沙箱属性。
- 为等待兼容而继续使用旧版微信会带来已知或未知的安全风险。
- 修改客户端可能违反微信条款,并可能产生账号限制或封禁风险。请自行评估并承担后果。
退出正在运行的副本,然后启动未修改的官方应用:
open /Applications/WeChat.app这一步只切换启动目标,不删除聊天数据,也不要求删除副本。若无法启动副本,优先确认实际启动路径,再检查 Gatekeeper 提示、微信 build 与签名状态。
历史环境中已验证 patch 命令输出、ad-hoc codesign、登录和多开。防撤回效果未纳入真实撤回消息的端到端自动验证;安装后请在非关键聊天中自行测试。历史结果不代表当前或未来微信 build 一定兼容。