Thanox 活检解冻(DOL):自动检测启动请求并解冻
DOL 是什么
DOL 是 Detect On Launch(检测到启动请求即解冻) 的缩写,Thanox 内部把它亲切地叫做"活检解冻"。
简单说:
当你从桌面、通知、或其他任何地方点击启动一个被冻结的 app 时,Thanox Framework 层会检测到这个启动请求,先自动解冻该 app,然后让启动流程继续。
你感受到的只是:"哦,这个 app 被冻住了,我点了一下,它就正常打开了"——冻结/解冻在幕后自动完成,你完全没有手动解冻的步骤。
DOL 怎么工作的
Thanox Framework 层 hook 了系统的 ActivityManagerService,监听对被冻结应用的启动请求:
用户点击应用图标 → 系统尝试启动该应用的 Activity
↓
Thanox 检测到:目标应用处于冻结状态
↓
Thanox 调用 setApplicationEnabledSetting(ENABLED) 解冻
↓
启动流程继续 → 应用正常打开
整个过程在 system_server 里同步完成,耗时通常在几十毫秒级别,用户几乎感觉不到延迟。
为新加入的应用自动开启 DOL
Thanox 智能冻结设置里有一个开关叫 "自动打开活检解冻"。它的作用是:
当你把一个新应用加入智能冻结列表时,自动为它开启 DOL。
建议保持这个开关打开。原因:
- 如果不开启 DOL,被 Suspend 冻结的应用点图标只会弹"应用已被管理员限制",你还得去 Thanox 里手动解冻才能用
- 开启后,你在桌面上点一下就打开了,体验和正常 app 没区别
- PM Disable 冻结的应用虽然图标消失了,但从 Thanox 列表点击启动本身就会触发 DOL
PM Disable 和 Suspend 下 DOL 的行为不同
| 冻结方式 | DOL 开启后从哪里点启动 | DOL 开启后的行为 |
|---|---|---|
| PM Disable | 桌面没有图标,只能从 Thanox 列表 / 代理图标 / 快捷方式 | Thanox 自动解冻 → 启动 → 使用完后继续冻住 |
| Suspend | 桌面有灰色图标,点击后弹"应用已被管理员限制" | Thanox 检测到启动请求 → 自动解冻 → 启动 → 使用完后继续冻住 |
PM Disable + 从 Thanox 列表启动,是 Thanox 最推荐的组合。Suspend + DOL 则是给希望保留桌面图标的用户用的。
DOL 的局限性
DOL 不是万能的,以下场景可能绕过或失效:
- 应用不是通过 Activity 启动的(比如通过 Service 或 BroadcastReceiver)——Suspend 方式下被挂起的应用连 Service 和 BroadcastReceiver 都不响应
- 应用本身有强自启动能力(少数顽固应用即使被冻结也能想办法唤起)——此时需要结合后台启动拦截
- 系统版本或 ROM 的特殊实现——极个别 ROM 在某些 Android 版本上可能不支持 DevicePolicyManager 的 suspend API
什么时候可以关掉 DOL
以下场景可以考虑关闭 DOL:
- 家里有小朋友的设备:你希望某些学习/娱乐 app 被冻结后无论如何都打不开,需要你手动去 Thanox 里解冻
- 你对某些应用有极高的安全要求(比如支付 app):每次使用都手动解冻,用完手动冻结
- 你发现某些应用因为 DOL 产生了异常(理论上不会,但极个别场景可能有边界情况)
智能冻结这一章到这里结束。Thanox 另一个很有特色的功能是隐私身份隐匿——可以给指定 app 一套虚拟的身份信息。