TSBattery: an Xposed module that trims background work in Chinese messaging apps
A new way to save your battery avoid cancer apps hacker it.
At a glance
- What is it?
- TSBattery is an AGPL-3.0 Kotlin Xposed module aimed at making QQ, TIM and WeChat less aggressive about background work on Android. The judgement is that it is a narrowly targeted, properly distributed tool with an unusually clear statement of who should not use it, and that the ban risk it warns about is a real cost of the technique rather than a hypothetical.
- Who is it for?
- TSBattery fits an Android user in mainland China who runs QQ, TIM or WeChat on a rooted or Xposed-capable device, is willing to install a hook framework, and has decided the battery saving is worth the risk of a misbehaving hook. It does not fit a user outside mainland China, since the project itself says you should not need it, and it does not fit anyone unwilling to root their device or accept the account ban risk the documentation warns about.
- Can I use it commercially?
- Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
- Is it still maintained?
- Yes. The repository last received commits 3 days ago.
- What is it written in?
- Mainly Kotlin, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.
Editorial analysis
A hook module for three specific apps, and nothing else
TSBattery is an Xposed module written in Kotlin whose stated purpose is to make QQ, TIM and WeChat more power efficient. The repository description puts it plainly: a new way to save your battery and avoid apps that consume power excessively.
The scoping is what makes this project distinct from the general battery-saver category. It is not a system-wide doze manager and it is not a task killer. It hooks into three named applications and changes how they behave in the background. The README has a section titled for non-Chinese users, and its message is blunt: this Xposed module is for use by specific apps for users in mainland China, and you should not need it if you are elsewhere.
That is an unusually honest framing for a project of this kind, and it changes how you should read the rest of the documentation. The tool is not trying to be a general solution. It exists because those three apps have background behaviour patterns that a user on a Chinese Android build finds objectionable, and because the only way to change a closed app's behaviour is to hook into it.
The technical consequence is that this is not an app you install from the Play Store. It requires an Xposed framework, which in turn requires a rooted device or a patched one. The repository is not archived, the last push was on 2026-10-08, and the project is powered by YukiHookAPI, the hooking framework that the README credits at the bottom of the file.
The application source lives under `app/`, and the build is a Gradle Kotlin DSL project with `build.gradle.kts`, `settings.gradle.kts`, `gradle.properties` and the `gradlew` and `gradlew.bat` wrappers, alongside a `gradle/` directory for the wrapper distribution.
The framework choice determines whether it works at all
The compatibility notes are the most practically useful part of the README, and they are specific enough to save a lot of trial and error.
For a device with an unlocked BootLoader running KernelSU or Magisk, the recommendation is LSPosed. For the Taiji platform, support is described as not very good, and LSPatch is the suggestion instead. Some third-party Xposed frameworks are supported, but their stability is not guaranteed. Some third-party rootless frameworks are supported, for example the App Rebirth framework and SandVXposed, but they are not recommended because they may cause an account ban risk.
That last point deserves emphasis. The project is telling you that one supported path carries a risk to your account on the very apps it is meant to help. That is a real constraint and it is stated by the author rather than buried.
There is also a diagnostic step for the case where the module does not appear. If you cannot find the TSBattery icon in the top right of the WeChat settings screen, the documentation tells you to try activating the WeXposed module as well. That is a second module doing a specific job, and it tells you the integration with WeChat is not a simple one-hook install.
The `.idea/` directory at the repository root indicates the project was developed in IntelliJ IDEA, and the `.editorconfig` file, the `gradle.properties` file and the `.secret/` directory at the root are normal parts of the project's root layout alongside the build files.
Four distribution channels, and a warning about the fifth
The distribution section is laid out as a table of channels, and the distinction drawn in that table is the point.
Two channels serve test builds. The GitHub Actions CI workflow produces automatic builds labelled as test versions, and there is a separate Telegram channel, `TSBattery_CI`, that also carries automatic test builds.
Two channels serve stable releases. The GitHub Releases page carries the official stable version, and the Xposed Modules Repo at `Xposed-Modules-Repo/com.fankes.tsbattery` also carries a stable build, which is the route that makes the module installable directly from a manager application.
Below the table the project states that the release addresses for this module are limited to the listed ones, and that versions downloaded from other non-official channels, or any effect they cause you, are none of their business. That is a standard and sensible warning for a module that runs with elevated privileges inside your messaging apps, and it is reinforced by the notice that the software is free and developed out of interest, for study and exchange, and that anyone who paid for it from a non-official channel may have been defrauded and is invited to report it.
The project also has a `CONTRIBUTING.md` at the root, and the badges show a CI build workflow, a releases workflow, a total downloads badge, and a separate LSPosed downloads badge for the Xposed Modules Repo listing. The community channels are a Telegram discussion group, a Telegram CI channel, a QQ group, and a QQ channel.
For an Xposed module, the channel list is not decoration. A module with this kind of access is a good target for repackaging, and the project is explicit that only the four listed channels are legitimate.
AGPL-3.0 obligations, spelled out for the reader
The licensing section does something unusual, which is to summarise the AGPL obligations in plain terms for anyone who might fork it.
The project states that the software is free and interest-driven, for learning and exchange. It then explains what the GNU Affero General Public License version 3.0 requires in four points. Any derivative work must use the same AGPL licence. Distributing the software or a modified version requires providing the complete source code. The original copyright and licence information must be retained. And no additional restrictions may be imposed that would limit other people's free use of the software.
That last clause is unusual to see written out, and it is the one that matters most for a hooking module. It rules out the common pattern of taking an AGPL project, adding terms that stop other people from redistributing or reusing it, and shipping the result as a closed or source-available product. For a module that a developer might want to specialise for their own fork of a messaging client, the AGPL requirement to open the derived source is the price of admission.
The project also asks that the author's attribution be respected when freely distributing and improving the work under the AGPL terms, with a note not to claim authorship falsely.
The copyright statement reproduced in the README is dated 2017 and attributed to Fankes Studio, with the standard licence notice reproduced in the file, and the `LICENSE` file is at the repository root. This is a licensing observation rather than legal advice, and the `LICENSE` file governs.
The notice itself is short:
Copyright (C) 2017 Fankes Studio([email protected])
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.What the release history tells you about the maintenance state
The release list needs a note, because the version numbers are not in a simple order.
The listed releases are 4.25 on 2023-04-16, 4.3 on 2023-07-25 and 4.4 on 2023-10-20. The 4.25 tag predates both 4.3 and 4.4 by release date, so the version scheme has used a two-digit minor at least once and the numbering does not follow the release order.
The more important observation is the gap. The most recent release is from October 2023, while the last push to the repository was on 2026-10-08. The code is being worked on, but the published stable builds are considerably older than the source tree.
That has a concrete reading for a user. GitHub Releases and the Xposed Modules Repo carry a build from 2023, and the CI channels carry automatic test builds built from current source. Which one you want depends on whether you want a known state or the latest changes, and the documentation's own labelling of the CI channels as test versions tells you which risk you are taking.
There is also a `Star History Chart` section at the bottom of the README with a chart badge, and a section pointing at the author's other projects, since a module like this is one of several in the same ecosystem.
Editorial conclusion
TSBattery fits an Android user in mainland China who runs QQ, TIM or WeChat on a rooted or Xposed-capable device, is willing to install a hook framework, and has decided the battery saving is worth the risk of a misbehaving hook. It does not fit a user outside mainland China, since the project itself says you should not need it, and it does not fit anyone unwilling to root their device or accept the account ban risk the documentation warns about. Verify first that your device can run the Xposed framework you choose, since the documentation recommends LSPosed on unlocked-BootLoader devices with KernelSU or Magisk and LSPatch for the Taiji platform, that you install the module from one of the four listed official channels rather than a mirror, and that the module actually shows up in WeChat's settings, which the documentation says requires the WeXposed module to be activated as well.
Frequently asked questions
What does the TSBattery Xposed module actually do?
It is an open source Xposed module whose stated aim is to make QQ, TIM and WeChat more power efficient by changing their background behaviour. The repository description frames it as a way to save battery and avoid apps that consume power excessively.
Do I need a rooted device to use TSBattery?
The module needs an Xposed framework, and the compatibility notes recommend LSPosed on devices with an unlocked BootLoader running KernelSU or Magisk, and LSPatch for the Taiji platform. Some rootless frameworks are supported but not recommended, because of the risk of an account ban.
Where should I download TSBattery from?
From the four listed channels only: GitHub Releases and the Xposed Modules Repo for stable builds, and the GitHub Actions CI workflow and the Telegram CI channel for test builds. The project states it is not responsible for versions obtained from other channels.
Why is there no TSBattery icon in my WeChat settings?
The compatibility notes say that if you cannot find the TSBattery icon in the top right of the WeChat settings, you should try activating the WeXposed module at the same time.
Under what licence is TSBattery released?
AGPL-3.0, with copyright attributed to Fankes Studio since 2017. The README spells out the obligations: derivative works must use the same licence, distributing the software or a modified version requires providing the complete source, copyright and licence information must be retained, and no extra restrictions may be imposed on others' free use.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/fankes-tsbattery)Was this useful?