-
Notifications
You must be signed in to change notification settings - Fork 443
Home
Emerson Lin edited this page May 10, 2018
·
6 revisions
Wechat Spellbook 是一个使用Kotlin编写的开源微信插件框架,底层需要 Xposed 或 VirtualXposed 等Hooking框架的支持,而顶层可以轻松对接Java、Kotlin、Scala等JVM系语言。让程序员能够在几分钟内编写出简单的微信插件,随意揉捏微信的内部逻辑。
- 精心设计各项机制,合理运用多线程和惰性求值等技巧,用不到的功能永远不会影响你的性能。
- 使用一套API 自动分析 微信内部结构特征,避免手工适配 每个微信版本不同的类名、方法名。
- 每次微信更新的时候,都会使用写好的单元测试自动验证是否有特征失效。
- 精心设计的框架保证了开发者可以轻松拓展添加自己需要的特征。
- 框架内部设计了 EventCenter 和 HookerProvider 两类不同的事件处理方式。
- EventCenter 让开发者直接使用设计好的事件消息来截获微信数据,保证 便利性 。
- HookerProvider 允许熟悉Xposed的开发者调用Xposed接口进行自由发挥,保证 自由度 。
- 正确使用 EventCenter 方案,有助于回避Xposed的一些小问题,如
- 函数调用被前一个劫持者打断导致的插件相互冲突。
- Xposed自Android 7.0后偶发的,由于多线程导致ART崩溃的问题。
目前Wechat Spellbook初步实现了对微信以下常见操作的监听与劫持。
- Activity生命周期
- 数据库操作
- 文件系统操作
- ListView显示
- 弹出菜单构造
- 通知栏消息通知
- 搜索栏操作
- 消息存储器操作
- Uri路由
- XML解析
由于自己平时时间紧张,目前的事件接口设计还比较潦草,仅仅满足了自家 Wechat Magician 的功能需要而已,欢迎各位进一步完善和改进事件接口的设计。
接下来准备支持的项目有: MDWechat