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.1.1

Stable

10/29/2026, 7:36:48 PM

ClearApp v1.1.1

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

这一版为什么发

番茄和红果都升到了 7.4.3.32,混淆包号整体换代,有 5 条规则失效了。这一版把它们重新接上,
并顺手把两个「一升级就要重新找类名」的地方改成了跨版本更耐用的找法。

修了什么

规则 现象 原因 / 修法
float-pendant-attach 番茄右下角「点击赚钱」挂件又出现了 挂载方法从 s/t 改名成 v。改成按形参表找 (ViewGroup, int, Context),以后改名不用管
fanqie-bookshelf-subtab 书架顶部「收藏」tab 又出现了 重建方法 dh/ch → Ih;注册表类 hb6.i → af6.i(字段仍是 d)
fanqie-mine-coin-card 「我的」页金币卡、「我的钱包」(含微信提现)没被拦 卡片分发器 sd4.c#g(sw3.d) → ye4.c#g(yx3.d);同时把 DOUYIN_WALLET 加进屏蔽列表
float-kmp-continue-attach 「继续看」悬浮球挂不上 挂载方法 番茄 j(Context) → g(Context)、红果 → m(Context)。改成按形参表找 (Context)
float-kmp-continue-showing 红果的显隐开关挂不上 开关方法红果叫 n()(番茄 o())。改成按候选名 o/n 找 —— 都是无参返回 boolean、都在 onDestroy 前一位
float-editor-ball 信息流右下角发帖球(画笔圆钮)还在 球类 dd5.o → sf5.m / uf5.m。改成从 CommunityInfiniteEditorHelper#b() 的返回类型动态取类,类名不用写死
float-pendant-legacy-attach 老式「一键领」挂件(红果右侧竖排) 控制器混淆名换到 7.4.3:番茄 m82.o / 红果 w42.o,方法都是 v。改成候选名 + 形参表查找(LEGACY_PENDANT_CANDIDATES)

另外把 float-growth-tryShowComic7Day* / tryShowFestivalComicGuide* 两条规则移除了:
全 dex 扫描确认 7.4.3 起宿主把「漫画 7 天引导」「节日漫画引导」两个功能整个删了,留着只会永远打跳过日志。

还跳过的(不影响使用)

只剩 4 条探针:bottom-tab-add / bottom-tab-add-hg / bottom-tab-label:*。
混淆类 ig7.* / ve7.* 被整个去掉,日志里会一直显示「跳过」。只影响诊断,
判断有没有拦住看 屏蔽底部 tab:xxx 即可。

实测结果

app 挂载 跳过 界面
番茄 7.4.3.32 15 条 4 条(全是探针) 底部只剩 书城/书架/我的;书架只剩 书架/历史/圈子;「我的」页无金币卡、无钱包、无推荐流;首页无任何悬浮球
红果 7.4.3.32 10 条 4 条(全是探针) 底部只剩 首页/剧场/我的;无悬浮球(含一键领挂件)

包体积:2.47 MB → 0.64 MB

包体积的大头本来是 DexKit 的原生库 —— 同一个 libdexkit.so 按 4 个 ABI 各打一份,加起来 1.44 MB。
这一版做了两步:先只保留 arm64-v8a(降到 1.32 MB),随后把 DexKit 整体移除(降到 0.64 MB)。

移除 DexKit 的原因:它只服务一条从未触发过的兜底规则(老式挂件的挂载点),而那条规则现在改用
「候选名 + 形参表」后反而真正生效了(红果实测命中 w42.o#v)。用 0.67 MB 的纯 Kotlin 包、零原生库、
零 ABI 兼容妥协,换掉一个几乎不工作的扫描器,划算。

适配版本

app 包名 版本
番茄免费小说 com.dragon.read 7.4.3.32(74332)
红果免费短剧 com.phoenix.read 7.4.3.32(74332)
智行火车票 com.yipiao 10.25.8(710258,规则未变)

说明

这一版新增了 ClassResolver.findMethodByParams(按形参表找方法,不看方法名),并把它用在了
挂件和「继续看」球上 —— 这两处的方法名每次升级都在换,按形参找就不用再追了。发帖球则改成从工厂
方法的返回类型取类。剩下的维护成本主要集中在方法名和混淆类名上,升级后照日志里的「跳过」逐条
补即可。

Assets

1

1.1.0

Stable

10/20/2026, 2:13:59 PM

ClearApp v1.1.0

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

这一版做了什么

新增支持:智行火车票 com.yipiao(10.25.8)

智行和番茄/红果不是一个架构:底部 tab、「我的」页是原生 View,首页子 tab 和部分模块是 Compose,
首页内容、抢票、订单、支付又是 CRN(React Native)。所以规则按「原生 / Compose / CRN」分别处理。

这一版能去掉的东西:

位置 处理
底部主 tab 保留 首页 / 抢票 / 订单 / 我的;隐藏中间的「超级星期二」活动位
首页子 tab 只留 火车票 / 机票(去掉 民宿/客栈、酒店)
首页模块 隐藏「智行·低价不怕比」及其以下所有模块,上方的工具模块保留
「我的」页 去掉 我的足迹、周边服务、右下悬浮球、「添加智行福利官」横幅与悬浮球
订单页 去掉 待支付浮球、加微信推广 banner、酒店推广卡
去支付 「我是全能保障专员」弹窗自动点「否」,流程继续
已预约 进入前的 邀好友页不再弹出;「高峰期余票监控」弹窗自动点「暂不开启」
原生广告 TripAdManager 总开关关闭 + banner 不再加载

暂时没做的

  • 抢票页顶部的「候补管家 / 余票监控」:CRN 渲染,纯 View 层隐藏会被 RN 重建覆盖,
    需要从 CRN 数据层处理,这一版先放弃。
  • 订单信息流里其余服务端推广:同样是 CRN 服务端下发,文案可识别的部分已处理。

番茄 / 红果

规则没有变化,行为和 v1.0.2 一致。

适配版本

app 包名 版本
番茄免费小说 com.dragon.read 7.3.9.32(73932)
红果免费短剧 com.phoenix.read 7.3.9.32(73932)
智行火车票 com.yipiao 10.25.8(710258)

智行是这一版新适配的,规则里的类名/方法名按 10.25.8 写。app 升级后部分规则可能失效,
模块会跳过失效的那条并写日志,不会崩溃。

说明

智行的 CRN 页面(首页内容、抢票、订单)是 JS 渲染的,Xposed 改不了视图树。这一版对 CRN 部分
采用「按文案/位置裁剪 View」的方式,属于 UI 层处理:如果宿主重新渲染时把模块设回可见,
可能会再次出现。碰到这种情况把具体位置反馈一下,再针对性处理。

Assets

1

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