news 2026/7/1 2:33:21

Shizuku:不 Root 也能调系统 API

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Shizuku:不 Root 也能调系统 API

文章目录

  • Shizuku:不 Root 也能调系统 API
    • 1、它在解决什么问题
    • 2、开发者怎么接入
    • 3、需要注意的几个点
    • 4、适合什么场景

Shizuku:不 Root 也能调系统 API

Shizuku 在 GitHub 上拿到了 26,807 Star。

这个工具解决了一个 Android 开发里的老问题:想调系统级 API,要么要求 Root 权限,要么自己写 su 命令去拼。两种方式都不省心。

1、它在解决什么问题

Android 应用想调系统 API,走的是 Binder IPC 机制。应用进程拿到系统服务的 Binder,就能和 PackageManagerService 这类服务通信。框架帮你封装好了权限检查,正常情况下没什么问题。

但如果你需要的权限超出了普通应用的范围,事情就麻烦了。最常见的方式是通过 su shell 执行命令,比如用pm enable/disable去启停组件。

这种方式的毛病很明显:

  • 每次调用都要创建新进程,速度慢
  • 需要解析命令行文本输出,容易出错
  • 能做的事受限于可用命令
  • ADB 本身有足够权限时,应用仍然要求 Root

Shizuku 换了一条路。它让用户先以 Root 或 ADB 身份启动一个后台进程(Shizuku Server),然后把这个进程的 Binder 交给应用。应用发请求给 Shizuku Server,Server 再转发给系统服务,结果原路返回。

对应用来说,调用方式和直接用系统 API 几乎没有区别。

2、开发者怎么接入

Shizuku 提供了一套 API,接入方式和其他 Android 库差别不大。核心类是rikka.shizuku.server.ShizukuService里的transactRemote方法,以及moe.shizuku.api.ShizukuBinderWrapper

从 pre-v11 版本迁移的话,已有应用仍然能正常运行,官方也提供了迁移指南。

3、需要注意的几个点

ADB 权限在不同 Android 版本上不一样。调用 API 之前可以用ShizukuService#getUid检查当前是 Root 还是 ADB 模式,用ShizukuService#checkPermission确认权限是否够用。

Android 9 开始限制了隐藏 API 的访问,普通应用需要用额外手段绕过,比如配合 AndroidHiddenApiBypass 这类库。

Android 8.0 上 ADB 缺少registerUidObserver权限。如果你的进程不是由 Activity 启动的,建议通过启动一个透明 Activity 来触发 Binder 的发送。

直接使用transactRemote时要注意,不同 Android 版本的 API 可能有差异。android.app.IActivityManager在 API 26 及以上才有 AIDL 形式,IActivityManager$Stub也只在 API 26 存在。

4、适合什么场景

需要调用系统 API 但不想依赖 Root 的应用,比如管理组件启停、读取系统设置、操作应用权限。对开发者来说,Shizuku 把权限提升这一层封装好了,接入成本低,运行时不需要用户每次都授权 Root。

如果你在做 Android 工具类应用,又希望兼容非 Root 设备,Shizuku 是目前比较成熟的方案。

Android 工具类应用,又希望兼容非 Root 设备,Shizuku 是目前比较成熟的方案。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/1 2:33:03

LeWorldModel:1GB显存跑通JEPA世界模型,AI预测学习从入门到实践

上周在 GitHub 上看到一个项目,叫 LeWorldModel,短短几天就冲到了 4k star。点进去一看,介绍里写着“基于 JEPA 框架的世界动作模型,1GB 显存可运行”。说实话,看到“世界模型”和“1GB 显存”这两个词放在一起&#x…

作者头像 李华
网站建设 2026/7/1 2:31:23

Memtest86+ 终极指南:3步快速诊断内存故障,保障系统稳定运行

Memtest86 终极指南:3步快速诊断内存故障,保障系统稳定运行 【免费下载链接】memtest86plus Official repo for Memtest86 项目地址: https://gitcode.com/gh_mirrors/me/memtest86plus 当电脑频繁蓝屏、系统无故重启,或是重要数据莫名…

作者头像 李华
网站建设 2026/7/1 2:31:13

KMS智能激活工具:Windows和Office一键永久激活的终极指南

KMS智能激活工具:Windows和Office一键永久激活的终极指南 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统频繁弹出激活提示而烦恼吗?Office文档突然变成…

作者头像 李华
网站建设 2026/7/1 2:28:30

10分钟掌握async-libfuse文件操作:Read/Write/Open实战指南

10分钟掌握async-libfuse文件操作:Read/Write/Open实战指南 【免费下载链接】async-libfuse asyncchronized libfuse in Rust 项目地址: https://gitcode.com/openeuler/async-libfuse 前往项目官网免费下载:https://ar.openeuler.org/ar/ 想要快…

作者头像 李华
网站建设 2026/7/1 2:27:05

能领抓紧领,过期不候。真的领到了8元

宅家周末有点闲,正准备下单咖啡,偶然刷到朋友圈的免费奶茶福利。步骤看着很简单,抱着试试看的心态参与,居然真的成功领到,意外小惊喜~关键是,不止可以点奶茶,什么外卖,购…

作者头像 李华
网站建设 2026/7/1 2:25:25

YOLO-World实战:零样本目标检测,一句话实现开放词汇检测

“用户随便输入一句话就能自动检测”——这听起来像是科幻电影里的场景,但今天,它正在成为现实。如果你还在为每个新检测任务收集数据、标注、训练模型而焦头烂额,那么这篇文章就是为你准备的。传统目标检测,比如经典的YOLO系列&a…

作者头像 李华