RikkaApps

Shizuku

RikkaApps

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 PM
Downloads slow? Switch the source anytime above

README

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

  1. Visit the User Guide & Download page for installation instructions
  2. Install the Shizuku manager app on your Android device
  3. Start the Shizuku service via ADB (non-root) or with root privileges
  4. 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 registerUidObserver permission; processes may not automatically receive the Binder
  • When using transactRemote directly, 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 app Shizuku or use moe.shizuku.privileged.api as the application ID

Release history

Sort