结束操作的权限边界 — Shizuku vs Root 能做什么
权限矩阵一览
TaskManager 的结束操作分三档,对应的权限要求不同:
| 操作 | 需要的权限 | 实际条件 |
|---|---|---|
| 结束普通安卓应用 | Shizuku 运行中并已授权 | Shizuku 由无线调试或普通方式启动即可 |
| 结束 Linux 进程 | Shizuku 需由 root 方式启动 | 手机已 root + Shizuku 以 root 方式启动 |
| 调整进程优先级(Nice) | Shizuku 需由 root 方式启动 | 同上 |
为什么有这个区别
安卓应用运行在 u0_a<uid> 这样的普通 Linux 用户下,普通的 Shizuku 授权允许 TaskManager 调用 am force-stop 或 kill 去结束它们。
但系统进程(init、zygote、surfaceflinger 等)运行在 root 用户或 system 用户下,普通 kill 对它们无效——需要 root 权限的 kill -9。TaskManager 只有在 Shizuku 以 root 方式启动时才会放开这个能力。
普通应用的 Force Stop(Shizuku 即可)
这是你最常用的操作。点进进程详情 → Force Stop 按钮:
- 会发送
am force-stop <包名>命令 - 应用的所有进程都会被 kill
- 应用的所有前台服务、后台任务、定时任务都会被终止
- 应用的通知会消失
- 不会清除应用数据(卸载才会清数据)
Force Stop 之后应用不会自动重启,除非有以下情况:
- 它有
BOOT_COMPLETED接收器(只在重启时触发,Force Stop 后不会) - 推送渠道(FCM、厂商通道)把它拉起来
- 系统定时任务把它拉起来
Root 模式下的 Linux 进程操作
当 Shizuku 以 root 方式启动时,TaskManager 会多出这些能力:
- 结束任何 Linux 进程:包括 system_server、media.codec 等系统级进程
- 调整进程优先级(Nice 值):把进程调到 -20(最高优先级)或 19(最低优先级)
强烈建议不要用这些能力去结束系统进程——system_server 被杀等于软重启,轻则重启 UI,重则重启整个系统。
进程优先级(Nice)怎么调
Nice 值范围是 -20 到 19:
| Nice 值 | 含义 |
|---|---|
| -20 | 最高优先级,CPU 时间片最多 |
| 0 | 默认 |
| 10~19 | 低优先级,后台进程用 |
实际场景里调 Nice 的价值很有限——Android 自己的调度器已经做得很好,手动调 Nice 不会让游戏帧率明显提升,反而可能导致后台服务不稳定。
风险提醒
- Force Stop 不等于卸载:应用数据保留,下次打开原样在
- 系统进程结束不掉(非 root 模式):TaskManager 会拒绝或静默失败,不会搞砸系统
- root 模式的 kill -9:真的会杀任何进程,包括 Android 的系统核心——谨慎使用
下一步
知道了权限边界,下面来讲真正动手的步骤。