RikkaApps /Shizuku
Using system APIs directly with adb/root privileges from normal apps through a Java process started with app_process.
★ 33,302⑂ 3,612👁 650⑃ 224● 1,242▤ 59◈ 497
33,302
stars
+90
3,612
forks
650
watchers
224
prs
1,242
issues
59
releases
497
discussions
README
Shizuku Background When developing apps that requires root, the most common method is to run some commands in the su shell. For example, there is an app that uses the pm enable/disable command to enable/disable components. This method has very big disadvantages: 1. Extremely slow (Multiple process creation) 2. Needs to process texts (Super unreliable) 3. The possibility is limited to available commands 4. Even if ADB has sufficient permissions, the app requires root privileges to run Shizuku uses a completely different way. See detailed description below. User guide & Download How does Shizuku work? First, we need to talk about how app use system APIs. For example, if the app wants to get installed apps, we all know we should use PackageManagergetInstalledPackages(). This is actually an interprocess communication (IPC) process of the app process and system server process, just the Android framework did the inner works for us. Android uses binder to do this type of IPC. Binder allows the server-side to learn the uid and pid of the client-side, so that the system server can check if the app has the permission to do the operation. Usually, if there is a "manager" (e.g., PackageManager) for apps to use, there should be a "service" (e.g., PackageManagerService) in the system server process. We can simply think if the app holds the binder of the "service", it can communicate with the "service". The app process will receive binders of system services on start. Shizuku guides users to run a process, Shizuku server, with root or ADB first. When the app starts, the binder to Shizuku server will also be sent to the app. The most important feature Shizuku provides is something like be a middle man to receive requests from the app, sent them to the system server, and send back the results. You can see the transactRemote method in rikka.shizuku.server.ShizukuService class, and moe.shizuku.api.ShizukuBinderWrapper class for the detail. So, we reached our goal, to use system APIs with higher permission. And to the app, it is almost identical to the use of system APIs directly. Developer guide API & sample https://github.com/RikkaApps/Shizuku-API Migrating from pre-v11 Existing applications still works, of course. https://github.com/RikkaApps/Shizuku-APImigration-guide-for-existing-applications-use-shizuku-pre-v11 Attention 1. ADB permissions are limited ADB has limited permissions and different on various system versions. You can see permissions granted to ADB here. Before calling the API, you can use ShizukuServicegetUid to check if Shizuku is running user ADB, or use ShizukuServicecheckPermission to check if the server has sufficient permissions. 2. Hidden API limitation from Android 9 As of Android 9, the usage of the hidden APIs is limited for normal apps. Please use other methods (such as ). 3. Android 8.0 & ADB At present, the way Shizuku service gets the app process is to combine IActivityManagerregisterPro
Top issues
#2286adb shell /data/app/moe.shizuku.privileged.api-kU9bVbgvIjy2VA012KZf5Q==/lib/arm64/libshizuku.so113 comments · 2026-07-18#1426Shizuku stops when switching screen off on Xiaomi devices and on some other devices62 comments · 2025-09-03#1695adb shell sh /storage/emulated/0/Android/data/moe.shizuku.privileged.api/start.sh36 comments · 2025-12-15#2180Android 1735 comments · 2026-06-17#451oriain os4上的奇怪bug31 comments · 2024-03-18#2514adb shell /data/app/moe.shizuku.privileged.api-nM7IFWpG7bzYWT6GrbaMQg==/lib/arm64/libshizuku.so29 comments · 2026-09-25#1459Shizuku crashes after a few minutes or when I turn off the screen with OneUI 827 comments · 2025-09-20#1171无法启动用户服务进程25 comments · 2025-05-30
Discussions
#2668https://github.com/RikkaApps/Shizuku/issues/new/choose0 comments · 2026-11-07#2663Dual Wifi on Xiaomi phone can brake wireless debug1 comments · 2026-11-05#2659adb shell /data/app/moe.shizuku.privileged.api-kU9bVbgvIjy2VA012KZf5Q==/lib/arm64/libshizuku.so0 comments · 2026-11-04#2653why not to do a project for samsung watch?base on wearos4 comments · 2026-11-01#2652fix this item0 comments · 2026-10-31#2651พ่ษพ(พ0 comments · 2026-10-31#2647new system version DP11.261016.003 killed shizuku, while I clicked start0 comments · 2026-10-30#2646Android17上接入应用后且adb启动后shizuku应用管理仍显示已授权0个应用1 comments · 2026-10-30
Latest release
v13.6.0 v13.6.0 2025-05-25What's Changed - Support Android16 QPR1 - Update the start command. You can copy this file to any executable location, such as /data/local/tmp/shizuku - Support auto start without root on Android13+ when connected to a trusted WLAN Full Changelog: https://github.com/RikkaApps/Shizuku/compare/v13.5.4...v13.6.0