源码: https://github.com/zgcwkjOpenProject/XPoser_WeChatCall
通过 Xposed 模块,在桌面为好友创建独立图标,点击图标一步直达微信视频/语音通话
模块为每个好友生成一个桌面快捷方式,快捷方式点击后由模块的透明入口 ShortcutActivity 接收,
再通过微信主界面 LauncherUI 把「好友 wxid + 通话类型」透传给微信进程;
注入到 com.tencent.mm 的 Hook 拦截 LauncherUI 的 onCreate / onNewIntent,
读取参数后打开该好友聊天页,并按界面文案模拟点击完成通话
桌面好友图标
-> ShortcutActivity(模块进程,读取好友配置)
-> 拉起 com.tencent.mm/.ui.LauncherUI,附带 wxid 与通话参数
-> WeChatHook 拦截 LauncherUI onCreate/onNewIntent
-> UiCallHelper 打开聊天页,依次点击「+」与「视频通话」
-> 微信弹出选择框,按需选择视频/语音通话
Hook 边界选择稳定且可被外部拉起的 com.tencent.mm.ui.LauncherUI,不依赖混淆的业务函数;
发起通话采用模拟点击,只依赖界面文案,跨版本适应性更好
- 在模块内维护好友列表(备注、wxid、视频/语音)
- 从微信直接读取好友列表,无需手动填写 wxid
- 导入为镜像导入:完全以微信好友为准,替换本地列表
- 首页支持搜索好友,关键字同时匹配备注与 wxid
- 为每个好友一键创建桌面图标,图标默认使用微信好友头像,也可在编辑弹窗中自选图片
- 点击桌面图标即对好友发起视频通话或语音通话
- 支持桌面控件(1×1 / 2×2 / 4×4),绑定好友后点击直接通话
- 支持快捷方式固定(
ShortcutManager)与旧版广播两种创建方式 - 支持写入运行日志,便于排查
更多图片:imgs
- Android 11+(minSdk 30)
- 已安装 Xposed 框架(LSPosed / EdXposed 等)
- 已安装微信
- 支持的 Xposed 作用域:
com.tencent.mm
- 安装并激活模块,在 LSPosed 中勾选作用域
com.tencent.mm,重启微信 - 打开「微信快捷通话」App,点击右上角「添加好友」
- 填写好友备注与好友 wxid,选择视频通话或语音通话,保存
- 点击好友右侧「创建图标」,在桌面确认添加
- 之后点击桌面图标即可直接对该好友发起通话
点击主界面右上角「导入好友」即可自动读取微信好友列表,无需手动填写 wxid。
导入原理:微信使用 WCDB 访问 EnMicroMsg.db,好友数据存放在 rcontact 表。
模块挂钩 WCDB 的数据库构造函数捕获已打开的主库连接(内部已持有密钥),
再用其 rawQuery 查询 rcontact,按 type 位标志与用户名过滤出真实好友,
最后通过 ContentProvider 回传本应用。该方式不依赖解密数据库、无需 root。
使用步骤:
- 确认模块已在 LSPosed 中对
com.tencent.mm启用,并已重启微信 - 打开本应用,点击「导入好友」
- 应用会自动拉起微信触发读取,等待片刻后完成镜像导入
若仍需要手动获取 wxid(例如导入失败时),可通过以下方式:
- 使用微信数据库导出/查看类工具(如 WeChatMsg 等)从聊天记录中获取
- 若好友已设置微信号,部分工具会同时显示其 wxid
| 模块 | 作用 |
|---|---|
ShortcutHelp |
生成带好友信息的桌面快捷方式,图标优先使用好友头像或自定义图片 |
ShortcutActivity |
透明入口,读取好友配置后拉起微信主界面并透传参数 |
WeChatHook |
拦截 LauncherUI 生命周期,识别通话参数并清理标记 |
ContactHook |
捕获 WCDB 主库连接,从 rcontact 表读取并过滤好友列表 |
UiCallHelper |
打开好友聊天页,按界面文案模拟点击「+」与通话按钮 |
CallWidgetProvider |
桌面控件,显示好友头像与名字,点击直接发起通话 |
模块不限定微信版本,代码中没有任何版本判断。依赖项按风险从低到高:
| 风险 | 依赖项 | 失效表现 |
|---|---|---|
| 低 | com.tencent.wcdb.database.SQLiteDatabase、rcontact 表及列名、LauncherUI / ChattingUI 类名与 Chat_User 参数 |
日志记录查询或挂钩失败 |
| 中 | 头像缓存路径 MicroMsg/<用户哈希>/avatar/...、type 位标志(0x1 好友 / 0x8 公众号 / 0x20 服务号) |
头像回退为首字图标;好友过滤数量异常 |
| 较高 | 界面文案「更多功能」「视频通话」「语音通话」 | 日志记录 give up at step N |
type位标志按微信 8.0.77 实测得出,换版本可能需要重新确认- 界面文案匹配同时意味着微信语言须为中文
- 排查时开启日志查看
/data/data/com.zgcwkj.xpwechatcall/files/logs/中的运行记录

