跳到正文

Priv Kit 是什么?

Priv Kit 是面向 Android 的应用自有特权运行时。它让单个应用可以通过 Root、ADB、 手动或外部授权器启动、连接并管理自己的 Privileged Server。连接成功后, 应用可以访问 Binder 服务、使用内置文件代理或运行自己的 UserService,业务逻辑仍由 应用自己实现。

大多数应用从 priv-ui 开始,它提供 Compose 授权页面,并处理启动、授权和状态 展示。自定义授权界面可以直接使用更底层的 priv-core

想直接尝试?跳到快速接入

Priv Kit 提供什么

用 Privilege UI 完成常规接入

priv-ui 提供可直接嵌入的授权页面,包含启动状态、无线调试配对、权限请求、 TCP/IP 确认、手动和静默启动。应用可以直接使用这套流程,不必重新实现 这些交互。

用 priv-core 构建自定义界面

priv-core 提供 Root、无线 ADB、静态 TCP、手动和外部授权器所需的启动与连接 API。自定义界面负责权限请求、配对码输入、确认和错误展示,底层流程见 启动方式

通过 Binder 访问服务

Priv Kit 可以按服务名获取系统服务并执行底层 Binder transaction。应用负责提供 服务接口、定义每个 transaction 的调用格式,并处理调用失败。具体用法见 Binder 指南

内置文件代理

基础的绝对路径文件操作可以直接在 Privileged Server 中执行,不需要应用定义 UserService。文件内容通过真实文件描述符传递,目录项通过 pipe 流式返回。 文件代理指南说明了与 java.io.File 一致的返回语义和明确的安全边界。

应用自定义 UserService

如果直接执行 Binder transaction 不方便,应用可以定义自己的 AIDL 接口和特权 实现。Priv Kit 负责启动 UserService、选择进程模式并把 Binder 返回给应用,接口 及其功能由应用自己实现。如何选择嵌入式或独立进程见 UserService 指南

为什么是应用自有运行时?

一个应用拥有一个 Privileged Server,并掌握启动方式、服务端身份、连接状态、断线 恢复和特权功能。跨应用共享服务属于另一种运行时模型。

所有启动方式最终都使用同一套连接流程。连接失败或服务端死亡时,运行时会返回失败, 不会把无法确认的结果当作成功。

从哪里开始

  • 按照快速接入添加 priv-ui 并嵌入授权页面。
  • Privilege UI 中配置自带的前台与静默流程。
  • 使用 priv-core 构建自定义界面时,阅读启动方式
  • 选择文件代理执行基础文件操作、选择 Binder 执行底层 Binder transaction,或选择 UserService 运行应用自定义 AIDL 服务。
  • GitHub 浏览源码或反馈问题。