报告口径本页直接渲染本地报告真源;静态能力、动态观察、推断和线上未验证项不得互相替代。
Cleaner 7 包保活恢复、通知召回与产品族群横向总览#
样本日期:2026-08-31
测试设备:Pixel 6a,Android 16 / API 36
范围:保活与恢复、通知召回、产品族群;不做可见清理功能盘点。
通知英文原文、中文释义、动态变量、触发条件、频控、通知 ID 和点击路由见:7 包通知场景、文案与触发规则全量摘录。
1. 最终结论#
- 7 包不是 7 套完全独立技术。 当前可分为三类:Flare 独立族、Clean Sweep Master 独立族、五包白标核心族。
- CleanMas + CleanLoom 是已确认的同产品族。 同 Play 开发者、同签名、同业务根、同主域、925 条 strings 精确相同。
- BlazeClean + AuraClean 是已确认的同发布者同源代码族。 同 Play 开发者 Alsaeed、548 条 strings 精确相同、组件完全同构,还有 Aura 品牌残留进入 Blaze 包;但签名不同。
- NeatPulse 是五包白标核心的独立品牌分支。 与 CleanMas 有 917 条 strings 精确相同,保活和通知算法同构;缺少同开发者/同签名证据。
- 五包白标核心最成熟的点不是“永久保活”,而是多入口恢复编排。
specialUse FGS + 2–7 秒 Job + 21–25 分钟 persisted Job + 8 小时 Alarm + Boot + FCM + WorkManager,各包通过常量抖动和换名降低表面相似度。 - Android 16 真机证明 Boot 恢复有明显时序差异。 CleanMas、CleanLoom、BlazeClean、AuraClean 本轮通过 Boot 白名单内短 JobService 成功建立 FGS;Clean Sweep Master 和 NeatPulse均有进程/服务启动尝试,但 FGS 被系统拒绝;Flare 的单包测试也未实现开机 FGS 恢复。
- Force Stop 仍是统一硬边界。 7 包都没有证据可突破;剩余 6 包本轮强停复测均保持
stopped=true、无 PID,Flare 单包测试同样如此。 - 通知召回都不是单一 FCM。 共同覆盖前后台、Home/解锁、包安装卸载、电池、网络、截图、Boot/升级、定时和 FCM;区别主要在配置模型、模板皮肤和频控颗粒度。
- 最值得借鉴的是分层验收和统一恢复入口,不是照抄
specialUse。 应分别验证划卡、服务销毁、进程死亡、Boot、Doze、Force Stop 和通知权限关闭,不能把组件存在写成效果成立。
2. 样本清单#
| # | 产品 | 包名 | 版本 | target | base SHA-256 前 12 位 | 单包报告 |
|---|---|---|---|---|---|---|
| 1 | Flare Cleaner | com.flare.cleaner.storage |
1.0.7 (8) | 36 | 0df834399bf1 |
Flare_Cleaner_v1.0.7_...md |
| 2 | Clean Sweep Master | com.cleansweepmaster.clsm |
1.2.0 (1200) | 35 | e8655ab0550a |
Clean_Sweep_Master_v1.2.0_...md |
| 3 | CleanMas | com.clea.mas.pro |
V1.0.7 (8) | 36 | b5a9dd1bddb2 |
CleanMas_v1.0.7_...md |
| 4 | CleanLoom | com.cleanloom.com |
V1.1.8 (11) | 36 | cf913a11f106 |
CleanLoom_v1.1.8_...md |
| 5 | BlazeClean | com.blaze.cleaner.clean.storage |
V1.0.7 (8) | 36 | fdd7f6d81840 |
BlazeClean_v1.0.7_...md |
| 6 | AuraClean | com.auraclean.clean |
V1.1.9 (20) | 36 | d5928647bd0b |
AuraClean_v1.1.9_...md |
| 7 | NeatPulse | com.np.clean |
V1.0.3 (4) | 36 | 8b4480f948c9 |
NeatPulse_v1.0.3_...md |
所有样本均由测试机 Google Play 安装,installer 为 com.android.vending,已拉取 base + split 并完成签名摘要和 JADX 静态逆向。
3. 产品族群地图#
Cleaner 7 包
├── 独立族 A:Flare Cleaner
│ └── com.liam.garbagecleaner / freshenupapp.com
├── 独立族 B:Clean Sweep Master
│ └── CoreTaskExecutor / 30s Job / 15m WorkManager
└── 白标核心族 C
├── BetterFly Games 分支
│ ├── CleanMas ─┐ 同签名、同业务根、同 cleanloom.com
│ └── CleanLoom ┘
├── Alsaeed 分支
│ ├── BlazeClean ─┐ 同开发者、同资源皮肤、签名不同
│ └── AuraClean ─┘
└── 独立品牌分支
└── NeatPulse:同核心算法与大量相同资源
3.1 族群证据强度#
| 关系 | 签名 | 开发者 | 代码/资源 | 域名/残留 | 结论 |
|---|---|---|---|---|---|
| CleanMas ↔ CleanLoom | 相同 | 相同 | 业务根相同;925 strings 相同 | 同 cleanloom.com 主域 |
确认同产品族 |
| Blaze ↔ Aura | 不同 | 相同 | 548 strings 相同;组件完全同构 | Blaze 残留 Aura Activity/Firebase | 确认同发布者同源代码族 |
| Neat ↔ CleanMas | 不同 | 未确认相同 | 917 strings 相同;恢复/通知算法同构 | 域名不同 | 高置信同技术母版 |
| 五包 ↔ CSM | 不同 | 不同/未确认 | 恢复链和通知模型不同 | 无强交叉指纹 | 不同技术族 |
| 五包 ↔ Flare | 不同 | 不同/未确认 | 结构有相似思想,但实现与资源指纹不同 | 无强交叉指纹 | 不同技术族 |
“同技术母版”只表示代码和产品机制同源,不能直接推出同一公司、同一账号或同一法律主体。
4. 保活恢复横向对比#
| 产品 | 主 FGS | 快速恢复 | 中周期 | 长周期 | Boot 本轮 | Force Stop |
|---|---|---|---|---|---|---|
| Flare | specialUse,ID 66666,START_STICKY | 3.816–5.816s Job | 约 23m Job + 20m Work | 约 8h Alarm | 未恢复 FGS | 硬边界 |
| CSM | dataSync,ID 3,START_STICKY | 未见直接快速拉 FGS | 30s Job + 15m Work | 无同类核心 Alarm | 创建进程但 FGS 被拒 | 硬边界 |
| CleanMas | specialUse,ID 8781,START_STICKY | 2.469–4.469s Job | 24.9m Job | 约 8h Alarm | 成功 | 硬边界 |
| CleanLoom | specialUse,ID 8781,START_STICKY | 3.386–5.386s Job | 21.2m Job | 约 8h Alarm | 成功 | 硬边界 |
| BlazeClean | specialUse,ID 88888,START_STICKY | 4.852–6.852s Job | 21.0m Job | 约 8h Alarm | 成功 | 硬边界 |
| AuraClean | specialUse,ID 88888,START_STICKY | 3.403–5.403s Job | 23.9m Job | 约 8h Alarm | 成功 | 硬边界 |
| NeatPulse | specialUse,ID 8781,START_STICKY | 2.268–4.268s Job | 21.6m Job | 约 8h Alarm | 进程起,FGS 被拒 | 硬边界 |
4.1 Boot 成功链的真实机制#
四个成功白标包的系统日志都呈现同一顺序:
普通后台态直接请求主 FGS → DENIED
BOOT_COMPLETED 临时白名单内启动短 JobService → ALLOWED
应用进入 FGS 进程状态
由 JobService 再请求主 FGS → ALLOWED
这说明短 JobService 的价值是作为 Boot 豁免窗口内的前台桥接器。它不是绕过系统限制,而是利用系统在 Boot 场景给出的有限豁免。
NeatPulse 本轮 Boot Receiver 投递较晚,主 FGS和短 JobService都没有拿到有效前台启动资格;CSM 的 SolarMonitor 父类接收逻辑为空,进程初始化后直接启动 dataSync FGS 被拒。单轮结果不能换算成长期成功率,但足以证明“同样写了 Boot Receiver,动态结果会不同”。
5. 通知召回横向对比#
| 维度 | Flare | CSM | 五包白标核心 |
|---|---|---|---|
| 常驻通知 | ID 66666,中重要性 | ID 3,resident | ID 8781 或 88888 |
| 业务通知 | 30001–30011 场景 ID | Remote Config 驱动 | 4545/10001 等动态 ID + 模板组 |
| 入口 | Home/解锁/后台/包变更/电池/网络/截图/Alarm/Boot/FCM | 包变更/电池/FCM 为主 | TIMER/HIGH/BOOT/HOME/UNLOCK/UPGRADE + 包变更/电池/网络/截图/后台/FCM |
| 本地频控 | 首次延迟、全局冷却、模板间隔、日上限 | 总开关、类别上限、首/后续间隔 | 前台/锁屏/屏幕/方向 + 首次延迟 + cooldown + 场景计数 |
| 远端配置 | enConf |
Firebase Remote Config | 自有配置模型 + FCM topic |
| 动态业务通知 | 曾见 H2 ID 30010 | 本轮只见常驻 | CleanLoom/Neat 见 ID4545;Aura 见 ID10001 |
5.1 能证明与不能证明#
能证明:
- 客户端存在触发入口、模板、频控字段和点击路由;
- 正常启动后常驻通知真实存在;
- 部分业务通知在测试机真实发布;
- FCM Service 和 topic 订阅路径存在。
不能证明:
- 服务端当前向哪些用户、何时、以什么优先级发送;
- APK 默认配置就是线上最终配置;
notify()调用次数等于用户实际展示次数;- 强即时性文案中的 RAM/垃圾/存储值一定来自真实扫描;
- 一次 Boot 成功等于长期可靠率。
6. 对我方最有价值的结论#
6.1 可借鉴#
- 统一恢复入口,避免 Service、Job、Boot、FCM 各自维护不同状态。
- 短 JobService 只承担恢复桥接,中/长周期任务承担配置、topic 和通知维护,职责分开。
- 将划卡、服务销毁、进程死亡、Boot、Doze、Force Stop 分成独立验收用例。
- 通知按事件入口、首次延迟、冷却、日上限、点击路由和服务端总频控分层。
- 记录 Boot 白名单是否命中、FGS 请求的系统拒绝原因,而不是只看进程是否出现。
6.2 不建议照搬#
- 不把
FOREGROUND_SERVICE_SPECIAL_USE和 subtypequick entry当通用保活通行证。 - 不承诺 Force Stop 后恢复或“永久保活”。
- 不使用未经真实测量支持的“RAM 已满、发现垃圾、电池异常”等召回文案。
- 不把高重要性业务通知和 FGS 常驻通知混为同一曝光指标。
- 不仅靠客户端频控;服务端还需时区、退订、人群排除、总上限和实验控制。
7. 未验证项#
- 多轮重启统计和小米/OPPO/vivo/三星等 ROM 差异。
- 自然进程回收、长时 Doze、App Standby restricted bucket 下的恢复率。
- 通知权限关闭后的 FGS、Job、FCM 和业务通知行为。
- 五包白标核心是否由同一最终法律主体控制;当前只确认技术同源层级。
- Remote Config / 自有配置接口的当前线上响应和服务端通知策略。
- 每个业务模板逐条动态展示、点击路由和真实测量值来源。
8. 报告入口#
Clean/Flare_Cleaner_v1.0.7_保活恢复_通知召回_产品族群逆向报告.mdClean/Clean_Sweep_Master_v1.2.0_保活恢复_通知召回_产品族群逆向报告.mdClean/CleanMas_v1.0.7_保活恢复_通知召回_产品族群逆向报告.mdClean/CleanLoom_v1.1.8_保活恢复_通知召回_产品族群逆向报告.mdClean/BlazeClean_v1.0.7_保活恢复_通知召回_产品族群逆向报告.mdClean/AuraClean_v1.1.9_保活恢复_通知召回_产品族群逆向报告.mdClean/NeatPulse_v1.0.3_保活恢复_通知召回_产品族群逆向报告.md- 样本总目录:
Clean/cleaner-7-pack-2026-08-31/