Stellar
1.1 · GitHub
More about this app
Another Shizuku implementation with autostart, TCP mode and a simple terminal (can run commands automatically on startup)
Stellar
A deeply customized fork of Shizuku that lets apps access system-level APIs via ADB or Root
Official Community:
(A Telegram group may be provided in the future)
Language: English | 中文
Overview
Stellar is a deeply customized fork of Shizuku, designed to give developers a more flexible and powerful privileged API framework. Once the service is started via ADB wireless debugging or Root, apps can call APIs that require system-level permissions — without needing Root themselves.
Tip:We encourage contributors to submit Pull Requests for stable, high-quality changes rather than keeping modifications solely in their own forked repositories.
Key Features
Stellar introduces the following core improvements over the original Shizuku:
Enhanced Permission System
- Brand-new permission architecture — ditches the single-permission model in favor of a granular, multi-dimensional permission management system
- Tiered permission control:
stellar— core API access, grants the ability to call basic service functionsfollow_stellar_startup— startup-follow permission, binds an app's lifecycle to the Stellar service
- Smart permission callbacks — enhanced callback mechanism lets clients know exactly what kind of grant they received (permanent vs. one-time)
- Complete permission management API — full set of query, request, and revoke interfaces for complex business scenarios
Startup & Service Optimizations
- Boot startup — apps can attempt to auto-start at boot via boot broadcasts, accessibility service, or Root; supports pre-warming for offline startup
- Follow-startup — apps can register as companion processes of the Stellar service, waking up automatically when the service starts
- Dual-process watchdog — an optional daemon process lets Stellar and the daemon monitor each other and restart on abnormal termination
Architecture Refactoring
- Service layer rebuilt — core service architecture redesigned with optimized inter-module communication for better performance and responsiveness
- UserService rewritten — user service layer fully refactored for better maintainability and extensibility
- Shizuku compatibility fixes — known issues inherited from upstream Shizuku have been patched for greater stability
UI/UX Improvements
Stellar's interface has been completely overhauled for a more modern, intuitive experience:
- New authorization management UI — built with Material Design 3, offering a clean and elegant permission control center
- Refreshed authorization flow — redesigned interaction makes granting permissions smoother and more natural
- Visual permission breakdown — the authorization screen clearly displays each individual permission
- Improved app list — authorized apps at a glance with permission status
- Upgraded onboarding — redesigned setup guide helps new users get started faster
Key Differences from Shizuku
Removed Features
- rish — the built-in root shell tool from Shizuku has been removed
- Sui — API support for Zygisk-Sui has been dropped
New Features
- Follow-startup mechanism — apps can auto-launch alongside the Stellar service
- Granular permission system — fine-grained control over multiple permission types
- Enhanced permission callbacks — one-time grant awareness
- Privilege downgrade — after starting via Root, Stellar can drop to the Shell user for improved security
- MediaTek support — fixes a critical bug in upstream v13.6.0 that prevented Shizuku from running on MediaTek devices
- In-app updates — fetch update details from GitHub and update Stellar without leaving the app
- TCP capability — start or pre-warm Stellar while connected to Wi-Fi, enabling Wi-Fi-free startup on the next boot before Wi-Fi connects
Re-enabled Features
Stellar brings back features that were deprecated in recent Shizuku releases:
newProcess()API — the direct privileged process creation method that Shizuku deprecated but Stellar continues to support- Runtime permission grant/revoke — grant or revoke Android runtime permissions for other apps via
grantRuntimePermission()andrevokeRuntimePermission()
These remain genuinely useful in certain scenarios, and Stellar keeps them available for a more complete API surface.
Architecture Optimizations
- 100% Kotlin codebase
- Streamlined module structure
- Standardized naming conventions
Shizuku Compatibility Layer
Stellar ships with a built-in Shizuku compatibility layer, so apps written against the Shizuku API work with Stellar without any code changes.
How It Works
The compatibility layer achieves seamless compatibility through:
- Client-side compatibility —
ShizukuProviderreceives the Binder from the Stellar service and manages connection state viaShizukuCompat - Server-side interception —
ShizukuServiceInterceptimplements the fullIShizukuServiceinterface, forwarding Shizuku API calls to the Stellar service - Permission mapping — Shizuku permission requests are automatically mapped to Stellar's
shizukupermission
Supported APIs
The compatibility layer covers Shizuku's core APIs:
pingBinder()/getVersion()/getUid()— service status queriescheckSelfPermission()/requestPermission()— permission managementnewProcess()— privileged process creationaddUserService()/removeUserService()— user service managementtransactRemote()— Binder transaction forwarding
Enable / Disable
The Shizuku compatibility layer is enabled by default. You can turn it off in the Stellar Manager's settings page under "Shizuku Compatibility Layer."
Notes
- The compatibility layer automatically rejects requests from Shizuku Manager to avoid conflicts
- Apps using the Shizuku API need
ShizukuProviderconfigured in theirAndroidManifest.xml
Privilege Downgrade
The privilege downgrade feature lets Stellar start with Root, then automatically drop to the Shell user (uid=2000) for improved security.
How to Enable
Toggle on "Privilege Downgrade" in the Stellar Manager's settings page.
How It Works
With privilege downgrade enabled, the startup flow is:
su (root) → libchid.so 2000 → libstellar.so --apk=...
- Execute
libchid.sowith Root libchid.soswitches the process identity to uid=2000 (Shell user)libstellar.sostarts the service as Shell
Notes
- Privilege downgrade only takes effect in Root startup mode
- ADB startup mode already runs as uid=2000, so no downgrade is needed
- After downgrading, the service loses Root-only capabilities (e.g., writing system properties, accessing protected directories)
Quick Start
Integrating Stellar into Your App
See the full integration guide and API documentation:
- API Integration Guide — complete integration steps, API reference, and code examples
- Migrating from Shizuku — detailed migration steps and API comparison
Basic Usage
- Add the JitPack dependency:
com.github.roro2239:Stellar-API:latest.release - Configure
StellarProviderin your AndroidManifest - Initialize Stellar and request permissions
- Use Stellar APIs to perform privileged operations
See the API Integration Guide for detailed steps
Credits & License
Credits
This project is based on Shizuku, developed by RikkaApps. Huge thanks to the original authors for their outstanding work.
License
The modifications in this project are licensed under the Mozilla Public License 2.0.
The original Shizuku code retains its Apache License 2.0.
| Component | License |
|---|---|
| Stellar modifications | Mozilla Public License 2.0 |
| Shizuku original code | Apache License 2.0 |
Contributing
Issues and pull requests are welcome. Before submitting code, please ensure:
- Code style follows project conventions (Kotlin)
- Necessary comments and documentation are included
- All features pass testing
Contact
- GitHub Issues: Submit an issue
- Project homepage: RORO2239/Stellar
Related Links
How Shizuku is used
Can run arbitrary shell commands, read and set system properties, call system binders and host user services via `Runtime.exec`
This is an AI-assisted analysis of Shizuku-related usages in the app's public source code. It is best effort, so it may not catch every single usage.
How this app uses Shizuku
Stellar acts as a Shizuku compatible server, so authorized Shizuku client apps get privileged execution through it.
- Run arbitrary shell commands: a Shizuku app can start any command it requests in a privileged shell process and read its output, wait for it, or stop it through Shizuku.
- Read and change system properties: a Shizuku app can read any system property value and set property values through Shizuku.
- Call system services directly: a Shizuku app can send a direct binder transaction to a system service binder through Shizuku, with the server identity applied.
- Run privileged app code: a Shizuku app can start its own background service component inside the privileged process and communicate with it through Shizuku, including interactive shell sessions with terminal handling.
Android APIs or commands used
Runtime.execandroid.os.SystemProperties.getandroid.os.SystemProperties.setIBinder.transact
Changelog
What's new for version 1.1
特殊调整
- compileSdk 和 targetSdk 升至 37
修复
- 修复在 Android 17 设备上无法获取授权应用列表的问题
- 修复在 Android 17 设备上重启 Stellar 可能需要重新为应用授权的问题
- 修复其他更新 Android 17 的设备可能出现的部分问题
Permissions
13 permissions requested