A tool that allows normal apps to call system APIs directly with adb or root privileges through a Java process started with app_process, enabling more efficient and reliable system-level operations.
- v13.6.0
- Published at
- May 25, 2025
- 33,603
- Stars
- 5,132,690
- Download
- Synced at
- 9m ago
Latest release
v13.6.0May 25, 2025, 01:19 PMREADME
Project Overview
Shizuku is a tool that allows normal apps to call system APIs directly with adb or root privileges. Traditional root apps operate by executing commands in the su shell, which has major disadvantages: extremely slow (multiple process creations), highly unreliable (text processing), and limited to available commands. Shizuku takes a completely different approach. It guides users to run a Shizuku server process first, using root or ADB. When the app starts, it receives a Binder reference to the Shizuku server. Shizuku acts as a middleman — receiving requests from the app, forwarding them to the system server, and returning the results. To the app, it feels almost identical to using system APIs directly.
Key Features
- Call system APIs with higher permissions: Enables normal apps to perform system-level operations with adb or root privileges
- Binder IPC proxy mechanism: Acts as a middleman between the app process and system_server process
- Supports both ADB and Root startup methods: Works even without root (requires ADB)
- Two implementations: Shizuku (standard Android app) and Sui (Magisk module)
- Supports Android 6.0+ devices
- Maven dependency available:
dev.rikka.shizuku:api - MIT licensed, open-source and free
Target Audience
- Android developers who need system-level API access
- Power users who want to run system-level operations via ADB privileges (not root)
- Developers building apps that integrate with Shizuku (e.g., Ice Box, Black Hole)
Quick Start
- Visit the User Guide & Download page for installation instructions
- Install the Shizuku manager app on your Android device
- Start the Shizuku service via ADB (non-root) or with root privileges
- Integrate the Shizuku API into your app to call system-level functions
Core Advantages
- No root required to call system APIs (ADB is sufficient)
- Much faster, more reliable, and feature-rich compared to traditional su shell methods
- For app developers, the experience is nearly identical to calling system APIs directly
- Apache 2.0 licensed (with specific restrictions)
System Requirements
- OS: Android 6.0+
- Non-root devices require ADB to start the service (needs to be re-run after each reboot)
- Root is not required, but basic Android debugging knowledge is helpful
Notes
- ADB permissions have limitations and vary across system versions
- Android 9 and above restrict the use of hidden APIs
- On Android 8.0 (API 26), ADB lacks
registerUidObserverpermission; processes may not automatically receive the Binder - When using
transactRemotedirectly, be aware of API differences across Android versions - License restrictions: you may not use
manager/src/main/res/mipmap*/ic_launcher*.png(except for displaying Shizuku itself), nor may you name your appShizukuor usemoe.shizuku.privileged.apias the application ID