挂起 / 隐藏 / 禁用:三种"让应用不可用"的方式
OwnDroid 有三种让应用"看不到"或"用不了"的方式——它们的效果、可恢复性和原理完全不同。选对一种才能达到你想要的管控力度。
三种方式对比
| 特性 | 挂起(Suspend) | 隐藏(Hide) | 禁用计量数据 |
|---|---|---|---|
| 启动器图标 | 仍在 | 消失 | 仍在 |
| 能启动吗 | 点了没反应(被拦截) | 找不到,无法启动 | 能启动,能跑 WiFi,移动数据用不了 |
| 后台服务 | 仍在运行 | 仍在运行 | 仍在运行 |
| 占用资源 | 仍占用 | 仍占用 | 仍占用 |
| 恢复方式 | OwnDroid 里取消挂起 | OwnDroid 里取消隐藏 | OwnDroid 里取消禁用计量数据 |
| 应用能否自恢复 | ❌ | ❌ | ❌ |
| Android 版本 | 7.0+ | 全部 | 9.0+ |
挂起(Suspend)
最常用、最强力的应用管控方式。Device Owner 调用 DevicePolicyManager 的 setPackagesSuspended() 后,被挂起的应用:
- 启动器图标还在,但点击后直接被系统拦截——应用不启动,屏幕闪一下就回到启动器
- 最近任务列表里也看不到
- 后台服务正常运行——闹钟、后台下载、推送通知都不受影响
- 应用自己无法自恢复——必须 Device Owner 取消挂起
适合场景:暂时不想让自己/孩子打开某个 App(游戏、短视频、社交媒体),但不想影响它的后台推送。GitLab 上那个 GrapheneOS 自我管控方案就是把 VPN App、防火墙 App 挂起(不影响后台运行),同时配合「禁用用户控制」防止自己取消挂起。
隐藏(Hide)
应用从启动器、最近任务、系统设置的应用列表里完全消失。比挂起更狠——用户连应用在哪都找不到。
适合场景:预装的系统 App 里不想让用户看到的、或者某些隐蔽运行的工具。
注意:隐藏不等于停止运行——应用的后台服务、广播接收器仍在工作。
禁用计量数据
仅限 Android 9.0+。Device Owner 可以禁用指定应用的移动数据——该应用能正常用 WiFi,但用不了 4G/5G。
适合场景:某些应用只允许在 WiFi 下使用(比如视频流媒体、应用商店),移动数据下跑会耗大流量。
禁用用户控制(Disable User Control)
Android 11+ 的额外手段——Device Owner 调用 setUserControlDisabled() 后,被禁用用户控制的应用:
- 用户无法在系统设置里对该应用做任何操作(无法清除数据、无法撤销权限、无法停用、无法禁用后台)
- 用户无法从系统设置里启动该应用(但可以从 OwnDroid 里启动)
- 配合挂起使用时,需要先禁用用户控制 → 再挂起 → 再禁止卸载,形成不可逆的管控链
建议的组合策略
对关键管控对象(比如防火墙 App、家长控制 App):
- 阻止卸载——不让它被删掉
- 禁用用户控制——不让它被设置里的权限影响
- 挂起(如果是临时不希望打开界面)——但后台继续运行
- 应用锁定密码——防止自己打开 OwnDroid 取消以上设置