报告口径本页直接渲染本地报告真源;静态能力、动态观察、推断和线上未验证项不得互相替代。
Swift Clean v1.0.9 样本与证据索引#
文档日期:2026-10-12
核验日期:2026-09-30
对象:Swift Clean-Phone Manager Pro
证据口径:[S1] APK、Manifest、DEX、资源或反编译源码直接可证;[I] 基于多处静态证据的合理判断;[U] 需真机、服务端或线上配置验证。
本轮边界:只做 base + split APK 静态拆包;未操作测试机。evidence/ 中已有动态材料由根任务采集,本报告只建立回查入口,不把它们冒充本轮静态验证。
1. 样本身份#
| 项目 |
结果 |
证据 |
| 实际包名 |
com.swiftclean.phone.managerpro |
[S1] jadx/resources/AndroidManifest.xml:2-14 |
| 初始输入中的近似包名 |
com.swift.clean.phone.managepro 与样本不一致 |
[S1] 样本 Manifest;不能按近似包名外推 |
| 应用标签 |
Swift Clean(资源前含空格) |
[S1] AndroidManifest.xml:80-95、res/values/strings.xml |
| 版本 |
versionName=1.0.9,versionCode=11 |
[S1] AndroidManifest.xml:3-4 |
| SDK |
minSdk=26、targetSdk=36、compileSdk=36 |
[S1] AndroidManifest.xml:5-14 |
| DEX |
4 个:classes.dex–classes4.dex |
[S1] base APK ZIP 条目 |
| ABI / density split |
arm64_v8a、xxhdpi |
[S1] 样本文件名及 split Manifest |
| Application 包装层 |
com.pairip.application.Application |
[S1] AndroidManifest.xml:80-95;具体委托链未完整恢复 [U] |
2. APK 文件、大小与摘要#
| 文件 |
大小 |
SHA-256 |
apk/base.apk |
52,468,878 bytes |
e249f9e259cecd496d4e953e2a1d3cf45a981f4cfe6534357c7b345ee3f6d377 |
apk/split_config.arm64_v8a.apk |
3,454,153 bytes |
78792c2fde84a9e94dbd58938a5dc4181c6258d751017e03138450b683cff671 |
apk/split_config.xxhdpi.apk |
83,486 bytes |
a633b24e094d58c935fba868c604719e6aca92f8af0ab0dc247f1a3558be9dd0 |
签名核验结果 [S1]:v2、v3 有效;v1、v3.1、v4 未使用;Source Stamp 有效。唯一签名证书 SHA-256 为 24dfaec33dda700e680fd86c5c8170882eef58fca0dbfa5d913c6e7aa4d2e12c;Source Stamp 证书 SHA-256 为 3257d599a49d2c961a471ca9843f59d341a405884583fc087df4237b733bbd6d。证书 DN 的开发者字段均为 Unknown,不能据此识别主体 [U]。
3. 拆包方法与完整性#
[S1] 使用工作区 tools/jadx-1.5.5,以 Android Studio JBR 为 Java Runtime,将 base 与两个 split 一次性输入,输出到 jadx/。
[S1] 产物共 28,203 个 Java 文件、3,006 个资源文件。
[S1] JADX 结束码为 3,控制台明确报告 finished with errors, count: 61。
[S1] 对通知总闸、广播、定时通知、FCM、生命周期、通知监听和启动 Provider 等关键失败方法,另以 --decompilation-mode simple --show-bad-code 固化到 jadx-simple/。
[U] 61 个错误并不代表 61 个业务方法全部不可读;也不能保证 simple mode 还原了 Kotlin 控制流的每个细节。报告对 simple mode 证据均保留路径与行号,并避免把可疑分支写成已验证行为。
4. 关键静态证据导航#
4.1 Manifest、组件与权限#
| 主题 |
入口 |
| 包、版本、SDK、29 项权限 |
jadx/resources/AndroidManifest.xml:2-79 |
| 自有页面 |
AndroidManifest.xml:96-206 |
| 通知监听、启动 Provider |
AndroidManifest.xml:234-257 |
| FGS、JobService、FCM、开机/升级接收器 |
AndroidManifest.xml:258-295 |
| Google Mobile Ads 与 Firebase 组件 |
AndroidManifest.xml:299-403 |
| 完整第三方组件 |
AndroidManifest.xml:299 以后;以 Manifest 全文为准 |
自有组件统计 [S1]:25 个 Activity(2 个 exported)、5 个 Service(4 个 exported,其中多个受系统级绑定权限约束)、4 个 Receiver(4 个 exported)、1 个自有启动 Provider;另有 AndroidX FileProvider。全 Manifest 合并后共 101 个 Activity、20 个 Service、19 个 Receiver、11 个 Provider,绝大多数来自广告、Firebase、AndroidX 等依赖。
4.2 产品功能#
| 功能 |
证据 |
| 缓存清理、大文件、截图、相似照片、应用管理、网络流量、设备信息、通知清理、RAM 状态 |
jadx/sources/crown/arithmetic/floor/page/ScanPage.java:155-202 |
| All files access(所有文件访问)门槛 |
MainPage.java:322-341,443-456,494-503 |
| Usage Access(使用情况访问)门槛 |
MainPage.java:443-451,505-516 |
| 应用卸载入口 |
AppListPage.java:220-237 |
| 单 App 缓存大小 |
jadx/sources/tf/i.java:84-127 |
| 单 App 网络用量 |
jadx/sources/tf/f1.java:66-85 |
| 通知拦截与记录 |
NotifyManagerServices.java:51-75、jadx-simple/crown.arithmetic.floor.notify.NotifyManagerServices.java:55-103 |
4.3 保活、后台恢复与拉活#
| 主题 |
证据 |
| 进程启动 Provider |
jadx-simple/crown.arithmetic.floor.cIPhUu.java:63-160 |
| 启动总装配 |
jadx/sources/qf/u.java:57-131 |
| 前台服务启动与 Job 兜底 |
qf/b.java:213-282 |
| Alarm、WorkManager、周期 Job |
qf/b.java:295-346,419-507 |
| FGS 自恢复 |
crown/arithmetic/floor/mowxgu.java:34-121 |
| Boot / package replaced |
crown/arithmetic/floor/weqTnpsB.java:18-35 |
| FCM 高优先级拉活 |
jadx-simple/crown.arithmetic.floor.wSfChcdBg.java:50-254 |
| App 热启动回前台与广告回跳通知 |
jadx-simple/crown.arithmetic.floor.TotalPageObserver.java:69-116,225-365 |
| 通知总闸与频控 |
jadx-simple/a.a.java:503-916 |
| 通知重复展示 |
jadx-simple/qf.w.java:60-151 |
4.4 广告与远程配置#
| 主题 |
证据 |
| TradPlus SDK 初始化 |
jadx/sources/tf/q.java:32-43 |
| 广告位、格式与限制 |
jadx/sources/dg/l.java:40-171 |
| Remote Config 读取与应用 |
jadx/sources/tf/u.java:58-126 |
| RC fetch/realtime listener |
jadx-simple/tf.u.java:221-300、tf/r.java:39-48 |
| 内置广告瀑布兜底 |
jadx/resources/assets/max0.json–max3.json |
| 启动/扫描广告调用点 |
FirstPage.java、ScanPage.java、TpnConfig$FullHelper.java |
4.5 通知资源与多语言#
| 主题 |
证据 |
| Channel、ID、重复间隔 |
PageCellar.java:39-55、qf/t.java:52-86 |
24 个相关 notify_* 字符串(23 个路由 action + 1 个 FCM 内部前缀) |
MainPage.java:97-318、uf/j.java:23-27、jadx-simple/crown.arithmetic.floor.wSfChcdBg.java |
| 英文通知资源 |
jadx/resources/res/values/strings.xml:609-697 |
| 语言声明 |
jadx/resources/res/xml/locales_config.xml:1-11 |
| 8 套资源 |
values、values-ja、values-pt、values-th、values-es、values-zh、values-in、values-vi;每套 89 个 tongzhi_* 键 |
5. simple-mode 补证文件#
以下是普通模式失败或关键控制流不够完整时的补证,不是手工改写源码:
jadx-simple/a.a.java:通知总闸、归因分支与逐场景冷却。
jadx-simple/gd.c.java:系统广播到通知 action 的映射。
jadx-simple/tf.a0.java:4 类定时通知随机候选。
jadx-simple/tf.u.java:Remote Config 初始化与实时监听。
jadx-simple/uf.a.java:解锁通知与未清理天数分支。
jadx-simple/qf.w.java:3.5 秒重复展示逻辑。
jadx-simple/qf.p.java:ID / token 上报重试。
jadx-simple/crown.arithmetic.floor.cIPhUu.java:ContentProvider 启动初始化。
jadx-simple/crown.arithmetic.floor.TotalPageObserver.java:热启动/广告离开后的拉回。
jadx-simple/crown.arithmetic.floor.wSfChcdBg.java:FCM 高优先级本地通知。
jadx-simple/crown.arithmetic.floor.notify.NotifyManagerServices.java:拦截计数召回。
6. 现有动态证据入口(非本轮操作)#
evidence/ 已包含首启、通知权限、All files access、广告、Quick Clean、服务、Job、Alarm、通知和 AppOps 等截图/XML/dumpsys/logcat。建议按下面顺序回查:
- 首启与广告:
first-launch.*、first-launch-ad-end.png、after-first-ad.*。
- 权限:
after-notification-permission.*、all-files-settings.*、all-files-not-granted-return.*。
- 清理链路:
after-quick-clean.*、after-quick-clean-ad.*、quick-clean-ad-end.png。
- 后台状态对比:
services-*、jobs-*、alarms-*、notifications-*、appops-*。
这些文件的设备环境、动作时序和结论由根任务统一说明;本索引不单独把截图/日志内容升级为 [S1]。
7. 未验证项与风险#
[U] Firebase Remote Config、FCM 服务端人群/TTL/发送时刻、广告真实填充网络和线上开关。
[U] OEM、电量优化、待机桶、通知权限拒绝、最近任务划掉与 Force Stop 下的长期存活结果;静态代码只能证明尝试路径。
[U] READ_PHONE_STATE、CLEAR_APP_CACHE、DELETE_CACHE_FILES、GET_PACKAGE_SIZE 等声明是否在目标 Android 版本真正获授或产生效果。
[U] 两个后端 URL 的服务端响应、数据字段解释、留存周期与隐私合规。
[U] PairIP 包装层、混淆反射和 61 个 JADX 错误可能遮蔽少量分支;关键通知/保活方法已用 simple mode 补证,但仍应结合 smali/真机复核高风险结论。