├── .gitignore ├── README.md ├── X1a0HeWeChatPlugin.dylib ├── change-log.md ├── entitlements.xml ├── images ├── Download-ZIP.png ├── Menu.png ├── MessageControl.png ├── Terminal.png └── WeChatMainMockUp.png ├── insert_dylib └── install.sh /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | *.iml 3 | .idea 4 | .vscode -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # X1a0He WeChat Plugin for macOS 2 | 3 | ![platform](https://img.shields.io/badge/platform-macos-blue.svg) 4 | [![release](https://img.shields.io/badge/release-v1.0.0-brightgreen.svg)](https://github.com/X1a0He/X1a0HeWeChatPlugin/releases) 5 | ![support](https://img.shields.io/badge/support-wechat%203.8.10+-blue.svg) 6 | 7 | macOS 微信客户端插件 8 | ![](images/WeChatMainMockUp.png) 9 | 10 | # 目录 11 | 12 | * [X1a0He WeChat Plugin for macOS](#x1a0he-wechat-plugin-for-macos) 13 | * [如何安装](#如何安装) 14 | * [必要步骤](#必要步骤) 15 | * [已安装 Git 的用户](#已安装-git-的用户) 16 | * [未安装 Git 的用户](#未安装-git-的用户) 17 | * [插件菜单预览](#插件菜单预览) 18 | * [消息列表操作预览](#消息列表操作预览) 19 | * [✨功能](#功能) 20 | * [📝更新日志](#更新日志) 21 | * [使用须知](#使用须知) 22 | * [FAQ](#faq) 23 | * [👨🏻‍💻作者](#作者) 24 | 25 | # 如何安装 26 | 27 | > 注意: 执行脚本需要输入你的 Mac 密码 28 | 29 | ## 必要步骤 30 | 31 | ### 已安装 Git 的用户 32 | 33 | **Mac 上安装了 Git 的可以直接克隆仓库后执行脚本** 34 | 35 | ```shell 36 | git clone https://github.com/X1a0He/X1a0HeWeChatPlugin.git 37 | cd X1a0HeWeChatPlugin 38 | sudo sh install.sh 39 | ``` 40 | 41 | ### 未安装 Git 的用户 42 | 43 | - 下载完整仓库压缩包后解压到相关目录\ 44 | ![](images/Download-ZIP.png) 45 | 46 | - 完成解压后,打开`终端`\ 47 | ![](images/Terminal.png) 48 | 49 | 执行以下命令 50 | 51 | ```shell 52 | cd X1a0HeWeChatPlugin目录 53 | sudo sh install.sh 54 | ``` 55 | 56 | **等待安装完成即可** 57 | 58 | # 插件菜单预览 59 | 60 | ![](images/Menu.png) 61 | 62 | # 消息列表操作预览 63 | 64 | 消息列表操作功能是为了可以更方便对微信消息进行批量管理,包括 65 | 66 | - 批量置顶/取消置顶 67 | - 批量免打扰/取消免打扰 68 | - 批量删除 69 | - 批量不显示 70 | - 批量收进「折叠的群聊」(仅针对群聊) 71 | - 批量移除「折叠的群聊」 72 | 73 | ![](images/MessageControl.png) 74 | 75 | # ✨功能 76 | 77 | - [x] 消息列表操作 78 | - [x] 消息撤回拦截 79 | - [x] 防撤回他人消息 80 | - [x] 拦截语音消息 81 | - [x] 拦截动画表情消息 82 | - [x] 拦截位置消息 83 | - [x] 拦截图片消息 84 | - [x] 拦截文本消息 85 | - [x] 拦截个人名片消息 86 | - [x] 拦截视频消息 87 | - [x] 拦截其他类型消息 88 | - [x] 拦截小程序消息 89 | - [x] 拦截拍一拍消息 90 | - [x] 拦截文件消息 91 | - [x] 拦截合并转发消息 92 | - [x] 拦截引用消息 93 | - [x] 拦截音乐消息 94 | - [x] 防撤回自己消息【功能同上】 95 | - [x] 显示红包转账详情 96 | - [x] 显示红包详情【不支持显示金额】 97 | - [x] 显示转账详情 98 | - [x] 聊天中的语音消息自动转成文字【调用的微信自带功能】 99 | - [x] 允许微信多开 ⚠️请慎用该功能 100 | - [x] 微信 UI 设置 101 | - [x] 毛玻璃模式 102 | - [x] 头像圆角显示 103 | - [x] 禁用日志上报 104 | - [x] 禁用安全模式 105 | - [x] 禁用检测更新 106 | - [x] 禁用启动检查更新 107 | - [x] 检测插件是否有新版本 108 | 109 | # 📝更新日志 110 | 111 | - **更多更新日志,请查看 [更新日志](change-log.md)** 112 | 113 | ### 1.0.3 (2025.01.25) 114 | 115 | - 修复了部分情况在 MAS 和 官方版本之间因检测更新而崩溃的问题 116 | - 修复了插件检测更新频率过多导致 GitHub 403 的问题 117 | - 修复了一些安全性问题 118 | 119 | 120 | 121 | 122 | 123 | Star History Chart 124 | 125 | 126 | 127 | # 使用须知 128 | 129 | **1. 不接受任何新功能请求**\ 130 | **2. 不接受任何类似以下几点的无脑issue**\ 131 | 132 | - 怎么用?不会用? 133 | - 会不会封号? 134 | - 能支持 4.X 版本吗 135 | - 可以开源吗? 136 | 137 | > ✅ 已在以下环境中测试通过\ 138 | > 💻 设备: M1 Max macOS Sequoia 15.2\ 139 | > 📒 版本: Version. 3.8.10 (28632) 140 | 141 | | 版本 | 版本号 | 状态 | Arm | Intel | 142 | |:------:|:-----:|:--:|:---:|:-----:| 143 | | 3.8.10 | 28632 | ✅ | ✅ | ✅ | 144 | | 3.8.9 | | ✅ | ✅ | ✅ | 145 | 146 | > ❌❌❌ 不支持测试版,也不会支持 版本 4.X 147 | 148 | # FAQ 149 | 150 | - **会封号吗?** 151 | 152 | > 所有处理均为本地处理,不经过任何网络传输,有能力的可以自行抓包检测\ 153 | > ⚠️ 多开功能不建议使用,因为本来官方就不支持多开 154 | 155 | - **为什么不开源?有安全和隐私问题吗?** 156 | 157 | > 为什么要开源?用人不疑,疑人不用\ 158 | > 另外,我不关心你的聊天记录,也不关心你的设备有多好,更不关心你的微信有多少钱,也不关心你人在哪里\ 159 | > 所以不会有任何安全和隐私问题,你可以放心使用,不放心随便检测 160 | 161 | # 👨🏻‍💻作者 162 | 163 | X1a0He WeChat Plugin for macOS © X1a0He 164 | 165 | Created on 2025.01.20 166 | 167 | > GitHub [@X1a0He](https://github.com/X1a0He/) \ 168 | > Telegram [@X1a0He](https://t.me/X1a0He) -------------------------------------------------------------------------------- /X1a0HeWeChatPlugin.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X1a0He/X1a0HeWeChatPlugin/b5396d331f7e178c3acad351d3595ce11b830edc/X1a0HeWeChatPlugin.dylib -------------------------------------------------------------------------------- /change-log.md: -------------------------------------------------------------------------------- 1 | # 更新日志 2 | 3 | ### 1.0.3 (2025.01.25) 4 | 5 | - 修复了部分情况在 MAS 和 官方版本之间因检测更新而崩溃的问题 6 | - 修复了插件检测更新频率过多导致 GitHub 403 的问题 7 | - 修复了一些安全性问题 8 | 9 | ### 1.0.2 (2025.01.24) 10 | 11 | - 修复了 MAS 版本启动崩溃的问题 12 | - 增加了 检查是否有新版本 的插件版本更新菜单项 13 | - 添加了 关闭插件更新提示 的菜单项 14 | 15 | ### 1.0.1 (2025.01.23) 16 | 17 | - 修复了开关毛玻璃模式崩溃的问题 18 | - install.sh 脚本增加了删除旧的插件配置 19 | - 调整了强制深色模式的特性 20 | - 调整了部分配置项的默认值,现在微信多开功能和毛玻璃模式默认为不开启 21 | - 调整部分菜单栏状态切换时的提示 22 | 23 | ### 1.0.0 (2025.01.20) 24 | 25 | - 推出 X1a0He WeChat Plugin v1.0.0 26 | - 支持 防撤回他人消息 27 | - 支持 防撤回自己消息 28 | - 支持 显示红包转账详情 29 | - 支持 聊天中的语音消息自动转成文字 30 | - 支持 允许微信多开 31 | - 支持 微信 UI 设置 32 | - 支持 禁用日志上报 33 | - 支持 禁用安全模式 34 | - 支持 禁用检测更新 35 | - 支持 禁用启动检查更新 -------------------------------------------------------------------------------- /entitlements.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | com.apple.security.application-groups 8 | 9 | 5A4RE8SF68.com.tencent.xinWeChat 10 | 11 | com.apple.security.cs.allow-jit 12 | 13 | com.apple.security.device.audio-input 14 | 15 | com.apple.security.device.camera 16 | 17 | com.apple.security.device.microphone 18 | 19 | com.apple.security.files.downloads.read-write 20 | 21 | com.apple.security.files.user-selected.read-write 22 | 23 | com.apple.security.network.client 24 | 25 | com.apple.security.network.server 26 | 27 | com.apple.security.personal-information.location 28 | 29 | com.apple.security.temporary-exception.mach-lookup.global-name 30 | 31 | com.tencent.xinWeChat-spks 32 | com.tencent.xinWeChat-spki 33 | 34 | 35 | -------------------------------------------------------------------------------- /images/Download-ZIP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X1a0He/X1a0HeWeChatPlugin/b5396d331f7e178c3acad351d3595ce11b830edc/images/Download-ZIP.png -------------------------------------------------------------------------------- /images/Menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X1a0He/X1a0HeWeChatPlugin/b5396d331f7e178c3acad351d3595ce11b830edc/images/Menu.png -------------------------------------------------------------------------------- /images/MessageControl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X1a0He/X1a0HeWeChatPlugin/b5396d331f7e178c3acad351d3595ce11b830edc/images/MessageControl.png -------------------------------------------------------------------------------- /images/Terminal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X1a0He/X1a0HeWeChatPlugin/b5396d331f7e178c3acad351d3595ce11b830edc/images/Terminal.png -------------------------------------------------------------------------------- /images/WeChatMainMockUp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X1a0He/X1a0HeWeChatPlugin/b5396d331f7e178c3acad351d3595ce11b830edc/images/WeChatMainMockUp.png -------------------------------------------------------------------------------- /insert_dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/X1a0He/X1a0HeWeChatPlugin/b5396d331f7e178c3acad351d3595ce11b830edc/insert_dylib -------------------------------------------------------------------------------- /install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | X1A0HE_WECHAT_PLUGIN_INSTALLER="X1a0He WeChat Plugin Installer" 3 | WECHAT_PATH="/Applications/WeChat.app" 4 | 5 | if [ ! -d "$WECHAT_PATH" ] 6 | then 7 | WECHAT_PATH="/Applications/微信.app" 8 | if [ ! -d "$WECHAT_PATH" ] 9 | then 10 | echo "[${X1A0HE_WECHAT_PLUGIN_INSTALLER}] 未找到微信路径,请先到微信官网下载微信" 11 | exit 1 12 | fi 13 | fi 14 | 15 | APP_NAME="WeChat" 16 | WECHAT_APP_PATH="$WECHAT_PATH/Contents/MacOS" 17 | WECHAT_EXECUTABLE_PATH="${WECHAT_APP_PATH}/${APP_NAME}" 18 | WECHAT_EXECUTABLE_ORIGINAL_PATH="${WECHAT_APP_PATH}/${APP_NAME}.original" 19 | 20 | # 判断是否存在备份文件 21 | if [ -f "$WECHAT_EXECUTABLE_ORIGINAL_PATH" ] 22 | then 23 | echo "[${X1A0HE_WECHAT_PLUGIN_INSTALLER}] 检测到已安装过,是否重新安装?[y/n]" 24 | read -r REPLY 25 | if [ "$REPLY" = "Y" ] || [ "$REPLY" = "y" ] 26 | then 27 | echo "[${X1A0HE_WECHAT_PLUGIN_INSTALLER}] 正在清除旧的插件配置..." 28 | PLIST_PATH="$HOME/Library/Containers/com.tencent.xinWeChat/Data/Library/Preferences/com.tencent.xinWeChat.plist" 29 | if [ -f "$PLIST_PATH" ]; then 30 | for key in $(sudo -u $SUDO_USER defaults read com.tencent.xinWeChat | grep -o "X1a0HeWeChatPlugin_[^\"]*"); do 31 | sudo -u $SUDO_USER defaults delete com.tencent.xinWeChat "$key" 32 | done 33 | fi 34 | rm -f "$WECHAT_EXECUTABLE_PATH" 35 | cp "$WECHAT_EXECUTABLE_ORIGINAL_PATH" "$WECHAT_EXECUTABLE_PATH" 36 | echo "[${X1A0HE_WECHAT_PLUGIN_INSTALLER}] 旧版本已清理完成,开始安装新版本..." 37 | else 38 | exit 0 39 | fi 40 | else 41 | echo "[${X1A0HE_WECHAT_PLUGIN_INSTALLER}] 检测到是首次安装,正在备份原始文件..." 42 | cp "$WECHAT_EXECUTABLE_PATH" "$WECHAT_EXECUTABLE_ORIGINAL_PATH" 43 | if [ $? -ne 0 ]; then 44 | echo "[${X1A0HE_WECHAT_PLUGIN_INSTALLER}] 备份失败,请检查权限或重试" 45 | exit 1 46 | fi 47 | fi 48 | 49 | # 拷贝动态库到微信目录 50 | echo "[${X1A0HE_WECHAT_PLUGIN_INSTALLER}] 正在拷贝插件到微信目录..." 51 | cp "./X1a0HeWeChatPlugin.dylib" "$WECHAT_APP_PATH" 52 | if [ $? -ne 0 ]; then 53 | echo "[${X1A0HE_WECHAT_PLUGIN_INSTALLER}] 拷贝插件失败,请检查权限或重试" 54 | exit 1 55 | fi 56 | 57 | # 注入动态库 58 | echo "[${X1A0HE_WECHAT_PLUGIN_INSTALLER}] 正在注入插件..." 59 | ./insert_dylib "$WECHAT_APP_PATH/X1a0HeWeChatPlugin.dylib" "$WECHAT_EXECUTABLE_PATH" "$WECHAT_EXECUTABLE_PATH" 60 | if [ $? -ne 0 ]; then 61 | echo "[${X1A0HE_WECHAT_PLUGIN_INSTALLER}] 注入插件失败" 62 | exit 1 63 | fi 64 | 65 | # 重新签名 66 | echo "[${X1A0HE_WECHAT_PLUGIN_INSTALLER}] 正在重新签名..." 67 | sudo /usr/bin/codesign -f -s - --all-architectures --entitlements "./entitlements.xml" "$WECHAT_EXECUTABLE_PATH" 68 | if [ $? -ne 0 ]; then 69 | echo "[${X1A0HE_WECHAT_PLUGIN_INSTALLER}] 重新签名失败" 70 | exit 1 71 | fi 72 | 73 | echo "[${X1A0HE_WECHAT_PLUGIN_INSTALLER}] 安装完成!" --------------------------------------------------------------------------------