Flare Cleaner v1.0.7 保活恢复、通知召回与产品族群逆向报告
Flare Cleaner v1.0.7 保活恢复、通知召回与产品族群逆向报告返回竞品库
报告口径本页直接渲染本地报告真源;静态能力、动态观察、推断和线上未验证项不得互相替代。

Flare Cleaner v1.0.7 保活恢复、通知召回与产品族群逆向报告#

包名:com.flare.cleaner.storage
样本:Google Play 当前安装包,versionName 1.0.7versionCode 8
测试设备:Pixel 6a,Android 16 / API 36
报告日期:2026-08-31
本报告只分析保活与恢复、通知召回、产品族群;不展开用户可直接看到的清理功能页面。

1. 一页结论#

  1. [静态 + 动态确认] 它有前台服务恢复链,但不是“所有 Job/Alarm 都在拉 FGS”,更不是永久保活。 主服务 llLI.ILI1LspecialUse 前台服务,返回 START_STICKY;前台初始化、服务销毁/任务移除和高优先级 FCM 会直接请求主 FGS,启动异常时再由约 3.8–5.8 秒持久化 Job 兜底。约 23 分钟 Job、20 分钟 WorkManager 和约 8 小时 Alarm 当前静态调用点主要续订 FCM topic 并进入通知引擎,未见它们直接调用主 FGS 启动入口。
  2. [动态确认] 划掉最近任务后,Flare 的任务卡消失,但原进程和原前台服务持续存在。 PID、ServiceRecord 和创建时间均未重置。这证明“划卡没杀掉它”,不是“被杀后成功拉活”。
  3. [静态 + 动态确认] 单独停止前台服务后,它会在同一进程内快速重建。 这是服务级自恢复;不能外推为进程死亡后的可靠冷启动。
  4. [动态确认] Force Stop 是硬边界。 强停后至少 17 秒内无进程、无服务,包为 stopped=true;只有人工重新打开后才恢复。
  5. [动态确认] 本次真实重启没有观察到前台服务自动恢复。 BOOT_COMPLETED 的 20 秒临时白名单痕迹存在,持久化 Job 也跨重启保留,但设备已解锁后仍没有 Flare 进程/前台服务;人工打开后才重建。因此不能写“开机即可恢复前台服务”。
  6. [静态 + 动态确认] 高优先级 FCM 同时承担拉起机会和用户召回。 客户端判断 google.delivered_priority=high 后先请求启动前台服务,再刷新通知;测试机曾记录 PUSH_MESSAGING 原因的约 20 秒临时白名单。
  7. [静态确认] 本地通知召回不是单一“每天一次”。 它覆盖解锁/Home/最近任务、退后台、包安装卸载、电池、网络、截图、Alarm、开机/升级和 FCM 等入口,并叠加全局开关、首次使用延迟、前后台/锁屏判断、场景冷却和日上限。
  8. [动态确认] 常驻通知与召回通知是两套东西。 常驻 FGS 通知 ID 为 66666、重要性 3;召回通知使用 30001…30011 场景 ID 和高重要性渠道。本次曾实际观察到 ID 30010 的 H2 召回通知。
  9. [静态确认] APK 内置远端配置入口。 本地 assets/conf.json 是默认兜底,代码还包含 https://fese.freshenupapp.com/enConf。因此默认值不等于服务端当前线上最终值。
  10. [当前库与测试机比对] 暂无证据把 Flare 归入现有竞品库中的已知产品族。 它与本地 7 个已拆 base APK、测试机另外 3 款清理 App 均不同签名;核心配置和代码指纹也未在当前库命中。现阶段只能建立 Flare 自身的技术指纹,不能硬判同厂兄弟包。

2. 样本身份与证据边界#

2.1 样本身份#

项目
应用名 Flare Cleaner
applicationId com.flare.cleaner.storage
版本 1.0.7(versionCode 8
minSdk / targetSdk 24 / 36
base APK 大小 25,187,496 bytes
base APK SHA-256 0df834399bf1a4e706c2ec611dc1f7775afdfcb81a6dabdeb290aba7935ea1d6
签名 DN C=123, ST=SAdeveloper, L=SouthAfica, O=SAdeveloper, OU=SAdeveloper, CN=SAdeveloper
签名 SHA-256 7822cc9c207363d79965e8185d75b50f725f0139efcfbbeaa5fd215bed7c31ef
签名 SHA-1 5c27da3686f80463d908da4659daa97fbbd6ea61
Google Play Source Stamp SHA-256 3257d599a49d2c961a471ca9843f59d341a405884583fc087df4237b733bbd6d
安装来源 测试机 Google Play 安装的 split APK,已拉取 base + 4 个 split

本次使用四种证据口径:

  • 静态确认:Manifest、DEX、resources 或 assets 中直接可见。
  • 动态确认:本次测试机实际操作以及 dumpsys、PID、Service、Job、Alarm、Notification 结果。
  • 合理推断:多条事实共同支持,但没有服务端或跨设备验证。
  • 待验证:当前 APK、设备或观察窗口不能确认。

2.2 关键边界#

  • APK 中存在组件,不等于它在所有设备、所有时刻都能执行。
  • Job/Alarm 的请求时间不是系统承诺的准点执行时间。
  • FCM 客户端路径不能证明服务端人群、发送计划、TTL、实际优先级和线上到达率。
  • 15 秒 Doze 短测只能证明已有前台服务短时未中断,不能证明长期待机或死亡后的恢复率。
  • 本次没有撤销通知权限;通知权限关闭后的完整链路仍需单独验收。
  • JADX 1.5.5 已生成源码与资源目录;11,766 个处理项中有 92 个反编译错误。关键的 FCM 高优先级分支因 Java 控制流还原不完整,已另用 DEX 指令反汇编复核;不把全部 JADX 输出当成无误原码。

3. 保活与恢复结构#

3.1 结构图#

【直接 FGS 恢复链】
前台初始化 / 高优先级 FCM
服务 onTaskRemoved / onDestroy
                 │
                 ▼
          统一启动入口 S7.d.h()
                 │
        ┌────────┴────────┐
        │启动成功          │启动异常
        ▼                  ▼
llLI.ILI1L 前台服务    ldlI7Sl.ILI1L 兜底 Job
START_STICKY            3.816–5.816 秒调度窗
(服务回调会重新进入上方统一启动入口)

【独立后台/通知维护链】
约 23 分钟持久化 Job / 20 分钟 WorkManager / 约 8 小时 Alarm
Boot / App 更新 / 解锁、Home、最近任务等系统事件
                 │
                 ▼
       topic 续订 + 通知引擎/召回场景
       (当前调用点未见直接 S7.d.h)

3.2 组件与职责#

组件 静态行为 作用判断 证据
llLI.ILI1L specialUse FGS,subtype=quick entryonStartCommand() 返回 START_STICKYonTaskRemoved/onDestroy 再调统一启动入口 主要常驻载体 静态 + 真机运行
ldlI7Sl.ILI1L 持久化 Job;无网络/充电/空闲要求;最小延迟 3,816ms,deadline 5,816ms;进入前台并尝试恢复主服务 服务启动异常时的短延迟兜底 静态
IiIl.ILI1L 持久化高优先级 Job;最小延迟 1,376,000ms,deadline 1,379,816ms;运行时续排自己、订阅 FCM topic 并进入通知引擎 约 22分56秒–23分钟的后台维护机会;未见直接拉 FGS 静态 + Job 真机
iLII1ll.ILI1L 一次性 ELAPSED_WAKEUP Alarm;约 28,796,966ms 后触发,接收后续排、订阅 topic 并进入通知引擎 约 8 小时一次的后台唤醒/召回机会;未见直接拉 FGS 静态 + Alarm 真机
iILl.ILI1L 接收 BOOT_COMPLETEDMY_PACKAGE_REPLACED,进入通知引擎 开机/升级后的召回机会;当前方法未直接调 S7.d.h 静态;本次只确认广播白名单与 Job 恢复,未确认 FGS 自动恢复
I1iLL.ILI1L FirebaseMessagingService;高优先级消息先调统一启动入口 Push 到达时提供拉起机会 静态 + 测试机历史 allowlist
S7.c 动态接收器 处理 USER_PRESENTCLOSE_SYSTEM_DIALOGS(Home/最近任务)、DATE_CHANGED 借系统事件刷新后台/召回链 静态
WorkManager 初始化时排约 20 分钟周期 Worker,工作内容是订阅 topic 并进入通知引擎 另一条周期后台/召回维护通道 静态 + Manifest + 真机;未见 Worker 直接拉 FGS

3.3 关键参数#

参数 当前 APK / 真机值 应如何理解
FGS 通知 ID 66666 常驻服务通知,不是营销召回通知
FGS 返回值 START_STICKY 进程被系统回收后可请求重建,但系统不保证立即或一定重建
兜底 Job 3.816–5.816 秒 仅在兜底路径;仍受后台 FGS 启动限制
周期 Job 22分56秒–约23分钟 调度窗口;Doze/Standby 可延后
WorkManager 约 20 分钟周期 通知/topic 维护 Worker;不是已证明的 FGS 恢复器
Alarm 约 8 小时一次 使用 AlarmManager.set,不是 exact;本机显示系统可批处理到约 1 小时窗口
FCM topic lADDL 客户端订阅主题;不代表服务端当前一定向该主题发送
topic 失败重试 30 秒指数退避,最大 24 小时 只说明客户端订阅重试

3.4 真实限制#

  • FOREGROUND_SERVICE_SPECIAL_USE 只是技术声明,不自动等于 Google Play 合规。
  • 主 FGS、两个 JobService 和自定义 FCM Service 均声明了 exported=true;其中主 FGS 未见组件级权限保护,存在不必要的外部调用面。
  • Android 16 对后台启动 FGS 有严格限制;注册更多入口不等于每条入口都能恢复 FGS。
  • Force Stop 会把包置为 stopped,常规广播、Job、Alarm 和 Service 链无法自行突破。

4. 真机动态验证#

测试 观察结果 能证明 不能证明
正常运行 llLI.ILI1LspecialUse FGS,通知 ID 66666startCommandResult=1 主服务真实运行且为 START_STICKY 永久不会被杀
划掉最近任务 最近任务卡消失;1 秒和 13 秒后 PID 均为 20297,同一 ServiceRecord 仍前台运行,创建时间连续增长 划卡未终止原进程/服务 被杀后发生了拉活
am stopservice 服务约 1 秒内在同一 PID 中重新创建,13 秒后仍在 onDestroy → 统一启动入口 的服务级恢复有效 冷进程恢复可靠
深度 Doze 15 秒 设备为 IDLE;PID 和 FGS 未变;周期 Job 显示 WAIT:DEV_NOT_DOZING;退出后恢复 ACTIVE 已有 FGS 短时存活;Job 受 Doze 约束 Job 在 Doze 中准点运行;长期待机不死
Force Stop 2 秒、17 秒时均无 PID/服务,包 stopped=true;人工打开后才产生新 PID 24007 Force Stop 是硬边界 FCM 在 Force Stop 下的实际服务端到达行为
真机重启 BOOT_COMPLETED allowlist 痕迹存在;持久化 Job 3672 恢复并等待约 21 分钟;设备已解锁后仍无 Flare PID/FGS 广播机会与 Job 能跨重启保留 开机可自动恢复前台服务
重启后人工打开 新 PID 13735,约 5 秒内 FGS 重建;重新出现约 8 小时 Alarm 和周期 Job 前台启动链正常 这是自动开机恢复
历史真实 FCM 自定义 FCM Service 出现,系统理由为 PUSH_MESSAGING,临时 allowlist 约 20 秒 至少一条 Push 真到达并获得短时后台执行机会 长期到达率、服务端发送策略

5. 通知召回系统#

5.1 两套通知必须分开#

类型 ID / 渠道 行为 用户目的
前台服务常驻通知 ID 66666;渠道 Flare CleanerrZiKZ;importance 3 Ongoing、No Clear、Foreground Service,自定义 RemoteViews 维持 FGS 合规可见性和常驻状态
业务召回通知 ID 30001…30011;高重要性动态渠道 Flare CleanermIZEp 自定义 RemoteViews、场景文案、点击跳清理/电池/流量等页 让用户回到 App

本机重启后的一次统计窗口内,Flare 通知 78 次入队、其中 77 次为更新、仅 1 次新发布;当前只剩 ID 66666。这说明常驻通知被频繁刷新,但该计数不能解释为用户收到了 78 条营销通知。

5.2 召回入口和门槛#

入口 默认场景 主要门槛 / 频控 路由或作用
解锁、Home、最近任务、日期变化 A2/A4/A6/A8 四组随机候选 全局开关;App 不在前台;屏幕交互、未锁屏、竖屏;安装超过 5 分钟;每模板日上限 10;配置还含 Eco_noticount_unlock=4 App Manager / Cache Clean
App 退后台 B1/B3/B4/B5/B7/B8 首次打开超过 5 分钟;全局后台冷却默认 40 分钟;每模板间隔 60 分钟;每模板日上限 10 Cache Clean / App Manager
安装其他 App C1 安装超过 5 分钟、App 不在前台;10 分钟场景间隔;日上限 6 清 APK 文件
卸载其他 App C2 同上;10 分钟场景间隔;日上限 5 清卸载残留
充电、电量变化 D1/D2/D3 10 分钟场景间隔;每模板日上限 6 Battery Scanning
网络变化 N1/N2 顶层至少 10 分钟一次;N1/N2 日上限分别 1/2 Network Traffic
MediaStore 新图片 / 截图观察 S 10 分钟场景间隔;日上限 6 Picture Scan Report
约 8 小时 Alarm Alarm 通知引擎 Alarm 非精确定时;触发后订阅 topic、续排并进入通知路径 周期本地召回机会
FCM 服务端下发内容 + 本地通知引擎 权限、优先级和本地状态;高优先级先尝试恢复 FGS Push 召回 + 拉起机会
Boot / App 更新 启动/更新通知路径 受系统广播、包 stopped 状态和后台执行限制 重启/升级后的恢复与召回机会
广告误触返回 GO1 代码识别广告返回场景 回主页面

说明:Eco_noticount_unlock=4Eco_noticount_fcm=5NotifiEcoBurstCount=2AlarmecoInterval=120 是默认配置文件中的值;其中各字段在最终线上配置中的值可被远端配置替换。未把仅见配置值、尚未完整闭环到执行点的字段写成已验证线上频控。

5.3 当前 APK 内置的默认召回文案#

以下只列默认 English 标题和点击目的,便于识别策略,不展开产品页面。

事件码 默认 Title 点击路由 静态状态
A a2 RAM at %1$s full! Close apps now App Manager 可达候选
A a4 Cache at %1$s limit! Clear cache now Cache Clean 可达候选
A a6 High RAM: %1$s! Clear to boost speed now App Manager 可达候选
A a8 Storage %1$s full! Clear junk now Cache Clean 可达候选
B b1 Only %1$s space left! Clear data now Cache Clean 可达候选
B b3 %1$s junk to be cleaned up! Clean junk instantly Cache Clean 可达候选
B b4 %1$s no junk cleared! Clean now Cache Clean 可达候选
B b5 Speed Boost 30% in 1 Min! Cache Clean 可达候选
B b7 Switching apps lags? Close background now App Manager 可达候选
B b8 App List Getting Crowded? Remove apps now App Manager 可达候选
C c1 %1$s installed! Clean APK files Cache Clean PACKAGE_ADDED 路径
C c2 App removed! Clear leftover files Large File PACKAGE_REMOVED 路径
D d1 %1$s Charged! Battery Health? Battery Scan 电池路径
D d2 %1$s Battery, Save It Now! Battery Scan 电池路径
D d3 Full in %1$s! Check battery status Battery Scan 电池路径
N n1 Slow Internet (%1$s)? Boost It! Network Traffic 网络路径
N n2 Network Switched! Check data usage Network Traffic 网络路径
S s Clean 100+ Old Screenshots? Free up space Picture Scan 截图观察路径
GO go1 Oops! Accidentally clicked an ad? Main 广告返回路径
H h1 Speed Boost 30% in 1 Min! Cache Clean 已打包;本轮未动态单测
H h2 %1$s of Junk Files Found! Clean junk Now Large File 本轮动态见到 ID 30010
H h3 Only %1$s storage left! Release storage now Cache Clean 已打包;本轮未动态单测

5.4 通知策略判断#

  • [事实] 文案大量使用“RAM 满、存储满、发现垃圾、电池异常、网络变慢”等即时性表达。
  • [风险判断] 如果标题中的 %1$s 不是由真实测量值生成,而是随机/估算值,就会构成误导性召回;本报告只证明模板和路由存在,未证明每次展示值都来自真实扫描。
  • [事实] 常驻通知为中重要性,业务召回渠道可达 importance 5;高重要性渠道更容易打扰用户。
  • [事实] 客户端有多层本地频控,但服务端 FCM 的总频控、人群和发送计划不可从 APK 得出。
  • [建议边界] 可借鉴“触发入口分层 + 每场景频控 + 点击路由”,不建议照搬夸张文案、过高渠道重要性或 specialUse 声明。

6. 产品族群指纹#

6.1 已确认指纹#

维度 Flare 指纹
签名 SHA-256 7822cc9c…c31ef;DN 为 SAdeveloper / SouthAfica
业务代码根 com.liam.garbagecleaner
远端配置 https://fese.freshenupapp.com/enConf
FCM topic lADDL
Adjust App Token 68vxnujbqu80
Facebook App ID 752379677929390
AdMob App ID ca-app-pub-9568628350852134~5036152218
广告栈 TradPlus + AppLovin + Meta Audience Network + Google Ads / TP ADX
隐私/条款入口 risingl.com/privacy1、Google Sites 的 Flare Cleaner Privacy/Terms
核心代码纹理 S7 恢复子系统、t7 场景模板、R7 通知引擎、EnConfig 配置模型、加密字符串解码

6.2 当前比对结果#

比对范围 结果 结论
当前逆向库 7 个其他 base APK 无相同签名 不是已知同签名产品族
当前逆向库文本/代码指纹 未命中 freshenupapp.comcom.liam.garbagecleaner、关键通知配置名 暂未发现同代码底座样本
测试机其他 3 款清理 App 系统签名摘要均不同 不是同签名兄弟包
APK 内兄弟包名 未发现明确同厂应用包名清单 不支持“跨 App 互拉”结论

6.3 当前族群结论#

当前只能定义“Flare 技术指纹”,不能确认它属于竞品库里的某个既有产品族。 后续 6 个包拆完后,应使用同一组字段横向匹配:签名 SHA-256、配置域名、Adjust Token、广告位前缀、FCM topic、包内代码根、混淆组件名和通知模板事件码。只要出现 3 个以上独立高区分度指纹一致,即可提高“同产品族/同技术底座”的置信度。

7. 可借鉴与不建议照搬#

7.1 可借鉴#

  • 用一个统一启动入口收口 Service、Job、Alarm、Boot 和 FCM,减少多入口状态不一致。
  • 把“任务卡移除后持续存活”“服务重建”“冷进程拉起”“开机恢复”“Force Stop”拆成独立验收项。
  • 给每个通知入口单独设置首次使用延迟、场景冷却、日上限和点击路由。
  • 将 FCM 高优先级的短时执行机会与普通本地通知路径分开记录。
  • 动态记录通知是新发布还是更新;不能用 notify() 次数代替用户实际曝光。

7.2 不建议照搬#

  • 不应把 specialUse 当通用保活通行证。
  • 不应把主 FGS 和 FCM Service 无保护地 exported=true
  • 不应承诺 Force Stop 后自恢复或永久保活。
  • 不应使用未经真实测量支持的“垃圾已发现、RAM 已满、电池异常”等文案。
  • 不应只靠客户端频控;服务端还需要总频控、人群排除、时区、退订和实验控制。

8. 未验证项#

  • 通知权限关闭后,主 FGS、Job 和 FCM 的完整行为。
  • Android 16 以外 ROM,特别是小米、OPPO、vivo、三星的后台限制差异。
  • 周期 Job 在自然等待到期后能否从死亡进程恢复,以及是否能获批启动 FGS。
  • 远端 enConf 当前线上返回值与分群规则。
  • FCM 服务端的发送人群、频率、TTL、优先级降级率和真实到达率。
  • H1/H3、全部电池/包变更/截图模板逐条动态展示与点击路由。
  • 商店主体与其他公开产品的最终同族关系;当前仅完成本地签名与代码指纹比对。

9. 样本与证据位置#

  • 原始 split APK:Clean/cleaner-7-pack-2026-08-31/flare-cleaner/apk/
  • JADX 反编译:Clean/cleaner-7-pack-2026-08-31/flare-cleaner/jadx/
  • 真机证据:Clean/cleaner-7-pack-2026-08-31/flare-cleaner/evidence/
  • 本报告:Clean/Flare_Cleaner_v1.0.7_保活恢复_通知召回_产品族群逆向报告.md
竞品拆包报告库 · 逆向结论按证据等级阅读