ClearApp

一个 LSPosed 模块,用来把 app 里用不到的东西去掉:多余的 tab、悬浮球、页面组件。

不做去广告 —— 只做「界面上这些我不看」。每条规则都挂在宿主自己的开关上,关掉之后对应的视图和 请求根本不会产生,而不是事后去隐藏,所以不会留下空位或半截界面。

源码:https://github.com/wuqiao309/clear-tomato

功能

番茄免费小说 com.dragon.read

位置 处理
底部主 tab 只保留 书城 / 书架 / 我的(去掉短剧、赚钱、分类)
书城顶部子 tab 去掉 看剧 / 视频 / 商城
书架顶部子 tab 去掉 收藏
「我的」页 去掉 金币 / 现金余额 / 微信提现 / 福利 整块,以及底部 推荐流
悬浮球 金币挂件、发帖球、继续看悬浮窗、冷启增长悬浮条 全部去掉

红果免费短剧 com.phoenix.read

位置 处理
底部主 tab 只保留 首页 / 剧场 / 我的(去掉商城、赚钱)
悬浮球 金币挂件(KMP 版 + 老式版)、一键领挂件、主页面悬浮窗、冷启增长悬浮条 全部去掉

「我的」页的金币和提现入口没有动 —— 需求里没要求。

保留的东西

番茄听书的「边听边读」悬浮球没有拦。它是跳回阅读器继续听看的功能入口,不是引流组件。

环境

项 要求
Android 8.0+(API 24+)
Root KernelSU / Magisk,需临时或永久 root
Xposed 框架 Vector 2.2 或 LSPosed,Xposed API 101+(模块按 API 102 构建)

实测环境:红米 K70 至尊版(Android 16)+ KernelSU + Vector 2.2。

适配的 app 版本

规则是照着具体版本的类名和方法名写的,下面这两个版本实测通过:

app 包名 版本
番茄免费小说 com.dragon.read 7.3.7.33(versionCode 73733)
红果免费短剧 com.phoenix.read 7.3.7.32(versionCode 73732)

app 升级后部分规则可能失效。 模块对这些情况是容错的:目标方法找不到就跳过那一条并写日志, 不会崩溃也不会影响别的规则。日志里搜 跳过 就能看出哪条失效了。

安装

  1. 从 Releases 下载 APK 安装
  2. 在 LSPosed 管理器里启用模块,作用域勾选 com.dragon.read 和 com.phoenix.read
  3. 强制停止目标 app 再打开

装完模块后第一次冷启可能仍跑的是旧版本,框架需要一点时间重新读模块。再 force-stop 重启 一次即可,别以为是规则写错了。

排查

模块把自己挂上的每一条规则都写进日志,同时写一份到 logcat:

adb logcat -d | grep "ClearApp/"

关注三类行:

  • 已挂载 <规则> -> <类>#<方法> —— 找到了目标并挂上
  • 跳过 <规则>:目标方法不存在 —— 这条在这个版本里失效了
  • 屏蔽 xxx / 保留 xxx —— 规则实际触发

说明

  • 只作用于设备上已安装的 app,不修改任何 app 的安装包。
  • 规则基于对目标 app 的静态分析得出,app 升级后需要跟着维护。
  • 请自行确认在当地使用 root / Xposed 类工具符合相关规定。

更新日志

  • v1.0.1 —— 适配番茄/红果 7.3.9.32,修复升级后失效的几条规则。详见 Releases。
  • v1.0.0 —— 首个版本,支持番茄免费小说、红果免费短剧。详见 Releases。

Releases

1.0.2

Stable

10/14/2026, 3:23:34 PM

ClearApp v1.0.2

  • 模块包名:io.github.wuqiao309.clearapp
  • 版本:v1.0.2(versionCode 3)

这一版做了什么

番茄多清掉一个悬浮球

番茄 7.3.9.32 里其实也有那个老式「一键领」挂件(和红果右侧那个是同一套 SDK),之前的规则一直没拦到。
这一版补上了。

规则能自己适应 app 升级

番茄/红果的底层组件是混淆的(r32.o 这种),包号每次打包都会变。上次从 7.3.7 升到 7.3.9,
5 条规则就因此失效了,得人工重新映射。

这一版加了结构兜底:先按名字找,找不到时按方法签名再去 dex 里捞一遍 —— 签名里的类型是框架
类型(android.view.ViewGroup、Context),跨版本不变。

实测试出来的效果(把目标名故意写成上一版的旧名字):

按结构找回 (android.view.ViewGroup, int, android.content.Context) -> void -> y32.o#t
已挂载 float-pendant-legacy-attach -> y32.o#t

也就是说以后 app 再升级,一部分规则能自己恢复,不用等新版本。

代价:APK 从 652 KB 变成 2.45 MB(多带了一份 DexKit 的 native 库,四个 ABI)。
这个兜底只在按名字找不到时才跑,平时没有额外开销。

功能

番茄免费小说 com.dragon.read

位置 处理
底部主 tab 只保留 书城 / 书架 / 我的(去掉短剧、赚钱、分类)
书城顶部子 tab 去掉 看剧 / 视频 / 商城
书架顶部子 tab 去掉 收藏
「我的」页 去掉 金币 / 现金余额 / 微信提现 / 福利 整块,以及底部 推荐流
悬浮球 金币挂件、发帖球、继续看悬浮窗、冷启增长悬浮条、一键领挂件(本版新增) 全部去掉

红果免费短剧 com.phoenix.read

位置 处理
底部主 tab 只保留 首页 / 剧场 / 我的(去掉商城、赚钱)
悬浮球 金币挂件(KMP 版 + 老式版)、一键领挂件、主页面悬浮窗、冷启增长悬浮条 全部去掉

保留的东西

番茄听书的「边听边读」悬浮球没有拦 —— 它是跳回阅读器继续听看的功能入口,不是引流组件。
红果「我的」页的金币和提现入口也没动。

适配版本

app 包名 版本
番茄免费小说 com.dragon.read 7.3.9.32(versionCode 73932)
红果免费短剧 com.phoenix.read 7.3.9.32(versionCode 73932)

环境要求

项 要求
Android 8.0+(API 24+)
Root KernelSU / Magisk
Xposed 框架 Vector 2.2 或 LSPosed,Xposed API 101+

实测环境:红米 K70 至尊版(Android 16)+ KernelSU + Vector 2.2。

安装

从本 release 下载 APK 安装,在 LSPosed 管理器里启用模块、勾选 com.dragon.read 和
com.phoenix.read,然后强制停止目标 app 再打开。

装完模块后第一次冷启可能仍跑的是旧版本,框架需要一点时间重新读模块。再 force-stop 重启一次
即可。

排查

模块把自己挂上的每一条规则都写进日志:

adb logcat -d | grep "ClearApp/"

日志里的模块版本(模块加载 v1.0.2(3))能直接看出跑的是哪一版。跳过 xxx:目标方法不存在
说明那条在这个 app 版本上没生效。

Assets

1

1.0.1

Stable

10/13/2026, 7:06:54 PM

ClearApp v1.0.1

适配番茄免费小说 / 红果免费短剧 7.3.9.32。

  • 模块包名:io.github.wuqiao309.clearapp
  • 版本:v1.0.1(versionCode 2)

为什么发这一版

v1.0.0 发布时适配的是 7.3.7.x,之后两个 app 都自动升级到了 7.3.9.32。

番茄/红果的类名分两类:com.dragon.read.* 这些是可读的,而底层组件是混淆的(r32.o、
ma5.o 这种,包号每次打包都会变)。升级后混淆名全变了,靠可读名的规则都还活着,断的是靠混淆名的
那几条。

模块对这些是容错的:目标方法找不到就跳过那一条并写日志,不会崩溃、也不影响别的规则 —— 所以升级
后是「部分失效」而不是「整个坏掉」。这一版就是把断掉的几条按新版本重新映射。

本次修复

位置 v1.0.0 时的问题
红果 · 首页右侧「一键领」悬浮球 又出现了
番茄 · 书架顶部「收藏」子 tab 又出现了
番茄 · 我的页金币/微信提现卡片 又出现了
番茄 · 我的页推荐流 又出现了
番茄 · 信息流右下角发帖球 又出现了

适配版本

app 包名 版本
番茄免费小说 com.dragon.read 7.3.9.32(versionCode 73932)
红果免费短剧 com.phoenix.read 7.3.9.32(versionCode 73932)

功能与 v1.0.0 一致,没有增删:

番茄免费小说

  • 底部主 tab 只保留 书城 / 书架 / 我的(去掉短剧、赚钱、分类)
  • 书城顶部子 tab 去掉 看剧 / 视频 / 商城
  • 书架顶部子 tab 去掉 收藏
  • 「我的」页去掉 金币 / 现金余额 / 微信提现 / 福利 整块,以及底部 推荐流
  • 悬浮球全部去掉:金币挂件、发帖球、继续看悬浮窗、冷启增长悬浮条

红果免费短剧

  • 底部主 tab 只保留 首页 / 剧场 / 我的(去掉商城、赚钱)
  • 悬浮球全部去掉:金币挂件(KMP 版 + 老式版)、一键领挂件、主页面悬浮窗、冷启增长悬浮条

保留:番茄听书的「边听边读」悬浮球没有拦 —— 它是跳回阅读器继续听看的功能入口,不是引流组件。
红果「我的」页的金币和提现入口也没动。

环境要求

项 要求
Android 8.0+(API 24+)
Root KernelSU / Magisk
Xposed 框架 Vector 2.2 或 LSPosed,Xposed API 101+

实测环境:红米 K70 至尊版(Android 16)+ KernelSU + Vector 2.2。

安装

从本 release 下载 APK 安装,在 LSPosed 管理器里启用模块、勾选 com.dragon.read 和
com.phoenix.read,然后强制停止目标 app 再打开。

装完模块后第一次冷启可能仍跑的是旧版本,框架需要一点时间重新读模块。再 force-stop 重启一次
即可。

升级说明

app 升级后部分规则可能失效。失效是容错的,日志里搜 跳过 就能看出哪条断了:

adb logcat -d | grep "ClearApp/"

Assets

1

1.0.0

Stable

9/23/2026, 4:11:44 PM

ClearApp v1.0.0

首个公开版本。

一个 LSPosed 模块,用来把 app 里用不到的东西去掉:多余的 tab、悬浮球、页面组件。不做去广告 ——
只做「界面上这些我不看」。

  • 模块包名:io.github.wuqiao309.clearapp
  • 版本:v1.0.0(versionCode 1)

支持范围

app 包名 适配版本
番茄免费小说 com.dragon.read 7.3.7.33(versionCode 73733)
红果免费短剧 com.phoenix.read 7.3.7.32(versionCode 73732)

功能

番茄免费小说

  • 底部主 tab 只保留 书城 / 书架 / 我的(去掉短剧、赚钱、分类)
  • 书城顶部子 tab 去掉 看剧 / 视频 / 商城
  • 书架顶部子 tab 去掉 收藏
  • 「我的」页去掉 金币 / 现金余额 / 微信提现 / 福利 整块,以及底部 推荐流
  • 悬浮球全部去掉:金币挂件、发帖球、继续看悬浮窗、冷启增长悬浮条

红果免费短剧

  • 底部主 tab 只保留 首页 / 剧场 / 我的(去掉商城、赚钱)
  • 悬浮球全部去掉:金币挂件(KMP 版 + 老式版)、一键领挂件、主页面悬浮窗、冷启增长悬浮条

保留:番茄听书的「边听边读」悬浮球没有拦 —— 它是跳回阅读器继续听看的功能入口,不是引流组件。
红果「我的」页的金币和提现入口也没动。

环境要求

项 要求
Android 8.0+(API 24+)
Root KernelSU / Magisk
Xposed 框架 Vector 2.2 或 LSPosed,Xposed API 101+

实测环境:红米 K70 至尊版(Android 16)+ KernelSU + Vector 2.2。

安装

  1. 安装本 release 里的 APK
  2. 在 Vector / LSPosed 管理器里启用模块,作用域勾选 com.dragon.read 和 com.phoenix.read
    (模块已声明 staticScope,作用域固定在这两个包上)
  3. 强制停止目标 app 再打开

装完模块后第一次冷启可能仍跑的是旧版本,框架需要一点时间重新读模块。再 force-stop 重启一次
即可。

说明

  • 规则是照着具体版本的类名和方法名写的。app 升级后部分规则可能失效。

  • 失效是容错的:目标方法找不到就跳过那一条并写日志,不会崩溃也不会影响别的规则。日志里搜
    跳过 就能看出哪条失效:

    adb logcat -d | grep "ClearApp/"
  • 只作用于设备上已安装的 app,不修改任何 app 的安装包。

构建

JDK 21 + Android SDK(platform-35 / build-tools 35.0.0),Gradle wrapper 自带。

export JAVA_HOME="C:\Program Files\Java\jdk-21"
./gradlew.bat assembleRelease

签名密钥不进仓库;未配置时 release 包使用 debug 签名(能装能用,但换签名后覆盖安装需要先卸载)。

Assets

1