Pure Clean Master 产品功能与商业化分析
Pure Clean Master 产品功能与商业化分析返回竞品库
报告口径本页直接渲染本地报告真源;静态能力、动态观察、推断和线上未验证项不得互相替代。

Pure Clean Master 产品功能与商业化分析#

文档日期:2026-10-12
样本:com.pureclean.smartfile.master,APK versionName=1.1.8 / versionCode=19。
结论口径:S1=静态事实,I=静态推断,U=未验证。未操作测试机。

一、结论先行#

  1. 产品不是单一清理器,而是“九个工具入口 + 高频通知召回 + 广告变现”的工具集合。 App 自有功能枚举包含缓存清理、大文件、相似照片、截图、应用管理、流量、设备信息、RAM、通知清理九类;每类普遍有扫描页、结果页和完成页。(S1)
  2. 商业化核心是 Google Mobile Ads + AppLovin MAX 双路由。 冷启动、扫描、完成、首页和额外返回位均有广告位;本地配置按安装第 0/1/2/3+ 天分层,并允许 Firebase Remote Config 远程替换。(S1)
  3. 通知不是辅助提醒,而是增长入口。 代码定义 15 个通知场景,并可静态还原 22 个文案/动态标题变体;固定提醒通知 ID 8194,点击后按 action 路由到清理、应用管理、流量、RAM、通知清理等模块;广告误点回流也被做成独立通知场景。(S1)
  4. 功能价值与系统能力存在边界。 文件删除、应用卸载、通知移除可由 Android 系统能力支撑;“RAM 加速”“设备优化”更接近状态展示和引导,静态代码未证明它能强制停止其他 App 或真正提升硬件性能。(I/U)
  5. 当前 APK 与 Google Play 公共页版本信息不一致。 本分析只代表本地 1.1.8 样本,不代表商店页面标注的 1.1.2。(U)

二、产品架构#

静态功能枚举见 jadx/sources/defpackage/f11.java:26-44:

功能域 主要页面/流程 能力边界 证据等级
Cache Clean(缓存清理) CacheScanActivity → CacheDataActivity → CacheCleanAnimationActivity → 成功页 枚举文件、选择、删除;依赖所有文件访问权限 S1
Large File(大文件) LargeFileScanActivity → LargeFileDataActivity → LargeFileCleanAnimationActivity 按大小/类型展示并由用户选择删除 S1
Similar Photos(相似照片) SimilarPhotoScanActivity → SimilarPhotoDataActivity → SimilarPhotoCleanAnimationActivity 静态存在图像分组与删除流;算法准确率未验证 S1/U
Screenshot(截图) ScreenShotScanActivity → ScreenShotDataActivity → ScreenShotCleanAnimationActivity 扫描截图目录、预览、删除;另有文件观察器触发截图通知 S1
App Manage(应用管理) AppManagerScanActivity → AppManagerInfoActivity 枚举安装包/使用信息,卸载最终走系统 ACTION_DELETE,不是静默卸载 S1
Network Traffic(流量) NetworkTrafficScanActivity → NetworkTrafficInfoActivity 基于 Usage Access/UsageStatsManager 统计;依赖用户授予特殊访问 S1
Device Info(设备信息) DeviceInfoScanActivity → DeviceInfoActivity 展示设备/存储等信息;不等于系统修复 S1/I
RAM RAMScanActivity → RAMCleanActivity 读取内存占用并呈现“清理”流程;未发现强停其他 App 的可靠静态证据 S1/U
Notify Clean(通知清理) NotificationScanActivity → NotificationCleanActivity 授予通知使用权后,监听并可取消第三方通知;达到累计条件会提醒清理 S1

Manifest 页面清单集中在 jadx/resources/AndroidManifest.xml:124-273。

2.1 文件清理主链路#

  • MANAGE_EXTERNAL_STORAGE 是核心能力,代码通过 Environment.isExternalStorageManager() 检查,并跳转 MANAGE_APP_ALL_FILES_ACCESS_PERMISSION 请求授权。(S1,jadx/sources/defpackage/le.java:74-83,117-126)
  • 大文件、截图、相似照片和缓存均采用“扫描—列表选择—动画—成功页”的产品结构。(S1)
  • 静态代码能证明存在删除调用,不证明扫描结果全部准确、安全,也不证明删除后空间数字与系统设置完全一致。(U)

2.2 应用管理与流量#

  • 应用管理走系统卸载 Intent,用户仍需在系统页面确认,不能静默卸载。(S1,jadx/sources/defpackage/re.java:50-53)
  • 流量模块依赖 PACKAGE_USAGE_STATS,并提供跳转到 Usage Access 设置的路径。(S1,jadx/sources/defpackage/at.java:245、jadx/sources/defpackage/me.java:144)
  • 应用安装、卸载、最近任务键、网络切换也被复用为召回通知触发源。(S1)

2.3 通知清理#

  • NotificationListener 忽略 ongoing 与自身通知,对收到的第三方通知读取标题/正文、调用 cancelNotification,再写入本地记录并增加 today_notify_count。(S1,jadx/sources/a/ac/view/notification/NotificationListener.java:62-91)
  • 当日累计达到 20 条后进入 NOTIFY_CLEAN 场景,由总通知策略继续判断权限、前后台、时间与频控。(S1)
  • 这是“NotificationListenerService 特殊访问”,不是普通运行时权限;用户不授权时功能不可用。(S1)

三、广告与商业化#

3.1 广告位#

广告位枚举见 jadx/sources/defpackage/r6.java:27-35:

广告位代码 产品位置 支持格式 静态配置状态
newcleanStart 冷启动/启动页 App Open(开屏)+ Interstitial(插屏) d0-d3 均 openSwitch=true
newcleanScan 扫描过程/扫描完成前后 Interstitial d0-d3 均开启
newcleanFinish 清理完成页 Interstitial d0-d3 均开启
newcleanHome 首页 Native(原生)+ Banner(代码支持) 内置配置以原生为主
extra 多个页面返回/额外节点 Interstitial 代码定义;实时配置与实际展示待验证

3.2 广告网络路由#

  • 广告 ID 以 ca-app-pub 开头时走 Google Mobile Ads;其他 ID 走 AppLovin MAX。(S1,jadx/sources/defpackage/w6.java:198-201,251-420)
  • 直接可复核的格式实现包括 Google/MAX 的 Banner、Interstitial、Native、App Open。(S1)
  • Manifest 还打包了 Meta Audience Network、Unity Ads、Pangle、Vungle、Fyber、ironSource/LevelPlay、Mintegral、BIGO 等组件。(S1,AndroidManifest.xml:581-1140)
  • 不能仅凭 SDK 存在认定它们都实际请求广告。 它们可能是 MAX mediation(聚合)适配器,也可能闲置;需抓包或 MAX 后台配置确认。(U)

3.3 安装日分层与远程控制#

  • 安装第 0/1/2/3+ 天分别读取 assets/d0_config.json、d1_config.json、d2_config.json、d3_config.json。(S1,bi2.java:43-90)
  • Remote Config 字段 day0_ad 至 day3_ad 可覆盖本地 JSON,并写回私有文件。(S1,bi2.java:92-114,128-203)
  • 默认每天展示/点击上限都是 50,可被 clean_ad_show、clean_ad_click 改写;冷启动时按自然日重置计数。(S1,bi2.java:31-40,150-163;SplashActivity.java:148-174)
  • 若检测到 VPN 且 banAdVPN=true,或 IP/广告标识黑名单标志命中,则不加载广告。(S1,w6.java:78-90)
  • 首个 Activity 进入时会启动两条服务端检查:向 https://ip.brisk-signal.com/check/new/ip 查询 IP 是否被拦截;向 https://pwz.brisk-signal.com/bisk/chadi POST 包名和本地保存的标识,事件名显示其用途为 adid 黑名单。请求失败按指数退避重试,结果写入 tm.f20297e / tm.f 并进入广告前置判断。(S1,jadx-targeted/cz.java:60-297、l41.java:25-232;标识是否严格等同 Adjust Adid 为 I)
  • 远端实时值、地域/渠道差异和服务端填充策略未抓取。(U)

3.4 收入归因与价值分层#

  • App 初始化 Adjust production 环境,并启用后台发送;同时初始化 AppLovin MAX、Facebook/Firebase 相关能力。(S1,MyApplication.java:59-96)
  • 广告收入累计达到 $0.01 / 0.02 / 0.04 / 0.06 / 0.08 / 0.10 / 0.20 / 0.40 / 0.60 / 0.80 / 1.00 / 2.00 时触发分段事件。(S1,w6.java:433-450)
  • 这表明产品不仅统计展示与点击,还把用户按累计广告价值分层用于投放回传/分析。(I)

3.5 广告误点回流#

  • App 离开前台且广告退出标志命中时,触发 AD_GO_BACK 高优先级通知。(S1,jadx/sources/defpackage/ye.java:104-113)
  • 文案直说“Oops! You accidentally clicked on the ad!”并通过 notify_ad_retrieve 恢复原任务/主页面。(S1)
  • 这是明确的“广告外跳后召回”设计,目的更接近挽回流程与后续广告机会,而非系统维护提醒。(I)

四、通知与增长闭环#

产品静态闭环为:

系统事件/文件变化/业务阈值/FCM/周期任务 → x22.a(scene) → vn 总策略门控 → r12/u22/q9 组装文案与 action → t22 发布 ID 8194 → OutOpenActivity 记录点击并转 SplashActivity → p71 路由对应工具页。

主要增长特征:

  • 07:00-22:59 时间窗、屏幕解锁且亮屏、竖屏、App 后台、通知权限等统一门控。(S1)
  • 场景按 HIGH/MEDIUM/LOW/SPECIAL 四个池做冷却和 10 秒竞价式仲裁。(S1)
  • 自然量默认有两小时全局间隔;非自然量按远程参数做更细粒度间隔。(S1/I)
  • 一次通知被删或点击会取消后续重复;三星默认再推 1 次,其他品牌默认再推 3 次,每次间隔约 4 秒。(S1)
  • 通知频控受 Remote Config 控制,说明召回强度可按投放用户/自然用户和安装阶段调节。(I)

完整规则、Action、ID、Channel 和六语言文案见 拉活通知规则与文案全量报告.md。

五、竞品启示(不等于建议直接照搬)#

机制 竞品价值 风险/代价 对我方的可借鉴点
九工具聚合 增加首页入口和回访理由 功能可信度与权限解释压力 保留高确定价值工具,避免“伪优化”表述
扫描/完成双插屏 每次任务形成两次变现机会 中断任务、增加投诉和卸载 广告前置条件与频控应透明可测
安装日广告配置 快速区分新老用户变现节奏 远端配置复杂,易造成体验漂移 用版本化配置与审计日志管控
系统事件通知召回 无需用户主动打开即可拉回 通知骚扰、平台政策、品牌信任风险 只用真实、可验证状态;允许关闭;严格频控
常驻前台通知 提高进程可用性并提供快捷入口 常驻打扰、前台服务合规风险 若采用,应让用户明确理解并可关闭
广告误点回流通知 降低广告外跳造成的任务流失 文案承认“误点广告”,体验与合规敏感 更适合 App 内状态恢复,不宜依赖系统通知

六、未验证项#

  1. 所有页面的真实 UI、扫描准确率、删除成功率、RAM“优化”效果、相似照片算法精度均未做真机验收。(U)
  2. 广告实际展示顺序、填充率、关闭按钮、强插策略和服务端 mediation 瀑布流未抓包。(U)
  3. Remote Config 当前值、自然量判定逻辑的服务端来源与投放渠道差异未确认。(U)
  4. Play 公开页与 APK 的版本/最低系统要求冲突尚未通过 Play Console 或同地区设备分发解释。(U)
  5. IP/adid 黑名单接口的响应字段、真实请求标识、留存策略与地域合规未抓包或查服务端。(U)
竞品拆包报告库 · 逆向结论按证据等级阅读