FanqieHook

面向番茄小说与红果免费短剧 Android 客户端的 LSPosed 去广告模块。

功能

  • 拦截阅读器广告:底部 banner、视频广告、翻页信息流、文字链接、章节断开处广告
  • 拦截番茄开屏 / 全屏广告
  • 拦截首页与阅读器 TopView 广告
  • 拦截听书信息流 / 贴片广告
  • 拦截短剧暂停、短剧 banner、横屏插入广告
  • 拦截评论列表、故事插页、创作者广告、短视频进度条插入广告
  • 零广告:广告位过滤一律返回「无广告」,被动广告位与用户主动的激励/金币位一并拦掉, 宿主以后新增的位置同样自动拦

代价:用户主动点的「看视频得金币 / 看广告免广告 / 看视频催更 / 听书激励 / 看视频解锁 章节」等入口会失效,因为那里已无广告可播。发奖由服务端校验,本地拦广告不会让金币或 权益白得;「激励视频秒领」同样不在支持范围内。

兼容范围

项目 内容
已验证应用 番茄小说 com.dragon.read v7.3.9.32(73932)、v7.3.9.67(73967)、v7.3.9.17(73917)、v7.3.7.32(73732)、v7.3.7.18(73718)、v7.3.5.32(73532);红果免费短剧 com.phoenix.read v7.3.7.32(73732)、v7.3.5.32(73532)
其他版本 可以直接用,番茄升级后模块照常工作,不需要等新版本适配
Android 8.0(API 26)及以上
LSPosed Modern API 101+(102 已适配)
作用域 com.dragon.read、com.phoenix.read
体积 0.47 MB
模块包名 dev.operit.fanqiehook

安装与使用

  1. 安装 LSPosed 框架
  2. 安装 Release 里的 app-release.apk(或直接在 LSPosed 模块中心安装/更新)
  3. 在 LSPosed 中启用模块,勾选作用域 com.dragon.read 与 com.phoenix.read
  4. 强制停止番茄小说 / 红果免费短剧后重新打开

免责声明

仅供学习研究,绕过广告可能违反番茄小说 / 红果《用户协议》。 安装使用前请自行评估风险,尤其是账号风险。

Releases

9/30/2026, 3:51:19 PM

更新内容:
v0.8.6 - 适配番茄小说 7.3.9.32(versionCode 73932)

  • 把 73932 加入支持列表。逐条复核后的结论是这个版本不需要改任何拦截逻辑:25 个番茄侧
    目标(类 + 方法 + 参数 + 返回类型)全部命中,46 个广告位名在宿主字符串池里零缺失,
    广告位总表的 45 个位置常量与 73967 完全一致;搜索页三个 AI 入口、短剧广告总开关与横屏
    插入开关的字段反查落点也没变,DexKit 两个接口实现类仍是 eg3.a / mb3.f
  • 登记后 73932 启动不再打 unverified host version 警告,拦截行为与 0.8.5 相同
  • 顺带核对了 32 条目标在 73967 → 73932 的调动情况:每条目标的调用点数逐条相同,
    没有变成死代码的开关(ad 命名空间也没有新增或删除的类)
  • 真机实测(本机 73932):hooks installed=32 skipped=1 known-missing=[hongguo-banner-join-revert]、
    lost=[](唯一跳过的是红果专属类,番茄侧本来就没有);状态文件里实测拦到
    reader_banner / video_reader_ad / creator_ad / splash_ad 以及开屏闸门 canShowScreenAd
  • 红果免费短剧 7.3.9.32(73932)一并登记:26 条目标(含红果专属 banner 服务)逐条命中、
    46 个广告位名零缺失、广告位总表与 73732 完全一致;DexKit 落点跟着改名自动跟上
    (广告配置 yb3.a → tc3.a、全屏广告 g73.f → a83.f),零死 hook
  • 红果真机实测(本机 73932):hooks installed=30 skipped=3,跳过的 3 条是搜索页 AI 净化
    (红果没有对应界面,属预期缺失),lost=[];实测拦到 creator_ad 与开屏闸门
  • 红果这次版本更新新增了一批激励广告类(IDrawRewardAdService 等 23 个新类),
    零广告模式下广告位过滤一律返回「无广告」,新位置不用登记也自动拦

Built from 11f9b98f2fe646dd69423694759327adffdb4d36

Assets

1

9/20/2026, 1:03:03 PM

更新内容:
v0.8.5 - 适配番茄小说 7.3.9.67(versionCode 73967)

  • 界面净化(新增):隐藏搜索页的两个 AI 入口——banner 内入口、搜索框内入口,以及
    搜索页 AI 悬浮球。目标方法名是混淆名(73967 上为 FanqieSearchActivity#Y1/Z1/q1),
    但各自唯一读取一个稳定的 ssconfig 模板字段(entryInBanner / entryInSearchBox /
    showFloatButton),因此复用已有的字段反查定位,宿主以后换字母可自动跟上。
    纯 UI 显示判断,不触碰权益、会员、内容数据
  • 把 73967 加入审计集(SUPPORTED_VERSION_CODES),该版本启动时的
    unverified host version WARN 变为 INFO。纯日志级别调整,不影响任何 hook。
    73967 的核验依据写在 FanqieModule 的审计注释里:静态复核(两个 ExperimentUtil
    getter 仍按字段唯一命中、37 个位置名零缺失、实现类仍为 eg3.a / mb3.f)
    加上真机实测(installed=29 skipped=1、lost=[],且记录到 73732 → 73967
    原地升级时字段反查自动由 q0 跟到 s0)
  • 未纳入的净化项(各自缺干净目标或风险过高):角标红点(MineRedDotManager 只被自身与
    hf4.e#run() 引用,无可翻转的布尔门控)、搜索词轮播(Compose View,方法多为 void)、
    小说推荐位(主内容瀑布流,误 hook 会破坏首页)、会员特权卡(位于权益数据层,
    只找 UI 层显示门控,不碰权益 getter)

Built from 9341c6281e202b8afee2766b50aae0c7e79bbc09

Assets

1

9/20/2026, 12:46:57 PM

更新内容:
v0.8.4 - 适配番茄小说 7.3.9.67(versionCode 73967)

  • 零广告:广告位过滤改为一律拦截。checkAdAvailable 对所有位置都返回「无广告」,
    被动广告位、用户主动的激励/金币位、以及宿主以后新增的未知位置全部一并拦掉,
    不再需要维护拦截名单
  • 代价(重要):用户主动点的「看视频得金币 / 看广告免广告 / 看视频催更 / 听书激励 /
    看视频解锁章节」等入口会失效——那里已经无广告可播。发奖仍由服务端校验,
    本地拦广告不会让金币或权益白得;少数「看广告解锁内容」型的位,其表现取决于宿主是
    等广告回调还是乐观放行
  • 73967 静态复核:现有 37 个位置名在该宿主里全部存在、零缺失;AB 表 40 个位置已全覆盖
  • 73967 实测:install summary hooks installed=29 skipped=1、lost=[];
    并记录到一次真实升级(73732 → 73967)中横屏插入广告开关自动由 q0 跟到 s0
  • 拦截日志按来源分类输出 kind=passive / reward / unnamed,便于回看拦到了什么

Built from b70c0c0475a9b49c46440273ab7e7891cd1eceb0

Assets

1

9/19/2026, 6:25:24 PM

更新内容:
v0.8.3 - 适配番茄小说 7.3.9.17(versionCode 73917)

  • 解决混淆名跨版本漂移:原本按 ExperimentUtil#q0() 硬编码的「横屏插入广告」开关,
    在 73917 上被改名 s0()Z(原 q0 改成返回 long 成了另一个配置),硬编码路径下会静默
    失效。改为按它读取的稳定字段 landscapeInsertAdEnable 反查 getter(ClassResolver 用
    DexKit 按「无参 boolean 方法 + 读该字段」查表);enableMultiSeriesFlowAd(系列信息流
    总开关)也换成同样的字段反查。字段名是业务名、跨版本不变,以后宿主再改混淆字母不用重新适配
  • 修复状态文件丢诊断的 bug:之前超过上限会把整个文件清成一行 ... truncated ...,把当次
    启动的「unverified host version」WARN 和每个 hook 的跳过原因都冲掉——恰好是宿主升级后
    定位问题最需要的那几行。改为保留最近 192 KB(按行边界对齐)
  • 73917 上 DexKit 自动跟进:广告实现类 lf3.a → eg3.a,全屏广告 mb3.f
  • 真机实测 73917:install summary hooks installed=29 skipped=1,lost=[](唯一 skip 是
    红果专有类,本机未装红果)

Built from 163b892146ea686d5daa35d16062bb1fa74b8463

Assets

1

9/12/2026, 5:38:05 PM

更新内容:
v0.8.2 - 适配番茄小说 7.3.7.32(versionCode 73732)、红果免费短剧 7.3.7.32(73732)

  • 补拦红果推荐流里的广告位 recommend_video(真机实测该位置会走到广告可用性检查但此前
    未分类,属于漏拦)
  • 把金币 / 奖励类广告位一次性登记齐全(gold_coin_reward_*、video_gold_coin_reward_*、
    listen_coin、video_coin_ad 等),这些是"看广告换金币"的用户主动流程,按设计保留,
    登记后不会再被当成"待分类"反复上报

Built from 985aab3c7ecabd2cb6f865ed36cdf98a5ad4354f

Assets

1

9/12/2026, 5:27:41 PM

更新内容:
v0.8.1 - 适配番茄小说 7.3.7.32(versionCode 73732)、7.3.7.18(73718)

  • 番茄更新后不再需要重新适配:以前版本号不在支持列表里就一条 hook 都不装,番茄一升级
    模块就变成"装了但完全没效果",必须等适配。现在改成逐条安装:某条规则的目标没了,只跳过
    那一条并在日志里记下来,其余照常生效——升级最多是少几条效果,不会整体失效
  • 新增支持 7.3.7.18(73718):此前这个版本会被版本校验直接拒绝,模块加载后一个 hook 也不装,
    表现就是"装了但完全没效果"
  • 新增两种排查渠道:logcat(adb logcat -s FanqieHook)与宿主 cache 目录下的
    fanqiehook.log 状态文件。部分 LSPosed 版本不写模块日志、部分设备还关闭了 logcat,
    有状态文件时仍能确认模块是否生效:
    adb shell su -c 'cat /data/data/com.dragon.read/cache/fanqiehook.log'
  • 安装结果会汇总成一行 install summary: hooks installed=N skipped=M,没装上的会列出名字,
    反馈问题时带上这一行就能定位
  • 模块名从「番茄 红果 版本7.3.7.32去广告」改为「番茄 红果 去广告」,不再把版本号写进名字

Built from ad57667fb906854d6c83d9a929ccb8dbdf1546fb

Assets

1

9/12/2026, 7:37:01 AM

更新内容:
v0.8.0 - 适配番茄小说 7.3.7.32(versionCode 73732)

  • 红果免费短剧 7.3.7.32(73732)同基线适配
  • 激励视频:不提供「秒领」——番茄的发奖由服务端校验,客户端做不到;看满时长正常发奖

Built from 4871526780486ff2479aab236d9d6954024715d9

Assets

1

9/12/2026, 6:57:11 AM

更新内容:
v0.7.1 - 适配番茄小说 7.3.7.32(versionCode 73732)

  • 移除实验性的「激励秒领」:真机实测无效(金币不增加),激励视频恢复为正常观看
  • 修复广告关闭回调传空参数会抛异常的问题

Built from 6861ab2ef612163d9e3a5123bfc31942d661ef90

Assets

1

9/12/2026, 6:50:15 AM

更新内容:
v0.7.0 - 适配番茄小说 7.3.7.32(versionCode 73732)

  • 尝试新增「激励秒领」(默认开启);该功能经真机实测无效,已在 0.7.1 撤回

Built from 4f2682b0c195b2e299a90caddce9dc543a602282

Assets

1

9/12/2026, 6:42:25 AM

更新内容:
v0.6.3 - 适配番茄小说 7.3.7.32(versionCode 73732)

  • 体积优化:安装包由 1.84 MB 降到 0.47 MB
  • 清理定位问题用的临时探针

Built from 694a15781daf389aef8b730b0cd985681757ad5f

Assets

1

9/12/2026, 6:34:18 AM

更新内容:
v0.6.2 - 适配番茄小说 7.3.7.32(versionCode 73732)

  • 修复番茄开屏 / 全屏广告拦截(此前版本在番茄上一直拦不住,只有红果生效)

Built from 81d05a6ed61503d6ae072154b579e8187e8f8857

Assets

1

9/11/2026, 2:32:00 PM

更新内容:
v0.6.1 - 适配番茄小说 7.3.7.32(versionCode 73732)

  • 修正开屏广告的链路判断;该版未彻底解决,0.6.2 已完整修复

Built from 5a9324e7f27dba2e12aae59f818987eb448aa5b7

Assets

1

9/11/2026, 1:23:55 PM

更新内容:
v0.6.0 - 适配番茄小说 / 红果免费短剧 7.3.7.32(versionCode 73732)

  • 扩充广告位拦截名单:新增评论列表、短剧评论、故事插页、创作者广告、短视频进度条、
    横屏短剧插入与暂停、短剧信息流与 banner、听书信息流与贴片等广告位
  • 显式保留用户主动的激励视频与金币入口
  • 新增「未分类广告位」日志:遇到尚未拦截的广告位会记一条,便于后续适配

Built from 68cbb647a510a887a8f806c8526683a21524bd0d

Assets

1

8/30/2026, 8:57:18 AM

更新内容:
v0.4.0 - 适配番茄小说 7.3.5.32(versionCode 73532)

  • 全量复核 24 个拦截目标类与方法签名,与 73532 逐一比对全部命中
  • 唯一缺失的红果专属类在番茄侧预期跳过,不影响功能

Built from 622a53a8a3e340bbb6d3b89f46c3a465cc69f70f

Assets

1

8/25/2026, 4:25:02 PM

更新内容:
v0.3.0 - 适配红果免费短剧 + 开屏广告拦截

  • 新增红果短剧广告拦截(banner、贴片、横屏插入)与热启动开屏广告阻断
  • 作用域覆盖 com.dragon.read 与 com.phoenix.read
  • 番茄侧与红果侧 hook 全部安装成功,红果开屏与短剧 banner / 贴片广告消失

Built from 56541c5986d89f50627f981528286f6ab09fb0a8

Assets

1

8/23/2026, 1:52:57 PM

番茄小说去广告模块 — 听书广告拦截 + DexKit 深度防线

  • 目标应用:com.dragon.read v7.3.3.32(versionCode 73332)
  • 框架:LSPosed IT v2.1.1+(KernelSU / ZygiskSU)
  • 作者:afwfv

新增

  • 听书广告拦截:hook NsAdImpl.enableRequestAudioInfoFlowAd() / enableRequestAudioPatchAd()(v73332 smali 5248-5302),dex xref 验证 BsAudioAdService 仅由 NsAdImpl 调用,无绕过路径

修复

  • DexKit native 库加载:DexKit 2.0.4 自身从不调用 System.loadLibrary,LSPosed 注入进程中 libdexkit.so 无人加载导致 UnsatisfiedLinkError。现在 ClassResolver 在首次 DexKitBridge.create() 前显式加载(System.loadLibrary → 模块 APK 提取双策略)
  • 恢复 h83.a#checkAdAvailable 深度防线 hook(此前因 DexKit 加载失败静默缺失)

拦截的广告位

reader_banner(阅读器底部 banner)、video_reader_ad(阅读器视频广告)、splash_ad(开屏)、page_front_ad / page_middle_ad / page_end_ad(阅读页头/中/尾)、reader_text_link_ad(阅读器文字链接)、reader_disconnected_ad(章节断开处)、reader_ad_for_sati(激励位)、topview_main / topview_reader(首页/阅读器 TopView)、series_pause_ad(短剧暂停广告)、听书信息流/贴片广告(本版新增)。

用户主动点击的激励视频 / 金币 / 看广告免广告按钮不会被屏蔽。

安装

  1. 装 LSPosed(KernelSU / ZygiskSU + LSPosed IT)
  2. adb install -r FanqieHook-v0.2.0-release.apk
  3. LSPosed Manager → 模块 → 勾选 FanqieHook → 作用域选 com.dragon.read
  4. 强制停止番茄,重新打开

验证

adb logcat -s LSPosedLogDaemon:V | grep FanqieHook

应看到 17 行 hook installed:(含 audio-info-flow-ad / audio-patch-ad / position-filter:h83.a)

实测环境

POCO dada / HyperOS 2 / Android 16 + LSPosed IT v2.1.1,17/17 hook 安装成功;听书贴片广告、翻页信息流广告实机确认消失。

Assets

1

8/22/2026, 5:23:46 AM

番茄小说去广告模块 — 首个正式版

  • 目标应用:com.dragon.read v7.3.3.32(versionCode 73332)
  • 框架:LSPosed IT v2.1.1+(KernelSU / ZygiskSU)
  • 作者:afwfv

拦截的广告位

reader_banner(阅读器底部 banner)、video_reader_ad(阅读器视频广告)、splash_ad(开屏)、page_front_ad / page_middle_ad / page_end_ad(阅读页头/中/尾)、reader_text_link_ad(阅读器文字链接)、reader_disconnected_ad(章节断开处)、reader_ad_for_sati(激励位)、topview_main / topview_reader(首页/阅读器 TopView)、series_pause_ad(短剧暂停广告)。

用户主动点击的激励视频 / 金币 / 看广告免广告按钮不会被屏蔽。

安装

  1. 装 LSPosed(KernelSU / ZygiskSU + LSPosed IT)
  2. adb install -r FanqieHook-v0.1.0-release.apk
  3. LSPosed Manager → 模块 → 勾选 FanqieHook → 作用域选 com.dragon.read
  4. 强制停止番茄,重新打开

验证

adb logcat -s LSPosedLogDaemon:V | grep FanqieHook

应看到 14 行 hook installed: + 实际使用时 blocked ad position=…

实测环境

POCO dada / HyperOS 2 / Android 16 + LSPosed IT v2.1.1 (7842),14/14 hook 安装成功。

Assets

1