# WechatMagician
**Repository Path**: android_ios_test/WechatMagician
## Basic Information
- **Project Name**: WechatMagician
- **Description**: WechatMagician is a Xposed module written in Kotlin, that can prevent Wechat from recalling messages, deleting moments or comments.
- **Primary Language**: Kotlin
- **License**: GPL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-12-02
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# WechatMagician
WechatMagician is a cool Xposed module designed for Chinese social media application Wechat, to help the users get the ultimate control of their messages and moments. This module implemented following features:
1. Prevent friends from recalling messages.
2. Prevent friends from deleting moments or comments.
3. Bypass the limit on number of recipients when retransmit messages.
4. Add a button "Select All" in "Select Contacts" interface.
5. _Planning to implement "share chatting history to moments" and "retweet other's moments" someday._
Currently support the latest WeChat 6.5.14.
## Design
After learning from the failure of the famous WeXposed module, this project wants to do a better job in the following aspects:
* __Stability__: WeXposed crashes for almost every Wechat update. Currently the compatible version for WeXposed is Wechat 6.5.8, which has some attractive features missing.
- This project wraps each feature into a small "unit"; a single unit can crash safely without ruining the whole module.
- This project has [a set of APIs](https://github.com/Gh0u1L5/WechatMagician/blob/master/src/main/kotlin/com/gh0u1l5/wechatmagician/util/PackageUtil.kt) to analyze and match the signatures of critical classes / methods.
- This project picks only [the signatures](https://github.com/Gh0u1L5/WechatMagician/blob/master/src/main/kotlin/com/gh0u1l5/wechatmagician/xposed/WechatPackage.kt) that exist from Wechat 6.5.3 to 6.5.14. Even if a signature is broken in the coming Wechat updates, it can be fixed easily.
- This project hooks the methods close to system components / platform tools. This sacrifices some speed but ensures some stable break points.
* __Simplicity__: WeXposed has many functions that are hardly used by most of the users, but most of the crashes are caused by those functions.
- If those functions are implemented by different modules, and the users can just install the modules as they need, then our lives would be much more easier.
- This project aims to "help the users get the ultimate control of their messages and moments"; more specifically, it wants to help the users to prevent recalling / deleting, retransmit messages, retweet moments, etc.
- However, in the meantime, this project is also __an open-source template for Wechat modules__. With current framework you can easily hook several critical operations in Wechat including UI updates, XML parsing, file I/O and database operations.
- If you have developed something that is unrelated to current purpose of this project, you may still get a standalone branch for your contribution.
* __Open Source__: WeXposed taught us a great lesson that closed-source will only ruin a non-profit project and its developer.
- This project will stay open-source, everyone is more than welcome to submit pull requests. Just don't submit codes for illegal purpose.
- If the Wechat team formally states that a specific feature has been misused for illegal purpose, it will be removed immediately.
## Preview
## Credits
* Thanks @rovo89 for the awesome Xposed framework.
* Thanks @rarnu for the prototype module wechat_no_revoke. Although those codes are not helpful, it's a starting point for me.