Storage Manager v1.0.5 拉活通知规则与文案全量报告
Storage Manager v1.0.5 拉活通知规则与文案全量报告返回竞品库
报告口径本页直接渲染本地报告真源;静态能力、动态观察、推断和线上未验证项不得互相替代。

Storage Manager v1.0.5 拉活通知规则与文案全量报告#

文档日期:2026-10-14
“全量”指当前 APK 可静态还原的一方通知类型、规则、Channel、路由和本地资源文案;不包含服务端未来可下发的任意 FCM 标题/正文。
S1=静态事实,D1=真机事实,U=未验证。

一、结论先行#

  1. 通知分为三套:常驻前台通知 ID 1001、本地业务提醒 ID 2000、FCM 简单通知 ID 3001+。(S1)
  2. App 首启后创建 12 个一方 Channel;FCM 通知到达时可再创建第 13 个 simple_notification_channel。(S1/D1)
  3. 普通提醒由 FGS 每 60 秒检查;内置 release 配置对普通设备为首条 30 分钟、后续 45 分钟、三个 6 小时时段各最多 6 条,Samsung 为首条/后续均 60 分钟、各时段最多 2 条。(S1)
  4. 统一门禁还要求通知总开关和系统权限开启、屏幕亮且未锁、App 不在前台、当前时段有效、未横屏、未超时段上限,并满足首延迟/间隔。(S1)
  5. 本地提醒共 11 种样式编号:1-6、7-11;普通随机轮换只从 1-4 选,样式 5“久未清理”满足至少 1 天时优先且每天最多一次,6-11由卸载/电量/大文件/存储事件或代码调用触发。(S1)
  6. 本地提醒使用 setOngoing(true) 和 fullScreenIntent;用户删除后通过 NotifyDeleteReceiver 取消重复展示 Job。代码请求 Channel bypass DND(绕过勿扰),但真机系统最终均显示 mBypassDnd=false。(S1/D1)
  7. 资源提供英语和繁体中文 App 自有通知文案;简体中文资源目录没有这组 key,所以本轮简体中文设备上的通知相关文本会回退英语。(S1/D1)

二、通知类型、ID 与生命周期#

类型 ID 特征 点击落地
Resident(常驻 FGS) 1001 ongoing、category=service、折叠/展开 RemoteViews、无声 主点击 Junk Cleaner;快捷入口 Junk/App Manager/Battery
Local reminder(本地提醒) 2000 ongoing、Heads-up、自定义折叠/展开/悬浮、fullScreenIntent 按样式路由 Junk/App/Battery/Photo/Large/Storage
Uninstall(卸载残留) 2000 recommendation、fullScreenIntent Junk Cleaner
Battery charged/charging/low 2000 高重要度、自定义电池布局、fullScreenIntent Battery Info
FCM simple 3001 起递增 autoCancel、服务端 title/body、BigText、系统默认提示 SplashActivity

证据:notification/ponmlkjihgfedcba.java:859-879,921-960,1102-1119、notification/zyxwvutsrqponmlkjihgfedcba.java:36-80。

三、Channel 全表#

Channel ID 名称 Importance 声音/灯/震动 用途
resident_notification_channel Resident Notification 3 无声、无灯、无震动 FGS 常驻
normal_notification_channel_style1 Quick Clean Alerts 4 无声、红灯、零值震动数组 垃圾清理
normal_notification_channel_style2 App Management 4 无声、蓝灯、零值震动数组 RAM/App Manager
normal_notification_channel_style3 Battery Optimization 4 无声、绿灯、零值震动数组 电池消耗
normal_notification_channel_style4 Storage Optimization 4 无声、紫灯、零值震动数组 照片压缩
normal_notification_channel_style5 System Maintenance 4 无声、黄灯、零值震动数组 久未清理
uninstall_reminder_channel Uninstall Reminder 4 无声、红灯、零值震动数组 卸载残留
battery_charged_channel Battery Charged Alerts 4 无声、绿灯、零值震动数组 充满
battery_charging_channel Battery Charging Status 4 无声、黄灯、零值震动数组 充电中
battery_low_power_channel Low Battery Warnings 4 无声、红灯、零值震动数组 低电量
large_file_channel Large File Alerts 4 无声、红灯、不震动 大文件
storage_channel Storage Alerts 4 无声、红灯、不震动 存储不足
simple_notification_channel 代码动态创建 4 系统默认、灯、震动 FCM notification payload;本轮未创建

构建代码请求 setBypassDnd(true),但 Android/OEM 需要额外授权,真机 dumpsys notification 为 false;不能宣称实际绕过勿扰。(S1/D1)

四、release 通知配置#

来源:jadx/resources/res/raw/ss_notify_config_v2.json。

参数 Default Samsung
batterystatus true true
uninstallstatus true true
reminderstatus false false
卸载提醒最小间隔 5 分钟 30 分钟
普通提醒首条延迟 30 分钟 60 分钟
普通提醒后续间隔 45 分钟 60 分钟
06:00-12:00 上限 6 2
12:00-18:00 上限 6 2
18:00-24:00 上限 6 2
低电量去抖 30 分钟 120 分钟
充电事件延迟 0.5 分钟 0.5 分钟

解析失败时的代码 fallback 是首条 30 分钟、间隔 45 分钟、三个时段各 4 条;它不同于 release JSON 的 Default 各 6 条。(S1,ad/abcdefghijklmnopqrstuvwx.java:120-143)

ss_notify_config_v2_test.json 中 Samsung 首条为 15 分钟、卸载 5 分钟、各时段最多 4 条,这是测试资源,不代表线上 release。

4.1 Remote Config 覆盖#

  • ss_notify_config_v2 非空时整包替换本地 JSON;为空才回退 raw。
  • 解析时按 Build.MANUFACTURER 选择 samsung 或 default。
  • 当前 Firebase 生产 payload 未抓取,线上实际值未知。(S1/U,a0/n.java:224-255)

五、普通提醒统一规则#

每 60 秒执行一次检查:

顺序 门禁 行为
1 notification_is_open + 系统通知权限 任一关闭则不展示
2 clean_reminder_is_open 关闭则不展示普通清理提醒
3 referrer==7 且 reminderstatus=false 阻断普通提醒;非 7 分支不受该字段阻断
4 屏幕状态 要求亮屏且未锁;由动态 Receiver 更新
5 App 前后台 App 在前台时不展示
6 时段 必须在配置的 06-12 / 12-18 / 18-24 之一
7 单时段计数 达到 max_count 则停止
8 屏幕方向 横屏不展示
9 时间间隔 首条满足 first_delay;后续满足 interval
10 样式 久未清理样式 5 优先,否则从 1-4 排除最近两种后随机

证据:LongRunningService.java:200-343,350-373、notification/ponmlkjihgfedcba.java:248-270,297-389,442-459。(S1)

注意:reminderstatus=false 并不等于“所有用户都关闭普通提醒”;代码只在 referrer==7 分支检查它。当前 APK 在 utils/m1.java 中明确声明 SOURCE_ORGANIC=7,但未知 referrer、查询异常和超时也回退到 7;非 7 组除 Facebook/TikTok/Google/Kwai/Bigo 外,还包含 official/website/direct。因此下游准确分组是“自然/默认组 7”与“非 7 已识别来源组”,不能直接写成纯自然量与纯付费推广量。(S1)

六、11 种本地样式、文案与路由#

以下保留 APK 英语原文,包括语法和拼写问题。{size}、{count}、{percent}、{days}、{appName}、{battery} 为运行时变量。

Style 触发/选择 英语可见正文 CTA scan_type click type
1 普通随机清理 来源 7/未逾期:Junk files detected, clean now!;其他逾期:{size} junk files found, clean now! Clean JUNK_CLEANER jc
2 普通随机 App/RAM 来源 7:View the {10-35} apps running in the background!;其他:Attention!RAM usage is reached {50-80}% ! Check APP_MANAGER am
3 普通随机电池 来源 7:View the phone battery consumption recently;其他:Attention!{10-35} apps are draning your battery! View BATTERY_INFO bi
4 普通随机压缩 来源 7/未逾期:Compress photo to save space.;其他逾期:Save {size} of space by compressing photo. Go PHOTO_COMPRESSION pc
5 安装或上次清理 ≥1 天;每天最多一次 Not cleaned in {days} days ! View JUNK_CLEANER ltc
6 检测到外部 App 卸载且门禁满足 {appName} uninstalled. Remove junk now! Clean UNINSTALL uninstall
7 充满/charged 中心显示估算时间 0min / {h}h{m}min,同时显示 {battery}% View BATTERY_INFO charged
8 接入电源/charging Charging + {battery}% View BATTERY_INFO charging
9 低电量 Low + {battery}% View BATTERY_INFO low
10 大文件提醒调用 来源 7:Clean large videos for more space.;其他:Clean {size} of large files for more space. Clean LARGE_FILE lf
11 存储提醒调用 来源 7:Manage storage space.;其他:Low storage, {percent}% full. Clean Now Clean Now 空字符串 storage 常量

代码证据:notification/ponmlkjihgfedcba.java:538-752,1130-1211。

6.1 Title 与 fallback#

  • Style 1-4 的系统 title 分别复用对应基础文案;Style 5 title 为空;Style 10=Large Files;Style 11=Storage。(S1)
  • RemoteViews 构建异常时 fallback:Title=Daily Master,Body=Clean your device。(S1)
  • 卸载提醒 fallback:Title=App Uninstalled - Clean Residual Files,Body=Clean residual files from {appName}。(S1)
  • Battery fallback:Battery Fully Charged / Battery Charging / Low Battery Warning + Battery level: {n}%。(S1)

6.2 文案质量问题#

  • draning 应为 draining。(S1)
  • Attention! 使用全角感叹号,RAM 文案还会形成尾部空格加 !。(S1)
  • Style 5 的 days 是代码硬编码英语,即使资源切到繁体中文,也会出现 未清理於 {n} days ! 的混合语言。(S1)
  • 多条数字(垃圾大小、App 数、RAM 百分比、压缩空间)由随机生成器产生,不一定对应实时扫描结果;其营销真实性需单独动态核验。(S1/I)

七、繁体中文资源全文#

APK 对上述一方 key 提供 values-zh-rTW:

场景 繁体中文资源/拼接结果 CTA
垃圾基础 檢測到垃圾文件,立即清理! 清理
垃圾动态 {size} 發現垃圾文件,立即清理! 清理
App/RAM 来源 7 查看 {10-35} apps 在後台運行! 檢查
App/RAM 其他 注意!內存使用已達上限 {50-80}% ! 檢查
电池来源 7 查看最近的手機電池消耗 查看
电池其他 注意! {10-35} apps 正在消耗您的電池! 查看
照片压缩基础 壓縮照片以節省空間。 前往
照片压缩动态 保存 {size} 空間通過壓縮照片。 前往
久未清理 未清理於 {days} days ! 查看
卸载 {appName} 已卸載。立即刪除垃圾! 清理
充电 充電 + {battery}% 查看
低电 低 + {battery}% 查看
大文件基础 清理大型影片以釋放更多空間。 清理
大文件动态 清理 {size} 的大型檔案以釋放更多空間。 清理
存储基础 管理儲存空間。 立即清理
存储动态 儲存空間不足,已使用 {percent}%。立即清理 立即清理

资源路径:jadx/resources/res/values-zh-rTW/strings.xml。values-zh 与 values-zh-rCN 未包含这些 App 自有 key,因此简体中文会回退默认英语。(S1)

八、事件型通知规则#

8.1 App 卸载#

  • 服务初始化 AppUninstallMonitor,检测外部应用卸载并跳过自身发起的卸载。(S1)
  • release 开关 uninstallstatus=true;Default 最小间隔 5 分钟,Samsung 30 分钟。(S1)
  • NotifyConfigData.canUninstallNow() 还要求当前电量满足电池规则、当前小时位于有效时段、当日该时段计数未满。(S1,NotifyConfigData.java:165-190)
  • 关键协程方法部分反编译失败,真实计数落点和 OEM 时序需真机卸载测试。(U)

8.2 电池/电源#

  • 动态监听 BATTERY_CHANGED、连接/断开电源、低电与恢复事件。(S1)
  • 发布前检查总通知开关、系统权限和 battery_reminder_is_open。(S1)
  • Charged/Charging/Low 分别使用 style 7/8/9,并在成功后延迟约 1 秒继续流程。(S1)
  • low_battery_debounce_min 为 Default 30 分钟、Samsung 120 分钟;power_event_delay_min 均为 0.5 分钟。(S1)
  • release batterystatus=true;低电量阈值相关反编译方法不完整,但配置模型以 <20 作为卸载提醒的电量保护判断。(S1/U)

九、点击路由与参数#

本地通知 PendingIntent 写入:

scan_type
show_notification_type
notification_id_to_cancel
notification_clicktype

Intent flags=268468224,目标 SplashActivity;异常 fallback flags=268435456。证据:notification/ponmlkjihgfedcba.java:1271-1294。(S1)

Style route
1 / 5 JUNK_CLEANER
2 APP_MANAGER
3 / 7 / 8 / 9 BATTERY_INFO
4 PHOTO_COMPRESSION
6 UNINSTALL(卸载通知构建的 full screen fallback 又指向 Junk Cleaner)
10 LARGE_FILE
11 空 scan_type,由 Splash/Main 默认路径承接

常驻通知主点击去 Junk Cleaner,折叠和展开布局各有 Junk/App Manager/Battery 三个按钮。(S1/D1)

十、FCM 规则#

payload 行为
High priority data 记录事件并调用统一入口启动 FGS,data_start 标记为 FCM 来源
Normal priority data 只记录“priority downgraded”,不显式启动服务
Notification payload 以服务器 title/body 创建 simple_notification_channel 通知,ID 从 3001 递增

FCM title/body 完全由服务端决定,APK 只能还原 fallback 客户端,不可能列出“服务端全部文案”。本轮未发送受控 FCM。(S1/U)

十一、真机状态#

  • 首启允许通知后立即出现常驻 ID 1001;系统通知面板可见三类快捷入口。(D1)
  • 12 个预建 Channel 已创建;系统没有 simple_notification_channel,说明本轮未走 FCM notification 构建。(D1)
  • Home 后、最近任务划卡后,ID 1001 仍在。(D1)
  • Force Stop 后活动通知消失;Channel 仍保留是系统配置持久化,不是拉活。(D1)
  • 本轮未等待 Samsung 首条 60 分钟窗口,未观察到 ID 2000;普通提醒样式与频控仅为静态结论。(U)

十二、风险与未验证#

  1. setOngoing(true) + fullScreenIntent 用于清理建议,可能被平台视为高打扰或不符合全屏意图使用预期;需以现行 Android/Play 政策专项审查。(S1/U)
  2. 代码请求 bypass DND,但系统未授予;不同 OEM 行为未知。(D1/U)
  3. Remote Config 可完全改变频控和开关,release raw 不等于当前线上真值。(U)
  4. 卸载、充电、低电、长时间未清理、大文件与存储提醒均未逐场景动态触发。(U)
  5. 简体中文回退英语与繁体中文硬编码 days/apps 混排,属于本地化质量问题。(S1)
竞品拆包报告库 · 逆向结论按证据等级阅读