Storage Manager v1.0.5 权限与后台机制拆包报告
Storage Manager v1.0.5 权限与后台机制拆包报告返回竞品库
报告口径本页直接渲染本地报告真源;静态能力、动态观察、推断和线上未验证项不得互相替代。

Storage Manager v1.0.5 权限与后台机制拆包报告#

文档日期:2026-10-14
本文区分“Manifest 声明”“代码用途”“真机实际授予”,不把声明权限写成已经调用成功。

一、结论先行#

  1. 高影响权限集中在所有文件访问、Usage Access、通知和前台服务。 文件清理与文件管理依赖 MANAGE_EXTERNAL_STORAGE;应用管理依赖 PACKAGE_USAGE_STATS;保活/提醒依赖通知和 specialUse FGS。(S1)
  2. 首启只实际完成了通知授权。 All Files Access 被拒绝;存储读写与电话状态 AppOp 为 ignore;未授予 Usage Access。(D1)
  3. 后台核心不是 WorkManager 定时唤醒,而是常驻前台服务。 LongRunningService 在首启后使用 ID 1001 进入前台并返回 START_STICKY;60 秒循环负责本地提醒资格检查。(S1/D1)
  4. 重启和远程拉活均存在静态入口。 BOOT_COMPLETED/LOCKED_BOOT_COMPLETED 可启动服务,高优先级 FCM data 也可启动服务;本轮未重启、未发 FCM,真实成功率未知。(S1/U)
  5. 划卡不等于强停。 Samsung Android 13 上最近任务划掉后服务仍在;系统 Force Stop 后服务和通知都消失,30 秒未自行恢复。(D1)

二、权限清单#

权限 类型 代码/产品用途 本轮状态 风险与边界
INTERNET 普通 广告、Remote Config、FCM、归因/分析、隐私网页 随安装授予 网络数据内容未抓包
ACCESS_NETWORK_STATE 普通 广告/网络可用性判断 随安装授予 低风险
ACCESS_WIFI_STATE 普通 网络状态/SDK 随安装授予 未定位一方精确调用目的
AD_ID 普通/广告标识 广告归因与个性化 声明 实际可用性受系统设置影响
ACCESS_ADSERVICES_AD_ID/ATTRIBUTION/TOPICS Privacy Sandbox 新广告标识、归因与 Topics 声明 是否实际调用未验证
POST_NOTIFICATIONS 运行时 常驻 FGS、普通提醒、FCM 首启允许 用户拒绝会影响常驻通知与提醒路径
FOREGROUND_SERVICE 普通 启动 LongRunningService D1 正在运行 需持续可见通知
FOREGROUND_SERVICE_SPECIAL_USE 普通/受限用途 API 34+ 的 specialUse FGS S1 合规性取决于真实核心用途与 Play 审核
RECEIVE_BOOT_COMPLETED 普通 开机/锁定开机后启动 FGS S1 未重启验证
WAKE_LOCK 普通 SDK/后台任务保持运行 AppOp 有短时使用 未证明长期持锁
VIBRATE 普通 高重要度提醒 Channel 声明 Channel 代码配置零值震动数组;OEM 实际表现不同
MANAGE_EXTERNAL_STORAGE 特殊访问 全盘文件扫描、清理和文件管理 拒绝 高风险;需系统设置页授权
READ_EXTERNAL_STORAGE 旧版运行时 Android 旧版本读取文件 AppOp ignore target 36 下主要由新模型/所有文件访问决定
WRITE_EXTERNAL_STORAGE 旧版运行时 Android 旧版本写/删文件 AppOp ignore 新 Android 已弱化/废弃
PACKAGE_USAGE_STATS AppOps 特殊访问 应用使用情况、App Manager/RAM 展示 未授予 需用户在 Usage Access 页面授权
REQUEST_DELETE_PACKAGES 普通/系统确认 发起应用卸载 声明 仍需系统确认,不能静默卸载
READ_PHONE_STATE 运行时 SDK/设备信息潜在用途 AppOp ignore 一方必要性不明确,需隐私披露复核
CHECK_LICENSE Play Google Play License 声明 与分发/完整性相关
Install Referrer bind 服务绑定 获取安装来源/自然量编码 S1 影响广告与通知分流
FCM RECEIVE 推送 接收 FCM S1 服务端策略未验证
App 自定义 signature permission 签名级 保护动态非导出 Receiver 随应用签名 低风险

原始声明:jadx/resources/AndroidManifest.xml:15-26,84-97、evidence/aapt-permissions.txt。

三、权限调用与页面#

3.1 通知#

  • 首启直接触发 Android 13 通知权限弹窗。(D1)
  • Permission 页面文案为 Enable notifications to receive suggestions that matter,把通知用于“建议”,与常驻服务和拉活提醒共同使用。(D1)
  • 设置页提供总通知、Clean Reminder、Battery Reminder 三个本地开关,默认均为 true。(S1,NotificationSettingActivity.java:38-104)

3.2 所有文件访问#

  • 点击 Clean Now 后展示自定义解释,再引导系统 All Files Access。(D1)
  • 本轮选择 DENY,未验证系统授权后的全量扫描、清理和文件管理。(D1/U)
  • 权限文案把全盘访问描述为“manage files of your device”,需要与真实数据处理和隐私政策一致。(I)

3.3 Usage Access 与卸载#

  • App Manager/Junk 的应用缓存统计代码检查 Usage Access,并可跳转系统设置。(S1)
  • App Uninstall 依赖系统卸载流程,REQUEST_DELETE_PACKAGES 只允许发起,不等于无确认删除。(S1)

四、一方组件#

类型 组件 exported 用途
Launcher Activity SplashFirstEmptyActivity true 桌面启动入口
Deep link/跳转 Activity SplashActivity true 启动编排、广告、通知路由
业务 Activities Main、Junk、Large、Battery、AppManage、FileManager、Compression、Settings 等 false 产品功能
FCM Service FirebaseMsgService false FCM data/notification payload
FGS LongRunningService false 常驻服务、通知调度、状态监听
Receiver StartReceiver false Boot / Locked Boot
Receiver NotifyDeleteReceiver false 用户删除提醒后取消重复展示 Job
FileProvider androidx.core.content.FileProvider false 分享本地文件 URI
WorkManager Service SystemJobService true + BIND_JOB_SERVICE AndroidX Work 框架组件

Manifest 还包含大量广告 SDK Activity/Provider/Service;这些是第三方组件,不等于一方业务逐一调用。

五、前台服务与保活#

5.1 服务声明#

<service
    android:name="com.sweepeeer.manager.ssstorage.service.LongRunningService"
    android:exported="false"
    android:foregroundServiceType="specialUse">
    <property
        android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE"
        android:value="Clean up junk files in the background" />
</service>

证据:AndroidManifest.xml:218-225。(S1)

5.2 启动与运行#

  • 统一入口 w3.a.q() 先检查静态存活标志和 notification_is_open,API 26+ 调 startForegroundService()。(S1)
  • onCreate() 立即以 ID 1001 进入前台;API 34+ 使用 specialUse type bit。(S1)
  • onStartCommand() 重发常驻通知并返回 1,即 Android 的 START_STICKY。(S1)
  • 服务初始化屏幕、方向、前后台、卸载、电量/充电监听,并启动 60 秒通知资格循环。(S1)
  • 真机启动后 START_FOREGROUND 为 running,服务 isForeground=true。(D1)

5.3 onTaskRemoved#

最近任务被移除后,服务只延迟 500ms 再做一次通知资格检查;代码没有在该回调中显式重新启动自身。服务能在本轮划卡后继续存在,主要因为 FGS 未被系统杀死,而不是 onTaskRemoved 完成了重启。(S1/D1)

5.4 Force Stop 边界#

  • 3 秒:无 PID、无 LongRunningService、无活动 ID 1001,包为 stopped=true。(D1)
  • 30 秒:仍未恢复;系统保留 Channel 属正常配置持久化,不代表进程复活。(D1)
  • 开机广播、FCM 和 START_STICKY 都不能据此声称能突破用户 Force Stop。(结论边界)

六、拉活入口#

入口 静态行为 动态状态
App 正常启动 启动 FGS + ID 1001 已验证 D1
BOOT_COMPLETED 调统一启动器 未重启 U
LOCKED_BOOT_COMPLETED 调统一启动器 未重启 U
Huawei STARTUP_COMPLETED Manifest 声明,但 Receiver 代码未处理 静态无效/保留 S1
高优先级 FCM data w3.a.q(this,"data_start") 未注入 U
FCM notification payload 发布服务器标题/正文的简单通知 未注入 U
START_STICKY 服务被系统回收后允许系统尝试重建 未主动杀进程测试 U
通知点击 SplashActivity 读取 scan_type 等参数并路由 常驻通知可见,点击路由未逐项测试

七、WorkManager、Job 与 Alarm#

  • 包内包含 WorkManager SystemJobService,但一方初始化代码只查找并取消名为 periodic_notification_work 的旧唯一任务,未找到当前版本重新创建该周期任务的直接一方代码。(S1)
  • 真机 Job 列表只观察到该包的 Google DataTransport Job,用于 SDK 事件传输,不能当作一方通知保活 Job。(D1)
  • 真机未观察到该包 AlarmManager 定时器。(D1)
  • 本地普通提醒由前台服务内协程每 60 秒检查,不依赖系统 Alarm。(S1)

八、后台监控#

服务启动约 2 秒后初始化:

  • 屏幕方向每 1 秒检查;
  • 动态监听 SCREEN_ON / SCREEN_OFF / USER_PRESENT;
  • 记录首次启动时间;
  • 启动通知日计数重置与 60 秒调度;
  • 监听外部 App 卸载;
  • 动态监听 BATTERY_CHANGED / ACTION_POWER_CONNECTED / ACTION_POWER_DISCONNECTED / BATTERY_LOW / BATTERY_OKAY;
  • 每 2 小时记录一次内部事件 A,异常时 3 分钟后尝试恢复该协程。(S1)

这说明常驻服务同时承担召回、状态监听和埋点周期任务,而不只是“清理后台垃圾”。(I)

九、风险与待验证#

  1. specialUse FGS 的声明理由与实际长期承担通知/监控/埋点是否满足 Google Play 政策,需结合 Play Console 声明和现行审核要求单独核验。(U)
  2. READ_PHONE_STATE 对清理工具的一方必要性未明确,需抓包/调用栈确认。(U)
  3. 隐私政策为 HTTP、用户协议 URL 为空,属于可见合规质量问题。(S1)
  4. Boot 恢复、FCM data 拉起、系统低内存杀进程后的 START_STICKY 恢复均未动态测试。(U)
  5. 未授予 All Files Access 与 Usage Access,清理和应用管理的完整权限调用链未动态验收。(U)
竞品拆包报告库 · 逆向结论按证据等级阅读