The command adb shell sh /storage/emulated/0/Android/data/moe.shizuku.privileged.api/start.sh is the standard manual method to start the service on non-rooted Android devices using a computer. Google Help Purpose and Function Shizuku Service Activation
: Shizuku allows third-party apps to access system-level APIs with higher permissions (equivalent to the shell user) without requiring full root access. Privileged API Access
: It acts as a "middleman," receiving requests from apps and sending them to the system server to perform restricted actions, such as managing app permissions or accessing protected data folders. Temporary Permissions
: Because it uses the ADB (Android Debug Bridge) interface, the service must be manually restarted every time the device reboots. How to Execute the Command To run this command, you must have SDK Platform Tools installed on your computer. Rikka Apps Enable Developer Options Settings > About Phone Build Number Enable USB Debugging Settings > System > Developer Options , toggle on USB Debugging Connect Device
: Connect your phone to your computer via a USB cable. Ensure the USB mode is set to "File Transfer" or "No Data Transfer". Run Command
Open a terminal or command prompt in your Platform Tools folder. adb devices to ensure your phone is recognized. Paste and run:
adb shell sh /storage/emulated/0/Android/data/moe.shizuku.privileged.api/start.sh
: Open the Shizuku app on your phone; it should now display a status of "Shizuku is running" Rikka Apps Common Variations & Troubleshooting Path Not Found
: If you receive a "No such file or directory" error, try using the shorter Step 2: Start Shizuku Service Via ADB: adb
adb shell sh /sdcard/Android/data/moe.shizuku.privileged.api/start.sh Wireless Debugging (Android 11+)
: On newer versions of Android, you can activate Shizuku directly on the device using "Wireless Debugging" instead of a computer. Rooted Devices
The command adb shell sh /storage/emulated/0/Android/data/moe.shizuku.privileged.api/start.sh is used to manually start the Shizuku service on a non-rooted Android device. Shizuku allows other apps to use high-level system APIs through ADB (Android Debug Bridge). How to Use the Command
To run this correctly, you must execute it from a computer connected to your device via USB or through a local terminal app with Wireless Debugging enabled.
Enable Developer Options: Go to Settings > About phone and tap Build number 7 times.
Enable USB Debugging: In Developer Options, toggle on USB debugging.
Connect to PC: Connect your phone to your computer and ensure you have SDK Platform Tools installed.
Run Command: Open a terminal/command prompt in your platform-tools folder and enter:adb shell sh /storage/emulated/0/Android/data/moe.shizuku.privileged.api/start.sh. What This Command Does Or use the Shizuku app GUI
Locates the Script: It targets the start.sh file located in Shizuku's internal data folder on your device.
Starts the Service: It executes a shell script that copies a "starter" binary to a temporary folder (/data/local/tmp/) and initiates the Shizuku server.
Verification: A successful run usually ends with a message like info: shizuku_starter exit with 0.
Via ADB:
adb shell sh /sdcard/Android/data/moe.shizuku.privileged.api/start.sh
Or use the Shizuku app GUI.
moeshizukuprivilegedapi is not the official Shizuku package. The official one is moe.shizuku.privileged.api.
The name "Moeshizuku" likely comes from:
This could be:
What does it do?
It provides a wrapper around Android’s IActivityManager, IPackageManager, and other system services. Through Shizuku, this app can run shell commands with shell UID (same as ADB) or higher if the system is modified.
/storage/emulated/0 is mounted noexec in many firmwares.startsh to /data/local/tmp/ (writable + executable) before execution.Report ID: ADB-SHIZUKU-2025-001
Date: October 26, 2023 (Adjusted for context)
Author: Security & Systems Analysis Team
Subject: Evaluation of command adb shell sh storage emulated 0 android data moeshizukuprivilegedapi startsh link
If you are trying to start the Shizuku service via ADB, the command you provided is historically incorrect for two reasons:
sh cannot see files inside /Android/data/ on modern Android.run-as or a direct binary execution path.The Working Alternative:
To start Shizuku (or similar privileged API services) correctly, the command structure is usually much more complex and does not rely on the /storage/emulated path. A typical "Wireless Debugging" start command looks like this:
adb shell sh -c "$(pm path moeshizukuprivilegedapi | cut -d: -f2)/start.sh"
However, even this is problematic due to Scoped Storage.
The Standard Shizuku Start Command:
Shizuku usually generates a command that utilizes app_process directly in the shell environment, rather than executing a script from the storage folder.
Example logic:
app_process with the Shizuku Main class.Since the introduction of Scoped Storage (enforced strictly on Android 11+), the filesystem permissions for adb shell have changed significantly:
shell user had broad read/write access to /storage/emulated/0.shell user cannot access /storage/emulated/0/Android/data/ directly.
shell can see the root of the SD card, the Android/data/ directory is a "black box" to the shell user.ls /storage/emulated/0/Android/data/, the result will be Permission denied or an empty list, even with adb root disabled.adb shell