├── .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 | 
4 | [](https://github.com/X1a0He/X1a0HeWeChatPlugin/releases)
5 | 
6 |
7 | macOS 微信客户端插件
8 | 
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 | 
45 |
46 | - 完成解压后,打开`终端`\
47 | 
48 |
49 | 执行以下命令
50 |
51 | ```shell
52 | cd X1a0HeWeChatPlugin目录
53 | sudo sh install.sh
54 | ```
55 |
56 | **等待安装完成即可**
57 |
58 | # 插件菜单预览
59 |
60 | 
61 |
62 | # 消息列表操作预览
63 |
64 | 消息列表操作功能是为了可以更方便对微信消息进行批量管理,包括
65 |
66 | - 批量置顶/取消置顶
67 | - 批量免打扰/取消免打扰
68 | - 批量删除
69 | - 批量不显示
70 | - 批量收进「折叠的群聊」(仅针对群聊)
71 | - 批量移除「折叠的群聊」
72 |
73 | 
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 |
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}] 安装完成!"
--------------------------------------------------------------------------------