roro2239 /Stellar

Another Shizuku impl

★ 1,840⑂ 72👁 8⑃ 8● 101▤ 12◈ 0
KotlinMPL-2.0Created 2025-11-12
1,840
stars
+12
72
forks
8
watchers
8
prs
101
issues
12
releases
0
discussions

README

Stellar
一个基于 Shizuku 的深度定制分支,让应用通过 ADB 或 Root 权限使用系统级 API






---
官方交流群组:


Language: English | 中文



 项目简介

Stellar 是 Shizuku 的深度定制版本,专为开发者提供更灵活、更强大的特权 API 框架。通过 ADB 无线调试或 Root 权限启动服务后,应用程序可以调用需要系统级权限的 API,而无需应用本身拥有 Root 权限。

Tip:我们鼓励贡献者为稳定性高的代码提交 PR,而不是仅将修改保留在自己的 Fork 仓库中。
 核心特性

Stellar 相比原版 Shizuku 进行了以下核心改进:

 权限系统增强

- 全新权限架构 - 摒弃单一权限模式,引入精细化的多维度权限管理体系
- 分级权限控制:
  - stellar - 核心 API 访问权限,授予基础服务调用能力
  - follow_stellar_startup - 服务伴随启动权限,实现应用与 Stellar 服务的生命周期绑定
- 智能权限回调 - 增强回调机制,客户端可精准感知授权类型(永久授权/一次性授权)
- 完整权限管理 API - 提供全套权限查询、申请、撤销接口,满足复杂业务场景需求

 启动与服务优化

- 开机启动 - 应用可尝试通过开机广播、无障碍权限和 Root 权限实现开机自启,还可预热以便于无网启动
- 服务伴随启动 - 应用可注册为 Stellar 服务的伴随进程,实现服务启动时自动唤醒
- 双进程互守 - 可开启守护进程,Stellar 服务与守护进程相互监测异常关闭并重新启动

 架构重构

- 服务层重构 - 重新设计核心服务架构,优化模块间通信机制,提升整体性能与响应速度
- UserService 重写 - 全面重构用户服务层,优化服务架构设计,提升代码可维护性与扩展性
- Shizuku 兼容性修复 - 修复原 Shizuku 遗留的已知问题,增强框架稳定性

 UI/UX 改进

Stellar 对用户界面进行了全面重构,带来更现代、更直观的使用体验:

- 全新授权管理界面 - 采用 Material Design 3 设计语言,打造简洁优雅的授权管理中心
- 授权页面焕新 - 重新设计授权交互流程,操作更加流畅自然
- 权限可视化展示 - 授权页清晰呈现各项细分权限,用户一目了然
- 应用列表优化 - 改进已授权应用列表,权限状态一览无余
- 引导流程升级 - 重新设计启动引导页面,新用户上手更轻松

 与 Shizuku 的主要区别

 移除的功能
- rish - 移除 Shizuku 内置的 root shell 工具
- Sui - 移除了 API 对 Zygisk-Sui 的支持

 新增的功能
- 跟随启动机制 - 应用可跟随 Stellar 服务自动启动
- 细分权限系统 - 支持多种权限类型的精细化管理
- 权限回调增强 - 支持一次性授权感知
- 降权激活 - Root 启动后可降权到 Shell 用户运行,提高安全性
- 联发科支持:修复了原版 v13.6.0 中一个导致 Shizuku 无法在联发科设备上运行的关键漏洞
- 应用内更新:可从 Github 获取更新详情并在应用内更新 Stellar
- TCP功能:在连接 WiFi 时启动或预热 Stellar,下次无 WiFi 重启前可免 WiFi 启动

 重新启用的功能

Stellar 重新启用了 Shizuku 最新版本中已标记为弃用的功能:

- newProcess() API - 直接创建特权进程的方法,Shizuku 已弃用但 Stellar 保留支持
- 运行时权限授予/撤销 - 通过 grantRuntimePermission() 和 revokeRuntimePermission() 为其他应用授予或撤销 Android 运行时权限

这些功能在某些场景下仍然非常实用,Stellar 选择继续支持以提供更完整的 API。

 架构优化
- 100% Kotlin 代码
- 精简模块结构
- 规范化命名

 Shizuku 兼容层

Stellar 内置了 Shizuku 兼容层,允许使用 Shizuku API 的应用无需修改代码即可使用 Stellar 服务。

 工作原理

兼容层通过以下方式实现无缝兼容:

1. 客户端兼容 - ShizukuProvider 接收 Stellar 服务发送的 Binder,并通过 ShizukuCompat 管理连接状态
2. 服务端拦截 - ShizukuServiceIntercept 实现完整的 IShizukuService 接口,将 Shizuku API 调用转发到 Stellar 服务
3. 权限映射 - 自动将 Shizuku 权限请求映射到 Stellar 的 shizuku 权限

 支持的 API

兼容层支持 Shizuku 的核心 API:

- pingBinder() / getVersion() / getUid() - 服务状态查询
- checkSelfPermission() / requestPermission() - 权限管理
- newProcess() - 创建特权进程
- addUserService() / removeUserService() - 用户服务管理
- transactRemote() - Binder 事务转发

 启用/禁用

Shizuku 兼容层默认启用。如需禁用,可在 Stellar 管理器的设置页面中关闭「Shizuku 兼容层」开关。

 注意事项

- 兼容层会自动拒绝来自 Shizuku Manager 的请求,避免冲突
- 使用 Shizuku API 的应用需要在 AndroidManifest.xml 中配置 ShizukuProvider

 降权激活

降权激活功能允许以 Root 权限启动 Stellar 服务后,自动降权到 Shell 用户(uid=2000)运行,提高安全性。

 启用方式

在 Stellar 管理器的设置页面中,开启「降权激活」开关即可。

 工作原理

启用降权激活后,启动流程如下:


su (root) → libchid.so 2000 → libstellar.so --apk=...


1. 使用 Root 权限执行 libchid.so
2. libchid.so 将进程身份切换到 uid=2000(Shell 用户)
3. 以 Shell 身份执行 libstellar.so 启动服务

 注意事项

- 降权激活仅在 Root 启动模式下生效
- ADB 启动模式本身就是 uid=2000,无需降权
- 降权后服务将失去 Root 特有的能力(如写入系统属性、访问受保护目录等)

 快速开始

 集成 Stellar 到你的应用

查看完整的集成指南和 API 文档:

- API 集成指南 - 完整的集成步骤、API 参考和代码示例
- 从 Shizuku 迁移 

Top issues

Latest release

v1.1 v1.1(101000) 2026-08-22
特殊调整
- compileSdk 和 targetSdk 升至 37

 修复

- 修复在 Android 17 设备上无法获取授权应用列表的问题
- 修复在 Android 17 设备上重启 Stellar 可能需要重新为应用授权的问题
- 修复其他更新 Android 17 的设备可能出现的部分问题

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON