宽表格和代码可左右滑动查看。
Smart Clean Pro v1.2.1 权限与后台机制拆包报告#
精确包名:com.clean.smart.cleanpro;样本及资料日期:2026-10-28,Asia/Shanghai(北京时间)。六专题补充版。
S1=当前APK静态直接证据;S2=工具回读;S3=当前真机观察;I=推断;U=未验证。反编译不是原始源码,内置配置不是线上最终配置。发布状态单独记录于批次入口。
结论#
BackgroundManager建立resident常驻前台服务;BootService的父类登记Job100且回调再次登记;SystemMonitor的广播父类为空。AppMonitor、ChargeMonitor、FuncMonitor各自读通知配置,NotifyListenerService只在特殊访问获准后具备读取第三方通知条件。
本次解锁重启窗口内未见进程/FGS,不代表系统后续永不调度;结束强停又改变了包的stopped状态,不能继续把后续未出现服务算作重启失败。
权限声明、调用及实际授予#
下表完整保留本批Manifest的uses-permission声明;同名不同标签/受版本限制的声明不能直接相加为已获权限数量。运行时仅明确允许通知,未开启文件管理、使用情况、悬浮窗或通知读取等特殊访问;真实工具效果因此未验证。服务上的绑定保护权限与应用获准读取是两回事。
| 权限 | Manifest行 | 本轮用途/边界 |
|---|---|---|
android.permission.WRITE_EXTERNAL_STORAGE |
19 | 旧版存储写入声明;未把此声明当作Android13可任意读写。 |
android.permission.READ_EXTERNAL_STORAGE |
22 | 存储读取声明;是否生效取决于系统与targetSDK,未将声明当作获准。 |
android.permission.MANAGE_EXTERNAL_STORAGE |
24 | 所有文件访问声明;未授权该特殊权限,真实扫描/删除未验证。 |
android.permission.INTERNET |
25 | 网络能力声明;联网业务、广告/配置调用需另核。 |
android.permission.ACCESS_NETWORK_STATE |
26 | 网络能力声明;联网业务、广告/配置调用需另核。 |
android.permission.ACCESS_WIFI_STATE |
27 | 网络能力声明;联网业务、广告/配置调用需另核。 |
android.permission.REQUEST_DELETE_PACKAGES |
28 | 请求系统卸载确认;本轮未执行卸载。 |
android.permission.POST_NOTIFICATIONS |
29 | 展示通知;本轮仅此运行时权限已确认允许。 |
android.permission.CAMERA |
30 | 摄像头/手电筒相关声明;本轮未授予。 |
android.permission.WRITE_SETTINGS |
31 | 修改系统设置的特殊访问声明;本轮未开启。 |
android.permission.PACKAGE_USAGE_STATS |
32 | 使用情况访问;本轮未开启特殊访问,不验证其他App使用数据。 |
android.permission.FOREGROUND_SERVICE_DATA_SYNC |
73 | dataSync类型前台服务声明;未据此外推新版系统长期存活。 |
android.permission.RECEIVE_BOOT_COMPLETED |
74 | 接收开机广播声明;需再看处理函数,空父类不能算已实现拉活。 |
android.permission.FOREGROUND_SERVICE |
75 | 前台服务声明;是否使用以组件、调用及真机证据为准。 |
com.google.android.gms.permission.AD_ID |
76 | 广告/归因生态声明;当前数据采集与出量状态未由权限表证明。 |
android.permission.ACCESS_ADSERVICES_AD_ID |
77 | 广告/归因生态声明;当前数据采集与出量状态未由权限表证明。 |
android.permission.ACCESS_ADSERVICES_ATTRIBUTION |
78 | 广告/归因生态声明;当前数据采集与出量状态未由权限表证明。 |
android.permission.ACCESS_ADSERVICES_TOPICS |
79 | 广告/归因生态声明;当前数据采集与出量状态未由权限表证明。 |
android.permission.WAKE_LOCK |
80 | 唤醒锁权限声明;本批未验证持有时长。 |
com.google.android.c2dm.permission.RECEIVE |
81 | Manifest声明已核对;具体业务调用/运行时效果本轮未逐项闭合。[U] |
android.permission.VIBRATE |
82 | Manifest声明已核对;具体业务调用/运行时效果本轮未逐项闭合。[U] |
com.android.vending.CHECK_LICENSE |
83 | Manifest声明已核对;具体业务调用/运行时效果本轮未逐项闭合。[U] |
com.samsung.android.mapsagent.permission.READ_APP_INFO |
84 | Manifest声明已核对;具体业务调用/运行时效果本轮未逐项闭合。[U] |
com.huawei.appmarket.service.commondata.permission.GET_COMMON_DATA |
85 | Manifest声明已核对;具体业务调用/运行时效果本轮未逐项闭合。[U] |
com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE |
86 | 广告/归因生态声明;当前数据采集与出量状态未由权限表证明。 |
com.clean.smart.cleanpro.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION |
88 | 应用自定义动态广播隔离权限。 |
com.amazon.privacypass.ATTEST |
91 | Manifest声明已核对;具体业务调用/运行时效果本轮未逐项闭合。[U] |
系统API调用点复核#
不是只列Manifest:下表定位系统API/监听回调。业务命名空间与R8合并/工具类分开,后者只证明文件内含API,未把同文件的SDK路径当作业务调用已生效。未命中也不判定不存在,仍需从入口追踪。
| 能力 | 静态调用/候选位置 | 证据边界 |
|---|---|---|
| 所有文件访问检查 | 仅SDK/其他类命中,不作为业务调用证明 | U |
| 文件访问授权入口 | 本轮模式未定位;可能混淆/封装,不能判定不存在 | U |
| 使用情况查询 | .queryUsageStats → UEyE9/hidjUjfk.java:42(含目标引用的合并/工具类,具体调用链需另核) |
S1调用点;运行时U |
| 通知监听/清除 | onNotificationPosted → com/clean/smart/cleanpro/ui/home/more/notify/notification/service/NotifyListenerService.java:41(目标业务命名空间) |
S1调用点;运行时U |
| 卸载请求 | 本轮模式未定位;可能混淆/封装,不能判定不存在 | U |
| 摄像头/手电筒 | .setTorchMode → com/clean/smart/cleanpro/remote/notify/receiver/FlashLightReception.java:33(目标业务命名空间).setTorchMode → com/clean/smart/cleanpro/remote/notify/receiver/FlashLightReception.java:40(目标业务命名空间) |
S1调用点;运行时U |
| 系统设置写入 | 本轮模式未定位;可能混淆/封装,不能判定不存在 | U |
| 悬浮窗检查 | 仅SDK/其他类命中,不作为业务调用证明 | U |
| 媒体库访问 | MediaStore.Files → AeB/nbBfUH0Me3S1Z2X6.java:48(含目标引用的合并/工具类,具体调用链需另核)MediaStore.Files → BJh4RjWrQtfsFP/hidjUjfk.java:53(含目标引用的合并/工具类,具体调用链需另核)MediaStore.Files → KlWkO3wMo19/o6ZozCHDsBRm1Ps.java:105(含目标引用的合并/工具类,具体调用链需另核) |
S1调用点;运行时U |
| 前台服务启动 | 仅SDK/其他类命中,不作为业务调用证明 | U |
| 精确闹钟调用 | 本轮模式未定位;可能混淆/封装,不能判定不存在 | U |
| 唤醒锁 | 仅SDK/其他类命中,不作为业务调用证明 | U |
服务与广播清单#
以下为服务/广播中与业务后台、通知或恢复相关的声明;SDK类也注明为声明,不把第三方SDKJob直接算成自有恢复链。全部精确组件仍见本地Manifest索引。
| 类型/组件 | 动作 | FGS类型/保护权限 | Manifest行 |
|---|---|---|---|
receiver com.clean.smart.cleanpro.remote.notify.receiver.FlashLightReception |
com.clean.smart.cleanpro.WIZ_RESIDENT_LIGHT | 未声明 | 278 |
service com.clean.smart.cleanpro.ui.home.more.notify.notification.service.NotifyListenerService |
android.service.notification.NotificationListenerService | android.permission.BIND_NOTIFICATION_LISTENER_SERVICE | 285 |
service com.clean.smart.cleanpro.core.firebase.FCMService |
com.google.firebase.MESSAGING_EVENT | 未声明 | 294 |
service com.clean.smart.cleanpro.BootService |
无静态过滤器 | android.permission.BIND_JOB_SERVICE | 323 |
service com.clean.smart.cleanpro.BackgroundManager |
无静态过滤器 | dataSync | 330 |
receiver com.clean.smart.cleanpro.SystemMonitor |
android.intent.action.SCREEN_OFF android.intent.action.SCREEN_ON android.intent.action.BOOT_COMPLETED android.intent.action.USER_PRESENT |
未声明 | 333 |
service com.google.firebase.components.ComponentDiscoveryService |
无静态过滤器 | 未声明 | 422 |
receiver com.google.firebase.iid.FirebaseInstanceIdReceiver |
com.google.android.c2dm.intent.RECEIVE | com.google.android.c2dm.permission.SEND | 454 |
service com.google.firebase.messaging.FirebaseMessagingService |
com.google.firebase.MESSAGING_EVENT | 未声明 | 462 |
业务页面中的权限入口#
| 页面 | 实际系统调用/入口 | 来源 |
|---|
调度和恢复机制分别判断#
BackgroundManager 继承 Sj6g.M0,onStartCommand 返回 1,使用前台通知;BootService 继承 JobService 父类,Job 100 的最小延迟 30 秒,回调再次登记自身。[A5][A6]
SystemMonitor 虽有 BOOT/SCREEN/USER_PRESENT 的 Manifest 过滤器,其父类 onReceive 为空;不能认定开机拉活完成。FGS、Job 重新登记、广播注册分开报告。NotifyListenerService / FCMService 的实际权限授予与远端消息未测试;本次重启窗口结果见真机时间线,不能外推长期恢复。[A7][U]
触发—条件—状态表#
| 阶段 | 已追到的调用链 | 关键边界 | 证据 |
|---|---|---|---|
| 广告新路径 | scene → 新SDK配置匹配 → 新控制器 | 匹配后先返回,旧限流不是全部路径共同门禁 | N1 |
| 广告旧路径 | x/y/z → 更新时间 → NoRequestTime → Flow/缓存 | 单位分别为分钟/次数/分钟,存储为毫秒 | N2/N3 |
| 请求记录 | load开始回调 → 时间戳实体 → 内存/DB | 不是show次数,不填写固定每日展示量 | N4 |
| 后台主链 | FGS与Job自登记、空广播分别判断 | Boot声明不能替代空处理函数 | 原A5–A7 |
| 事件召回 | 来源开关 → 电池/功能门禁 → 业务渲染 | 电池阈值和频控分支与完整候选池分开 | 原A2/A4/A8/A9 |
测试设备授权快照#
快照时间:2026-10-28T16:23:39+08:00。null/None表示本次输出没有该项或不适用,不解释为已拒绝;AppOps无显式记录也不解释为已授权。
| 类型 | 字段 | 本次值 |
|---|---|---|
| 运行时权限 | POST_NOTIFICATIONS | True |
| 运行时权限 | READ_EXTERNAL_STORAGE | None |
| 运行时权限 | WRITE_EXTERNAL_STORAGE | None |
| 运行时权限 | READ_MEDIA_IMAGES | None |
| 运行时权限 | READ_MEDIA_VIDEO | None |
| 运行时权限 | READ_MEDIA_AUDIO | None |
| 运行时权限 | CAMERA | False |
| 运行时权限 | ACCESS_FINE_LOCATION | None |
| 特殊访问 | MANAGE_EXTERNAL_STORAGE | NO_EXPLICIT_OPERATION |
| 特殊访问 | GET_USAGE_STATS | NO_EXPLICIT_OPERATION |
| 特殊访问 | SYSTEM_ALERT_WINDOW | NO_EXPLICIT_OPERATION |
| 特殊访问 | WRITE_SETTINGS | NO_EXPLICIT_OPERATION |
| 通知读取 | notification_listener_enabled | False |
系统限制与验证方法#
本轮短时Home/划卡存活与强停结果见真机专题;启动一个Job、注册Receiver、返回START_STICKY均不构成长期成功率。低内存杀进程、确认进入Doze、跨日调度和生产FCM仍需独立事件与时间窗。特殊权限只解释其具体功能用途,不把通知权限泛化为清理必需。
原有代码锚点 A#
| 编号 | 证明内容 | 本地源位置 | 核验 |
|---|---|---|---|
| A1 | 40 个场景枚举 | jadx/sources/tUQDt8j04CEH/IbY.java:135–214 |
已回读 |
| A2 | 通知默认及解析 | jadx/sources/dATg47yjXzfxGVx/o6ZozCHDsBRm1Ps.java:20–78 |
已回读 |
| A3 | AppsFlyer 来源回调 | jadx/sources/H9yD3oN9zJO/hidjUjfk.java:451–500 |
已回读 |
| A4 | 通知模型的初始开关 | jadx/sources/wNL/OBt2HT7oc3leoDw.java:16–35 |
已回读 |
| A5 | 前台服务父类 | jadx/sources/Sj6g/M0.java:15–44 |
已回读 |
| A6 | Job 重登记 | jadx/sources/t/Sj6g.java:13–32 |
已回读 |
| A7 | 广播父类为空 | jadx/sources/Sj6g/Sj6g.java:8–12 |
已回读 |
| A8 | 电池阈值、门禁和展示 | jadx/sources/Amykru/IbY.java:27–117 |
已回读 |
| A9 | 功能通知模板 | jadx/sources/TJaxTnvP0/IbY.java:50–150 |
已回读 |
| A10 | 常驻 ID/Channel | jadx/sources/NThAjtnw9yZfZ6Wn/IbY.java:14–31 |
已回读 |
| A11 | 渠道、构建与通知权限 | jadx/sources/MjVI2azZ7KfLjB8/IbY.java:46–118 |
已回读 |
本轮补充代码锚点 N#
| 编号 | 证明内容 | 本地源位置 | 核验 |
|---|---|---|---|
| N1 | 新SDK场景分支先于旧限流 | jadx/sources/vCm/tJg8PpO6QYeKwvhmT.java:61–80 |
已回读 |
| N2 | 旧窗口限流及被恢复的时间更新 | analysis/simple/vCm/tJg8PpO6QYeKwvhmT.java:75–185 |
已回读 |
| N3 | R8合并回调中的Calendar写回 | jadx/sources/com/moloco/sdk/xenoss/sdkdevkit/android/adrenderer/internal/IbY.java:184–194 |
已回读 |
| N4 | load回调记录请求时间戳 | jadx/sources/vCm/IbY.java:93–100 |
已回读 |
| N5 | 旧路径NoRequestTime实际setter | jadx/sources/VeVHWQ3s3IfV29I1/hidjUjfk.java:12–18 |
已回读 |
六专题导航#
| 专题 | 用途 |
|---|---|
| 产品功能与商业化分析 | 业务任务、页面、广告与来源链 |
| 权限与后台机制拆包报告 | 声明、调用、实际授权和功能边界 |
| 保活与拉活反编译代码册 | 机制图、主链步骤、代码片段与控制流修复 |
| 拉活通知规则与文案全量报告 | 触发、状态、频控、动作、候选和多语言全文 |
| 样本与证据索引 | 版本、split、签名、定位与证据范围 |
| 真机动态验证与后台存活报告 | 真实操作、后台矩阵、观察与未执行项 |