宽表格和代码可左右滑动查看。
Ace Cleaner v1.0.0.2 权限与后台机制拆包报告#
精确包名:com.ke.ace.cleaner;样本及资料日期:2026-10-28,Asia/Shanghai(北京时间)。六专题补充版。
S1=当前APK静态直接证据;S2=工具回读;S3=当前真机观察;I=推断;U=未验证。反编译不是原始源码,内置配置不是线上最终配置。发布状态单独记录于批次入口。
结论#
Boot/覆盖安装/Alarm/周期Work → 恢复辅助器(含audit门禁) → 常驻19001;临时FGS19002在特定恢复路径使用并15秒后停止。Job1419与7000分别有不同延迟/来源,不是一个统一精确周期。
通知点击是另一条回流链:Mernten处理原通知 → finishAffinity → 延迟200ms启动Appnsio并保留extras → 主页处理notify_action_id → 功能分发/权限 → 工具页。系统强停与普通任务移除边界按真机矩阵表达。
权限声明、调用及实际授予#
下表完整保留本批Manifest的uses-permission声明;同名不同标签/受版本限制的声明不能直接相加为已获权限数量。运行时仅明确允许通知,未开启文件管理、使用情况、悬浮窗或通知读取等特殊访问;真实工具效果因此未验证。服务上的绑定保护权限与应用获准读取是两回事。
| 权限 | Manifest行 | 本轮用途/边界 |
|---|---|---|
android.permission.MANAGE_EXTERNAL_STORAGE |
15 | 所有文件访问声明;未授权该特殊权限,真实扫描/删除未验证。 |
android.permission.WRITE_EXTERNAL_STORAGE |
16 | 旧版存储写入声明;未把此声明当作Android13可任意读写。 |
android.permission.FOREGROUND_SERVICE |
17 | 前台服务声明;是否使用以组件、调用及真机证据为准。 |
android.permission.REQUEST_DELETE_PACKAGES |
18 | 请求系统卸载确认;本轮未执行卸载。 |
android.permission.INTERNET |
19 | 网络能力声明;联网业务、广告/配置调用需另核。 |
android.permission.SYSTEM_ALERT_WINDOW |
20 | 悬浮窗特殊访问声明;本轮未开启。 |
android.permission.READ_MEDIA_IMAGES |
21 | 图片读取声明;本轮未授予。 |
android.permission.ACCESS_NETWORK_STATE |
22 | 网络能力声明;联网业务、广告/配置调用需另核。 |
android.permission.QUERY_ALL_PACKAGES |
23 | 应用可见性声明;不等于已核实完整安装列表或所有处理效果。 |
android.permission.POST_NOTIFICATIONS |
24 | 展示通知;本轮仅此运行时权限已确认允许。 |
android.permission.READ_MEDIA_VIDEO |
25 | 视频读取声明;本轮未授予。 |
android.permission.FOREGROUND_SERVICE_SPECIAL_USE |
26 | specialUse类型前台服务声明;需按服务清单/系统条件解释。 |
android.permission.READ_EXTERNAL_STORAGE |
28 | 存储读取声明;是否生效取决于系统与targetSDK,未将声明当作获准。 |
com.google.android.gms.permission.AD_ID |
30 | 广告/归因生态声明;当前数据采集与出量状态未由权限表证明。 |
android.permission.PACKAGE_USAGE_STATS |
31 | 使用情况访问;本轮未开启特殊访问,不验证其他App使用数据。 |
android.permission.ACCESS_WIFI_STATE |
32 | 网络能力声明;联网业务、广告/配置调用需另核。 |
android.permission.GET_PACKAGE_SIZE |
33 | Manifest声明已核对;具体业务调用/运行时效果本轮未逐项闭合。[U] |
android.permission.READ_MEDIA_AUDIO |
34 | 音频读取声明;本轮未授予。 |
android.permission.RECEIVE_BOOT_COMPLETED |
77 | 接收开机广播声明;需再看处理函数,空父类不能算已实现拉活。 |
android.permission.AD_ID |
78 | 广告/归因生态声明;当前数据采集与出量状态未由权限表证明。 |
android.permission.ACCESS_ADSERVICES_AD_ID |
79 | 广告/归因生态声明;当前数据采集与出量状态未由权限表证明。 |
android.permission.ACCESS_ADSERVICES_ATTRIBUTION |
80 | 广告/归因生态声明;当前数据采集与出量状态未由权限表证明。 |
android.permission.ACCESS_ADSERVICES_TOPICS |
81 | 广告/归因生态声明;当前数据采集与出量状态未由权限表证明。 |
com.samsung.android.mapsagent.permission.READ_APP_INFO |
82 | Manifest声明已核对;具体业务调用/运行时效果本轮未逐项闭合。[U] |
com.huawei.appmarket.service.commondata.permission.GET_COMMON_DATA |
83 | Manifest声明已核对;具体业务调用/运行时效果本轮未逐项闭合。[U] |
android.permission.WAKE_LOCK |
84 | 唤醒锁权限声明;本批未验证持有时长。 |
com.google.android.c2dm.permission.RECEIVE |
85 | Manifest声明已核对;具体业务调用/运行时效果本轮未逐项闭合。[U] |
com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE |
86 | 广告/归因生态声明;当前数据采集与出量状态未由权限表证明。 |
android.permission.ACCESS_ADSERVICES_CUSTOM_AUDIENCE |
87 | 广告/归因生态声明;当前数据采集与出量状态未由权限表证明。 |
com.ke.ace.cleaner.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION |
89 | 应用自定义动态广播隔离权限。 |
com.sec.android.provider.badge.permission.READ |
92 | 桌面/角标兼容性声明;不代表本轮实际使用。 |
com.sec.android.provider.badge.permission.WRITE |
93 | 桌面/角标兼容性声明;不代表本轮实际使用。 |
com.htc.launcher.permission.READ_SETTINGS |
94 | 桌面/角标兼容性声明;不代表本轮实际使用。 |
com.htc.launcher.permission.UPDATE_SHORTCUT |
95 | 桌面/角标兼容性声明;不代表本轮实际使用。 |
com.sonyericsson.home.permission.BROADCAST_BADGE |
96 | 桌面/角标兼容性声明;不代表本轮实际使用。 |
com.sonymobile.home.permission.PROVIDER_INSERT_BADGE |
97 | 桌面/角标兼容性声明;不代表本轮实际使用。 |
com.anddoes.launcher.permission.UPDATE_COUNT |
98 | 桌面/角标兼容性声明;不代表本轮实际使用。 |
com.majeur.launcher.permission.UPDATE_BADGE |
99 | 桌面/角标兼容性声明;不代表本轮实际使用。 |
com.huawei.android.launcher.permission.CHANGE_BADGE |
100 | 桌面/角标兼容性声明;不代表本轮实际使用。 |
com.huawei.android.launcher.permission.READ_SETTINGS |
101 | 桌面/角标兼容性声明;不代表本轮实际使用。 |
com.huawei.android.launcher.permission.WRITE_SETTINGS |
102 | 桌面/角标兼容性声明;不代表本轮实际使用。 |
android.permission.READ_APP_BADGE |
103 | 桌面/角标兼容性声明;不代表本轮实际使用。 |
com.oppo.launcher.permission.READ_SETTINGS |
104 | 桌面/角标兼容性声明;不代表本轮实际使用。 |
com.oppo.launcher.permission.WRITE_SETTINGS |
105 | 桌面/角标兼容性声明;不代表本轮实际使用。 |
me.everything.badger.permission.BADGE_COUNT_READ |
106 | 桌面/角标兼容性声明;不代表本轮实际使用。 |
me.everything.badger.permission.BADGE_COUNT_WRITE |
107 | 桌面/角标兼容性声明;不代表本轮实际使用。 |
com.android.vending.CHECK_LICENSE |
1137 | Manifest声明已核对;具体业务调用/运行时效果本轮未逐项闭合。[U] |
系统API调用点复核#
不是只列Manifest:下表定位系统API/监听回调。业务命名空间与R8合并/工具类分开,后者只证明文件内含API,未把同文件的SDK路径当作业务调用已生效。未命中也不判定不存在,仍需从入口追踪。
| 能力 | 静态调用/候选位置 | 证据边界 |
|---|---|---|
| 所有文件访问检查 | 仅SDK/其他类命中,不作为业务调用证明 | U |
| 文件访问授权入口 | 仅SDK/其他类命中,不作为业务调用证明 | U |
| 使用情况查询 | 仅SDK/其他类命中,不作为业务调用证明 | U |
| 通知监听/清除 | onNotificationPosted → discmil/humcrap/coulatio/teasehica/wasexpir/UnimmablService.java:319(目标业务命名空间) |
S1调用点;运行时U |
| 卸载请求 | android.intent.action.DELETE → discmil/humcrap/coulatio/teasehica/capminat/sessindar/irriurren/Illntic.java:123(目标业务命名空间)android.intent.action.DELETE → HHNMH/NMnnH.java:161(含目标引用的合并/工具类,具体调用链需另核) |
S1调用点;运行时U |
| 摄像头/手电筒 | 本轮模式未定位;可能混淆/封装,不能判定不存在 | U |
| 系统设置写入 | 仅SDK/其他类命中,不作为业务调用证明 | U |
| 悬浮窗检查 | 仅SDK/其他类命中,不作为业务调用证明 | U |
| 媒体库访问 | MediaStore.Video → HHnNN/NnMHH.java:441(含目标引用的合并/工具类,具体调用链需另核)MediaStore.Images → HHnNN/NnMHM.java:313(含目标引用的合并/工具类,具体调用链需另核)MediaStore.Files → nHHNM/HMn.java:76(含目标引用的合并/工具类,具体调用链需另核) |
S1调用点;运行时U |
| 前台服务启动 | 仅SDK/其他类命中,不作为业务调用证明 | U |
| 精确闹钟调用 | 仅SDK/其他类命中,不作为业务调用证明 | U |
| 唤醒锁 | 仅SDK/其他类命中,不作为业务调用证明 | U |
服务与广播清单#
以下为服务/广播中与业务后台、通知或恢复相关的声明;SDK类也注明为声明,不把第三方SDKJob直接算成自有恢复链。全部精确组件仍见本地Manifest索引。
| 类型/组件 | 动作 | FGS类型/保护权限 | Manifest行 |
|---|---|---|---|
service discmil.humcrap.coulatio.teasehica.wasexpir.UnimmablService |
android.service.notification.NotificationListenerService | android.permission.BIND_NOTIFICATION_LISTENER_SERVICE | 196 |
service com.trustlook.sdk.job.TlJobService |
无静态过滤器 | android.permission.BIND_JOB_SERVICE | 370 |
service com.acetool.antivirus.notify.service.MyFirebaseMessagingService |
com.google.firebase.MESSAGING_EVENT | 未声明 | 373 |
service com.acetool.antivirus.notify.service.NotificationService |
无静态过滤器 | specialUse | 380 |
service com.acetool.antivirus.notify.service.TemporaryKeepAliveService |
无静态过滤器 | specialUse | 388 |
receiver com.acetool.antivirus.notify.service.KeepAliveAlarmReceiver |
无静态过滤器 | 未声明 | 396 |
receiver com.acetool.antivirus.notify.service.UserBootReceiver |
android.intent.action.BOOT_COMPLETED android.intent.action.MY_PACKAGE_REPLACED |
未声明 | 399 |
service com.acetool.antivirus.notify.service.UserBootJobService |
无静态过滤器 | android.permission.BIND_JOB_SERVICE | 407 |
service com.google.firebase.components.ComponentDiscoveryService |
无静态过滤器 | 未声明 | 490 |
receiver com.google.firebase.iid.FirebaseInstanceIdReceiver |
com.google.android.c2dm.intent.RECEIVE | com.google.android.c2dm.permission.SEND | 543 |
service com.google.firebase.messaging.FirebaseMessagingService |
com.google.firebase.MESSAGING_EVENT | 未声明 | 554 |
业务页面中的权限入口#
| 页面 | 实际系统调用/入口 | 来源 |
|---|
调度和恢复机制分别判断#
ActivityLifecycleCallbacks 在onActivityResumed尝试绑定/启动NotificationService,退到后台调用辅助逻辑。常驻服务有通知权限与开关、审查门禁;常驻19001可受上限/配置控制。[A3][A4]
UserBootReceiver:BOOT_COMPLETED登记持久化Job1419;MY_PACKAGE_REPLACED登记快速Job7000(5秒最小延迟、10秒deadline、约30秒冷却)。UserBootJobService在门禁通过后尝试恢复主服务,快速路径经TemporaryKeepAliveService,后者ID19002并在15秒后停止自身。[A5][A6][A7]
KeepAliveAlarmReceiver进入Job登记;Alarm使用setAndAllowWhileIdle,以elapsedRealtime计时,缺失/过期时回退约15分钟,PendingIntent requestCode1419。此为尝试恢复链,Android限制、Doze及强停仍可阻止,本次重启窗口未见进程/FGS;没有据此推导长期恢复率。[A8]
另有WorkManager 15分钟周期登记。与Alarm/Job不能简单相加为每分钟唤醒次数,未证实全部路径在当前配置都启用。[A9]
触发—条件—状态表#
| 阶段 | 已追到的调用链 | 关键边界 | 证据 |
|---|---|---|---|
| 通知点击 | Mernten → 200ms → Appnsio(extras) → 主页 | 中转埋点/消除原通知/功能跳转分层 | N2/N3 |
| 权限分发 | functionId → nHMNH → 特殊访问/媒体权限 → 工具 | 不同功能的权限门禁不统一 | N1 |
| 日期状态 | TimeZone本地午夜 → 每ID/全局日键 | 换键取默认;不是UTC或滚动24小时 | N4/N5 |
| 配额配置 | Pair.first/second → 工厂字段 → 展示门禁 | 默认5/900不能单独等同生产每日策略 | N6/原A10/A11 |
| 恢复主链 | Boot/Job/Alarm/Work → audit → FGS | 尝试链路与Samsung实际存活分开 | 原A3–A9 |
测试设备授权快照#
快照时间:2026-10-28T16:23:41+08:00。null/None表示本次输出没有该项或不适用,不解释为已拒绝;AppOps无显式记录也不解释为已授权。
| 类型 | 字段 | 本次值 |
|---|---|---|
| 运行时权限 | POST_NOTIFICATIONS | True |
| 运行时权限 | READ_EXTERNAL_STORAGE | False |
| 运行时权限 | WRITE_EXTERNAL_STORAGE | False |
| 运行时权限 | READ_MEDIA_IMAGES | False |
| 运行时权限 | READ_MEDIA_VIDEO | False |
| 运行时权限 | READ_MEDIA_AUDIO | False |
| 运行时权限 | CAMERA | None |
| 运行时权限 | ACCESS_FINE_LOCATION | None |
| 特殊访问 | MANAGE_EXTERNAL_STORAGE | NO_EXPLICIT_OPERATION |
| 特殊访问 | GET_USAGE_STATS | NO_EXPLICIT_OPERATION |
| 特殊访问 | SYSTEM_ALERT_WINDOW | default |
| 特殊访问 | WRITE_SETTINGS | NO_EXPLICIT_OPERATION |
| 通知读取 | notification_listener_enabled | False |
系统限制与验证方法#
本轮短时Home/划卡存活与强停结果见真机专题;启动一个Job、注册Receiver、返回START_STICKY均不构成长期成功率。低内存杀进程、确认进入Doze、跨日调度和生产FCM仍需独立事件与时间窗。特殊权限只解释其具体功能用途,不把通知权限泛化为清理必需。
原有代码锚点 A#
| 编号 | 证明内容 | 本地源位置 | 核验 |
|---|---|---|---|
| A1 | Referrer成功保存 | jadx/sources/nMMHH/nHHN.java:193–208 |
已回读 |
| A2 | Referrer组合、Adjust来源变化 | jadx/sources/nMMHH/nHHN.java:426–530 |
已回读 |
| A3 | 前台/恢复与audit门禁 | jadx/sources/nNnHM/NMMMM.java:307–346 |
已回读 |
| A4 | 常驻布局和importance | jadx/sources/NNNHM/nHNM.java:45–101 |
已回读 |
| A5 | 开机/覆盖安装入口 | jadx/sources/com/acetool/antivirus/notify/service/UserBootReceiver.java:32–55 |
已回读 |
| A6 | Job1419/7000和恢复 | jadx/sources/com/acetool/antivirus/notify/service/UserBootJobService.java:106–178 |
已回读 |
| A7 | 临时FGS19002与15秒停止 | jadx/sources/com/acetool/antivirus/notify/service/TemporaryKeepAliveService.java:80–125 |
已回读 |
| A8 | Alarm1419和15分钟回退 | jadx/sources/nHHN/NMnnN.java:36–74 |
已回读 |
| A9 | 15分钟周期Work | jadx/sources/MMMHH/HNM.java:75–100 |
已回读 |
| A10 | 业务通知展示门禁 | jadx/sources/NNNHM/nHMMn.java:621–701 |
已回读 |
| A11 | 每类配额/间隔回退 | jadx/sources/nnHnn/nHMN.java:25–68 |
已回读 |
| A12 | 业务通知ID与点击参数 | jadx/sources/NHHMn/NNNNn.java:876–904 |
已回读 |
本轮补充代码锚点 N#
| 编号 | 证明内容 | 本地源位置 | 核验 |
|---|---|---|---|
| N1 | 功能编号、目标页面及权限分发 | jadx/sources/NNNHM/nHMNH.java:280–383 |
已回读 |
| N2 | 通知点击200ms中转与extras保留 | jadx/sources/discmil/humcrap/coulatio/teasehica/capminat/attgitud/MerntenActivity.java:49–114 |
已回读 |
| N3 | 主页读取actionId交给功能处理 | jadx/sources/discmil/humcrap/coulatio/teasehica/capminat/restrfec/FavshioActivity.java:144–149 |
已回读 |
| N4 | 每ID/全局日计数及最后时间存储 | jadx/sources/MNHHH/NMnnN.java:36–97 |
已回读 |
| N5 | 按TimeZone偏移计算本地午夜 | jadx/sources/nHHNn/MMMHN.java:12–16 |
已回读 |
| N6 | Pair配置读取代理 | jadx/sources/NNNHM/MHNn.java:54–56 |
已回读 |
| N7 | 不同候选池、动作与候选文案注册 | jadx/sources/NHHMn/NNNNn.java:753–811 |
已回读 |
| N8 | 主页/FCM时间先写回,再安排异步通知构建 | jadx/sources/NNNHM/nHMMn.java:718–740 |
已回读 |
六专题导航#
| 专题 | 用途 |
|---|---|
| 产品功能与商业化分析 | 业务任务、页面、广告与来源链 |
| 权限与后台机制拆包报告 | 声明、调用、实际授权和功能边界 |
| 保活与拉活反编译代码册 | 机制图、主链步骤、代码片段与控制流修复 |
| 拉活通知规则与文案全量报告 | 触发、状态、频控、动作、候选和多语言全文 |
| 样本与证据索引 | 版本、split、签名、定位与证据范围 |
| 真机动态验证与后台存活报告 | 真实操作、后台矩阵、观察与未执行项 |