An Android app that allows other apps to use system-level APIs that require ADB/root privileges.
This is a FORK of Shizuku. If you are looking for the original version, please visit the RikkaApps/Shizuku repository.
Get the latest stable or beta version.
All versions are distributed via GitHub Releases.
This version of Shizuku includes some extra features over the original version, such as:
- More robust "start on boot": waits for a Wi-Fi connection before starting the Shizuku service
- TCP mode: (i.e., the
adb tcpipcommand) once Shizuku successfully starts with Wi-Fi after a reboot, you can stop/restart Shizuku without a Wi-Fi connection! - Watchdog service: automatically restarts Shizuku if it stops unexpectedly, and can alert you of crashes/potential fixes
- Start/stop intents: toggle Shizuku on-demand using automation apps (e.g., Tasker, MacroDroid, Automate)
- [BETA] Stealth mode: hide Shizuku from other apps that don't work when Shizuku is installed
- [BETA] In-app updates: option to automatically check for new updates, and can automatically download/install the latest version from GitHub
- Android/Google TV and VR headset support: UI is now compatible with D-Pad remotes, all TVs are supported (including Android 14+ TVs that require pairing), and the multi-window pairing dialog is toggleable in settings for VR headsets
- MediaTek support: fixes a critical bug in the original v13.6.0 which prevented Shizuku from working on MediaTek devices
- And more!
Please read the wiki for setup, info, and troubleshooting steps.
Minimum Version: Android 7+
- Root mode: Requires a rooted device
- Wireless Debugging mode: Works on Android 11+ and all Android TVs
- PC mode: Works on all devices
- Start on boot: Available only when using Wireless Debugging or Root mode
Shizuku takes user privacy very seriously.
- No tracking or analytics
- No telemetry
- No proprietary libraries
- No Google Play Services
- Open-source codebase
- Reproducible builds
- Internet access is only used for wireless debugging connections and to fetch updates from GitHub
- Only required permissions are declared
- INTERNET: required for the wireless debugging start mode to work. Also used to fetch updates from GitHub
- ACCESS_NETWORK_STATE: used to determine when Wi-Fi is available for background start via wireless debugging
- POST_NOTIFICATIONS: required for pairing notification and other alerts
- RECEIVE_BOOT_COMPLETED: required for start on boot
- FOREGROUND_SERVICE: prevents watchdog from being killed
- REQUEST_IGNORE_BATTERY_OPTIMIZATIONS: prevents start on boot and watchdog services from being killed
- WRITE_SECURE_SETTINGS: used to toggle USB and wireless debugging in the background when starting/stopping Shizuku
- REQUEST_DELETE_PACKAGES: used to request uninstall for Shizuku/stub when using stealth mode
- REQUEST_INSTALL_PACKAGES: used to request install for app updates, as well as Shizuku stub when using stealth mode
Contribute translations through the Crowdin project.
This Shizuku fork and all of its features will always be free, and there will never be ads. If you've found any of the added features to be useful, consider donating to help me maintain the project!
The API guide and a demo project are available in the Shizuku-API repository
- Shizuku has different permissions in root and ADB mode. You can see permissions granted to ADB here.
If your app requires root permission, use
ShizukuService#getUidto check if Shizuku is running as root or ADB, or useShizukuService#checkPermissionto check if the server has sufficient permissions. - On devices running Android 8 or lower, if you need to use Shizuku in a Service or Broadcast Receiver that might not be started by an Activity, please trigger the send binder by starting a transparent activity.
- Please prefer using
ShizukuBinderWrapperinstead of directly usingtransactRemotewhen possible, as API calls can change across Android versions.
- Clone with
git clone --recurse-submodules - Run gradle task
:manager:assembleDebugor:manager:assembleRelease
The :manager:assembleDebug task generates a debuggable server. You can attach a debugger to shizuku_server to debug the server. In Android Studio, ensure Run/Debug configurations > Always install with package manager is checked, so that the server will use the latest code.
- Fork the repository
- Create a feature branch (
git checkout -b branch-name) - Make your changes
- Commit your changes (
git commit -m 'Commit message') - Push to the branch (
git push origin branch-name) - Open a Pull Request
All code files in this project are licensed under Apache 2.0