宽表格和代码可左右滑动查看。
Cleaner Toolbox v1.2.0 拉活通知规则与文案全量报告#
精确包名:com.cleanertool.box;样本及资料日期:2026-10-28,Asia/Shanghai(北京时间)。六专题补充版。
S1=当前APK静态直接证据;S2=工具回读;S3=当前真机观察;I=推断;U=未验证。反编译不是原始源码,内置配置不是线上最终配置。发布状态单独记录于批次入口。
结论与通知入口#
功能、应用事件和充电各有计数与lastPush字段,总通知另有notifyLastShowTime和maxCount;日期检查不是只看一个总数。channel/normal的18/3/3与3/1/1是对象预置,pushStatus和activityStatus初始为false,必须先通过启用门禁。
功能通知模板涵盖12类候选,但枚举不证明全被加入候选池。初次、第二次、后续和点击后的等待区间应与各状态写回一起看;远端配置可覆盖。点击经TARGET_ACTIVITY/OPERATE_SOURCE与启动/UMP回流,不把通知文案当作后台已完成清理。
触发、门禁、ID、频控与落地#
| 类型/触发 | 前置条件 | 渠道/ID/样式 | 状态、频控与点击 | 等级 |
|---|---|---|---|---|
| 常驻工具栏 | 前台服务及通知构建路径 | resident / ID 3,真机 importance 3、ongoing | 工具入口与业务召回的 pushStatus 分开;Home/划卡短时保留,强停消失 | S1/S3 |
| 功能/长期未清理提醒 | src 选择配置;pushStatus 开启、用户提醒开关、非前台、非横屏、未锁屏、未达计数上限 | notify 业务渠道;具体 ID 由通用构建器返回,未将常驻 3 复用为业务 ID | function 预置渠道18/普通3;首轮区间5–15、第二轮10–30、后续47–75,点击候选45–75;区间可远端覆盖,计时写回需结合调用状态 | S1 |
| 安装/卸载残留 | 应用监控入口及对应业务配置 | 模板有 Installed successfully / Uninstalled successfully;按钮经过 TARGET_ACTIVITY、OPERATE_SOURCE 进入启动/UMP 路由 | app 预置渠道3/普通1;实际包安装事件、残留值和服务端开关未动态验证 | S1/U |
| 电池/充电提醒 | 电池使用间隔及充电/低电量状态门禁、提醒开关 | charging/low/report 模板;通知渲染采用折叠/展开 RemoteViews | charge 预置渠道3/普通1;具体电池转换阶段未真机制造 | S1/U |
| FCM 远端消息 | FCMService 存在 | 远端正文及投放参数未取得 | 没有将服务类的存在计为本次收到消息 | S1/U |
功能门禁同时检查应用前台计数、横竖屏、锁屏、用户关闭全部提醒、pushStatus 和上限。功能数量 0 的已读分支跳过单类上限;总 maxCount 的分支语义另行处理,不能把所有 0 一概当作不限。[A6]
渲染枚举覆盖 junk、boost、process、battery、batteryinfo、compress、wifi、speaker、virus、notification_clean、large_file、longtime;枚举能力不代表每个都加入当前触发候选池。默认值和远端值必须分开。[A10][A11]
调度与生命周期#
Intro/主页初始化 → OnlineWatch前台服务 → resident通知;OfflineWatch Job100重复登记自身;动态应用/充电/功能监控再各自读取notify_config与用户开关,构建业务通知。
StartCallback的广播父类onReceive为空,所以静态BOOT过滤器不是已实现开机拉活的证明。通知监听、FCM、Job、FGS分开验证;通知读取特殊访问未开启时,通知清理实际效果仍未知。
已核验后台实现#
OnlineWatch 继承 Sj6g.M0:onCreate/onStartCommand 调 startForeground,onStartCommand 返回 1;onDestroy 清前台状态、onTimeout 停服务。[A7]
OfflineWatch 的 JobService 父类在 onStartJob 重新登记 Job 100,setMinimumLatency(30000),返回 true;不是固定每 30 秒保证执行,也未在该回调发现直接重启 OnlineWatch。StartCallback 父类 onReceive 为空。Manifest 的 BOOT/SCREEN/USER_PRESENT 过滤器和 RECEIVE_BOOT_COMPLETED 声明只能说明注册,不能补出不存在的处理逻辑。[A8][A9]
NotifyListenerService 负责通知清理;FCMService 接收远端消息并处理 Token 路径。测试未启用通知读取权限、开机恢复未闭合、未触发FCM,不作这些链路已动态生效的结论。
默认、缓存与远端优先级#
自有 cloud config(云配置)层解析 notify_config、notify_max_interval_config、splash_ad_config 和广告流程;有 changed/updateTime/version/parameters 等协议模型。未访问其管理端或取得线上配置,不能用协议字段推定运营策略。
这里的“全量”仅指当前已定位规则与资源逐项保留,未恢复/未获得的字段明确为U;不是竞品服务端未来所有文案或全部策略全集。文案原文及多语言在本专题作为唯一逐包正文,其他专题引用此处。
通知文案与语言资源附录#
定位到 33 个相关字符串键、1 组字符串资源配置。范围为已定位通知类/布局及明确跨类引用;包括按钮、常驻头和拼接片段,不代表同等数量独立通知。若配置没有某键,Android会按资源规则回退;当前缺少的翻译不能写成整个产品不支持该语言。远端正文不在本地资源全集之内。
文案用 AAPT 36.0.0 直接回读 APK;对输出中的 CESU-8 代理对还原 Unicode,避免 JADX 的 emoji 替换字符。原文保留占位符,不能拿占位模板当真实扫描结果。对应提取依据保存在本地 analysis/verified-notification-resources.json,不随站点发布。
默认文案与代码引用#
| 资源键 | 默认原文 | 引用位置 |
|---|---|---|
a4 |
%1$s are consuming phone power. | jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:123jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:227jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:331另5处 |
a5 |
Compress photos to save phone space. | jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:162jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:266jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:370另5处 |
a6 |
Clean up the junk files for your phone! | jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:91jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:195jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:299另5处 |
a7 |
Clean large files to save phone space. | jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:152jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:256jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:360另5处 |
a8 |
Not cleaned in %1$s. | jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:143jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:247jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:351另5处 |
a9 |
RAM usage is %1$s. | jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:102jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:206jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:310另5处 |
a_ |
Clean speaker dust to protect the microphone. | jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:157jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:261jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:365另5处 |
ag |
Cleaner Toolbox | jadx/resources/res/layout/et.xml:21jadx/resources/res/layout-v26/et.xml:21jadx/resources/res/layout-v28/et.xml:21另15处 |
ak |
%1$d apps | jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:108jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:122jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:212另13处 |
am |
Battery | jadx/sources/SGnFzhbOgGdqGzKE/XdzFYQaBOhSNtdCAdNRbhVksHnL.java:53jadx/sources/SGnFzhbOgGdqGzKE/XdzFYQaBOhSNtdCAdNRbhVksHnL.java:66jadx/sources/SGnFzhbOgGdqGzKE/XdzFYQaBOhSNtdCAdNRbhVksHnL.java:93另9处 |
bm |
Charging | jadx/sources/SGnFzhbOgGdqGzKE/XdzFYQaBOhSNtdCAdNRbhVksHnL.java:54jadx/sources/SGnFzhbOgGdqGzKE/XdzFYQaBOhSNtdCAdNRbhVksHnL.java:94jadx/resources/res/layout/er.xml:80另7处 |
br |
Clean | jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:93jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:147jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:152另31处 |
d2 |
Compress | jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:162jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:266jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:370另5处 |
eo |
View the phone battery consumption recently! | jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:129jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:233jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:337另5处 |
ep |
Found %1$s junk files that need cleaning! | jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:85jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:189jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:293另5处 |
eq |
View the running status of %1$s in the background! | jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:109jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:213jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:317另5处 |
er |
Scan the phone and protect your phone from potential risk | jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:136jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:240jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:344另5处 |
ev |
Scan the app and protect your phone from potential threats. | jadx/sources/KURsaxMaHgRwKwnEMzSNGxuBOCdleRMI/XdzFYQaBOhSNtdCAdNRbhVksHnL.java:72jadx/sources/KURsaxMaHgRwKwnEMzSNGxuBOCdleRMI/XdzFYQaBOhSNtdCAdNRbhVksHnL.java:151 |
ew |
Installed successfully | jadx/sources/KURsaxMaHgRwKwnEMzSNGxuBOCdleRMI/XdzFYQaBOhSNtdCAdNRbhVksHnL.java:71jadx/sources/KURsaxMaHgRwKwnEMzSNGxuBOCdleRMI/XdzFYQaBOhSNtdCAdNRbhVksHnL.java:150jadx/resources/res/layout/ep.xml:45另6处 |
ff |
Low | jadx/sources/SGnFzhbOgGdqGzKE/XdzFYQaBOhSNtdCAdNRbhVksHnL.java:67jadx/sources/SGnFzhbOgGdqGzKE/XdzFYQaBOhSNtdCAdNRbhVksHnL.java:107 |
ie |
NaN | jadx/resources/res/layout/er.xml:94jadx/resources/res/layout-v31/er.xml:59jadx/resources/res/layout-v26/er.xml:77另5处 |
j9 |
Optimize | jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:115jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:131jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:219另13处 |
jg |
%1$d%% | jadx/sources/SGnFzhbOgGdqGzKE/XdzFYQaBOhSNtdCAdNRbhVksHnL.java:58jadx/sources/SGnFzhbOgGdqGzKE/XdzFYQaBOhSNtdCAdNRbhVksHnL.java:71jadx/sources/SGnFzhbOgGdqGzKE/XdzFYQaBOhSNtdCAdNRbhVksHnL.java:98另2处 |
jw |
Power | jadx/sources/SGnFzhbOgGdqGzKE/XdzFYQaBOhSNtdCAdNRbhVksHnL.java:55jadx/sources/SGnFzhbOgGdqGzKE/XdzFYQaBOhSNtdCAdNRbhVksHnL.java:68jadx/sources/SGnFzhbOgGdqGzKE/XdzFYQaBOhSNtdCAdNRbhVksHnL.java:95另10处 |
jy |
%1$d day(s) | jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:142jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:246jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:350另5处 |
jz |
reached %1$s | jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:102jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:206jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:310另5处 |
kv |
scan | jadx/sources/KURsaxMaHgRwKwnEMzSNGxuBOCdleRMI/XdzFYQaBOhSNtdCAdNRbhVksHnL.java:74jadx/sources/KURsaxMaHgRwKwnEMzSNGxuBOCdleRMI/XdzFYQaBOhSNtdCAdNRbhVksHnL.java:153jadx/resources/res/layout/ep.xml:73另7处 |
kx |
Scan Now | jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:136jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:240jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:344另5处 |
lu |
Time | jadx/sources/SGnFzhbOgGdqGzKE/XdzFYQaBOhSNtdCAdNRbhVksHnL.java:126 |
m1 |
Clean up files from your device! | jadx/sources/KURsaxMaHgRwKwnEMzSNGxuBOCdleRMI/XdzFYQaBOhSNtdCAdNRbhVksHnL.java:112jadx/sources/KURsaxMaHgRwKwnEMzSNGxuBOCdleRMI/XdzFYQaBOhSNtdCAdNRbhVksHnL.java:191jadx/resources/res/layout-v26/ep.xml:56另2处 |
m2 |
Clean up %1$s of residual junk files for more space. | jadx/sources/KURsaxMaHgRwKwnEMzSNGxuBOCdleRMI/XdzFYQaBOhSNtdCAdNRbhVksHnL.java:102jadx/sources/KURsaxMaHgRwKwnEMzSNGxuBOCdleRMI/XdzFYQaBOhSNtdCAdNRbhVksHnL.java:181 |
m7 |
Uninstalled successfully | jadx/sources/KURsaxMaHgRwKwnEMzSNGxuBOCdleRMI/XdzFYQaBOhSNtdCAdNRbhVksHnL.java:95jadx/sources/KURsaxMaHgRwKwnEMzSNGxuBOCdleRMI/XdzFYQaBOhSNtdCAdNRbhVksHnL.java:174 |
ma |
View | jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:115jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:131jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:219另21处 |
其他语言/地区原文#
下表为本批实际取得的资源覆盖;不把只有 SDK 本地化的目录计算成业务通知翻译。default(默认)已在上表完整列出。
原有代码锚点 A#
| 编号 | 证明内容 | 本地源位置 | 核验 |
|---|---|---|---|
| A1 | 39 个广告场景枚举 | jadx/sources/CqbUWqyjq/XdzFYQaBOhSNtdCAdNRbhVksHnL.java:130–207 |
已回读 |
| A2 | 广告配置解析及启动开关回退 | jadx/sources/EzIqjciSWNXpSGJxtSqdVjLDpPRtLsosrOEpBJ/XdzFYQaBOhSNtdCAdNRbhVksHnL.java:103–177 |
已回读 |
| A3 | 归因回调 | jadx/sources/uHSaOdVHJixLfdoZakqCwnOBOIQ/xSwLaWBYjkPSypE.java:540–610 |
已回读 |
| A4 | 通知默认数值及远端覆盖 | jadx/sources/qkAtNSinzDarTSFdOhAxBuorqxzCxVfOg/sbReiPtQZmAYvXuMtojgqCoWVWHCUcySzKPM.java:24–91 |
已回读 |
| A5 | 业务推送/Activity 开关默认关闭 | jadx/sources/OMjrFSsXzyxOwOtQbqiqSRCVMJiWrEcLhoJcZAtonrVZd/XdzFYQaBOhSNtdCAdNRbhVksHnL.java:17–26 |
已回读 |
| A6 | 功能计数及环境门禁 | jadx/sources/AoSom/RhxuBPGxYykmPgqvlHVDkVOkMxhxTLzdnjwfnIGDETOKJbsS.java:233–319 |
已回读 |
| A7 | 前台服务生命周期 | jadx/sources/Sj6g/M0.java:16–44 |
已回读 |
| A8 | Job 100 重新登记 | jadx/sources/t/Sj6g.java:15–34 |
已回读 |
| A9 | 广播父类为空 | jadx/sources/Sj6g/Sj6g.java:8–12 |
已回读 |
| A10 | 提醒业务枚举 | jadx/sources/CqbUWqyjq/AobZYgwIQvCqoayj.java:52–77 |
已回读 |
| A11 | 功能通知正文和目标页 | jadx/sources/EkdlTOKXFYqyMXGEkpWNfOJmPUE/lqyDuXhHWfn.java:80–145 |
已回读 |
| A12 | 提醒间隔与点击区间 | jadx/sources/LHMYaSlPhpABDiTlzEmEKSgCjbaYNAKZtlPBfpJUI/hUNmranEFhWqZzLxyxYvFVjzvXsCXpHryomP.java:48–140 |
已回读 |
| A13 | 常驻 ID/Channel | jadx/sources/NjRumLKeKzoOGplzlLzjAVjMYmAsXUtXLtToLpDAONkrdO/XdzFYQaBOhSNtdCAdNRbhVksHnL.java:13–29 |
已回读 |
本轮补充代码锚点 N#
| 编号 | 证明内容 | 本地源位置 | 核验 |
|---|---|---|---|
| N1 | 窗口请求统计、禁请求期与缓存选择 | jadx/sources/GkufAJmzwWf/xSwLaWBYjkPSypE.java:52–140 |
已回读 |
| N2 | 恢复常规反编译遗漏的禁请求时间更新 | analysis/simple/GkufAJmzwWf/xSwLaWBYjkPSypE.java:65–108 |
已回读 |
| N3 | Calendar毫秒值进入数据更新函数 | jadx/sources/AMKYQYuBzlogjdRzWzlWVNLaZgVzRvxpARt/RhxuBPGxYykmPgqvlHVDkVOkMxhxTLzdnjwfnIGDETOKJbsS.java:119–125 |
已回读 |
| N4 | NoRequestTime实际setter | jadx/sources/SYkeQUFUxouUSrgGmFUloUjRHaxCczCiWZjOjzryjAbeCXv/XdzFYQaBOhSNtdCAdNRbhVksHnL.java:88–91 |
已回读 |
| N5 | load开始时记录请求,而非show成功计数 | jadx/sources/vFfWvBzJXvDvbSlbyChiCJjqCgRwfpeVl/AobZYgwIQvCqoayj.java:69–91 |
已回读 |
| N6 | 近期请求记录SQL删除条件 | jadx/sources/wshTxWbEmiE/wXwzvYwYOIcUQVwIXPyletjeKDZdGgDjnEzXWhPgF.java:43–65 |
已回读 |
六专题导航#
| 专题 | 用途 |
|---|---|
| 产品功能与商业化分析 | 业务任务、页面、广告与来源链 |
| 权限与后台机制拆包报告 | 声明、调用、实际授权和功能边界 |
| 保活与拉活反编译代码册 | 机制图、主链步骤、代码片段与控制流修复 |
| 拉活通知规则与文案全量报告 | 触发、状态、频控、动作、候选和多语言全文 |
| 样本与证据索引 | 版本、split、签名、定位与证据范围 |
| 真机动态验证与后台存活报告 | 真实操作、后台矩阵、观察与未执行项 |