Website profiles · Technology insights · Alternatives

shizuku.rikka.app

Let your app use system APIs directly

No paid content found
Visit website
Profile views 12 Outbound visits 3 Normal
Shizuku Full homepage screenshot

At a glance

Category
Development
Language
English
Paid-content signal
No paid content foundObserved
Registered
2018
Hosting
CloudflareInferred
HTTPS certificate trusted
PassedObserved
Last updated

Website review

This review may include AI-generated content and is not individually verified. Domain, certificate and other facts come from the observed data on this page.

What is Shizuku?

Shizuku is a tool that lets Android apps call privileged system APIs without requiring root. Instead of running a root shell, an app routes its API calls through Shizuku, which operates with higher privileges. According to the project's page, this approach is significantly faster than shell-based workarounds.

What it actually does

  • Bridges apps to system APIs. A developer wraps a system service in Shizuku's binder wrapper and calls methods such as granting a runtime permission, as shown in the project's sample code.
  • Uses ADB-level access. If an app previously required root but only needed ADB permissions, Shizuku can widen its audience because users do not need to root their device.
  • Targets developers first, users second. The page frames Shizuku as something an app integrates; end users mainly install Shizuku so compatible apps can work.

Who benefits

  • Developers building utilities that need package manager or permission-management calls without asking users to root.
  • Advanced users who already use ADB and want apps to perform privileged actions on a stock device.
  • Everyday users only indirectly: they benefit when an app they use adopts Shizuku, not from installing it alone.

Trade-offs to expect

Privileged access still involves setup and permission checks. The page notes there are extra steps, such as verifying permissions and confirming Shizuku is running, so it is not a drop-in replacement for root in every case. Apps must be written to use it.

Next step

If you are a developer, check whether your app's root requirement is really just an ADB permission; if so, integrating Shizuku could remove the root barrier for users. If you are a user, look for supported apps before installing it. The official project is Shizuku.

How do I set up Shizuku on my Android device without root?

Shizuku lets apps call privileged Android system APIs without root, by routing them through a background process you start once using ADB (or a root shell if you have one). Setup is a two-part job: start the Shizuku service, then let individual apps use it.

Start the service over ADB

  1. On the phone, enable Developer options (tap Build number seven times in Settings → About phone) and turn on USB debugging.
  2. Install the Shizuku app from an official store listing or the project's site, Shizuku.
  3. Connect the phone to a computer with a USB cable and authorize the debugging prompt on the device.
  4. Run the ADB command the app shows you (it uses adb shell to launch Shizuku's process). The exact command is displayed in the app and changes between versions, so copy it from there rather than from a third-party tutorial.
  5. On Android 11 and later, you can skip the computer after the first time by enabling Wireless debugging and pairing from inside the Shizuku app.

Let apps use it

Open Shizuku, confirm the service shows as running, then go to the app list inside Shizuku and grant access to the apps you want. Each app still asks for its own permissions the first time it uses a privileged call.

What to expect

  • It does not survive a reboot. You restart the service after every restart, which is why wireless debugging matters on newer Android versions.
  • Battery and stability: the service runs in the background, so some users keep an eye on battery use. Close it when you do not need it.
  • App support varies. Only apps built to use Shizuku benefit; a normal app that never asks for it will behave exactly as before.

A practical decision rule

Use Shizuku when an app you trust needs ADB-level access — for example, granting a runtime permission, freezing bloatware, or automating a system setting — and you would rather not root. Skip it if the app's core features need true root, since Shizuku deliberately stops at ADB-level privileges.

Next step: after the service is running, open the app you want to empower, look for a "use Shizuku" or "ADB mode" toggle in its settings, and grant access there.

What types of apps can use Shizuku to access system APIs?

Shizuku is for Android apps that need system-level API access without asking users to root their device. It runs a background service that grants apps the privileges normally tied to the shell (adb) user, so an app can call system APIs directly through Shizuku's binder wrapper instead of spawning adb shell commands.

Apps that fit well

  • Root-required apps that only actually need adb-level permission. The page explicitly notes this case: if an app's "root" requirement is really just adb permission, it can support Shizuku and reach a much wider audience, since users only need to install and start Shizuku rather than root.
  • Apps that manage packages or permissions. The example on the page grants a runtime permission via IPackageManager, which is the kind of operation ordinary apps cannot perform on their own.
  • Apps that currently shell out to adb. Shizuku is described as significantly faster than running shell commands, so utilities that batch many privileged operations benefit most.
  • Developer tools and power-user utilities. Anything that needs to inspect or change system settings, app states, or service behavior on behalf of the user.

Where it does not help

Apps whose functionality genuinely requires root (writing to protected partitions, kernel modules, or operations beyond adb's UID) still need root. Shizuku raises privilege to the shell level, not to root, and the page frames it that way.

Practical scenario

A developer builds a permission-manager app that currently tells users to root. Porting the privileged calls to Shizuku via ShizukuBinderWrapper means the same feature works on stock devices once the user activates Shizuku — but the app must still check whether Shizuku is running and whether permission was granted, which the page lists as extra steps beyond the core call.

Next step: if you are evaluating this for an app, list every operation you currently perform as root and mark which ones only need adb-level access. Those are your Shizuku candidates; the rest stay root-only. See the official documentation at Shizuku for the setup and permission-check flow.

What are the performance benefits of using Shizuku compared to running shell commands?

Shizuku's main performance claim is that it is "significantly faster than shell" because apps call system APIs directly through a binder wrapper instead of spawning shell commands. The page_evidence frames this as the core advantage: you "forget about root shell" and use higher-privilege APIs directly.

In practice, the difference comes down to how each approach works:

  • Shell commands: each action typically starts a new process (sh/app_process), parses text output, and tears the process down. That overhead repeats for every command, so loops or frequent checks get slow.
  • Shizuku: the app binds once to a privileged process and then makes repeated API calls over binder. No process spawn or text parsing per action, so many small operations in sequence stay fast.

The trade-offs:

Aspect Shell commands Shizuku
Per-call overhead Process spawn + parsing Binder call
Repeated small operations Slow Fast
Data returned Text to parse Typed API results
Setup Ad-hoc User installs and starts Shizuku

Concrete scenario: an app that grants a runtime permission, checks whether it succeeded, then reads a package's state would run three shell invocations the old way. With Shizuku, those become three binder calls against IPackageManager after a one-time setup — the page shows exactly this pattern with grantRuntimePermission.

A useful next step: benchmark your own hot path. If your app runs a handful of one-off commands, shell may be fine; if it makes many repeated privileged calls, Shizuku's lower per-call cost matters more. See Shizuku for the API setup details.

How can I integrate Shizuku into my own app as a developer?

Integrating Shizuku means your app calls Android system APIs through a Shizuku-provided binder instead of a root shell or a separately installed system app. According to the Shizuku page, you use system APIs "directly" with higher privileges, and it claims this is significantly faster than shell. You do not need root if the user starts Shizuku via ADB; the page also notes that apps which only need ADB-level permission can widen their audience by supporting Shizuku.

The core integration pattern

The page's example shows the essential idea: wrap the normal system service binder in ShizukuBinderWrapper, then call the privileged API through the resulting interface.

private static final IPackageManager PACKAGE_MANAGER =
    IPackageManager.Stub.asInterface(
        new ShizukuBinderWrapper(
            SystemServiceHelper.getSystemService("package")));

public static void grantRuntimePermission(
        String packageName, String permissionName, int userId) {
    try {
        PACKAGE_MANAGER.grantRuntimePermission(
            packageName, permissionName, userId);
    } catch (RemoteException tr) {
        throw new RuntimeException(tr.getMessage(), tr);
    }
}

What to handle in your own code

The page explicitly warns that this snippet is not the whole job: there are "a few more steps," such as checking permission and whether Shizuku is running. In practice, plan for these states:

  • Shizuku not installed — guide the user to install it.
  • Shizuku installed but not running — prompt the user to start it, typically via ADB or a root option.
  • Your app not yet authorized — request permission from the user and handle denial.
  • Service connection lost — re-check state and retry rather than assuming the binder remains valid.

Where Shizuku fits compared with alternatives

Approach User setup Best for
Shizuku Install Shizuku; start via ADB (or root) Apps needing ADB-level or selected system APIs without root
Root shell commands Rooted device Deep system changes on rooted devices
Normal app APIs None Anything achievable with ordinary permissions

The trade-off is clear: Shizuku lowers the barrier for users who are not rooted, but it adds a dependency and a setup step. If your feature only needs ordinary app permissions, do not add Shizuku. If it needs ADB-level access, Shizuku is the more user-friendly route than requiring root.

A practical next step

Read the detailed documentation the page says Shizuku provides, then build a small test that checks Shizuku availability, requests permission, and performs one privileged call. Start with a read-only API to validate the connection before moving to writes such as granting permissions.

For the official project and documentation, see Shizuku.

What are the security risks or limitations of using Shizuku?

Shizuku grants apps access to privileged Android system APIs without root, by routing calls through a process started via ADB (or root, if available). The security trade-off is essentially the same as handing an app the keys to a more powerful account than it normally has.

Where the risk actually sits

  • The permission you grant is the permission the app gets. Shizuku itself is a bridge, not a sandbox. If an app uses Shizuku to call a system API, that call runs with elevated privileges. The page's own example — granting a runtime permission to another package via IPackageManager — shows how much an app can do once it holds that bridge.
  • Trust shifts to the app developer. With root, you at least choose a known superuser manager and approve each request. With Shizuku, the app that talks to Shizuku decides what it asks for. A poorly written or malicious app can misuse the access without a per-call prompt.
  • The ADB-started process is a single point of failure. Because the privileged process is launched through ADB (typically over wireless debugging on modern Android), anyone who can re-establish that ADB session or reach the debugging port has a path to the same privileges. Leaving wireless debugging enabled on an untrusted network is the practical weak link.
  • It does not survive a reboot by default. The service must be restarted, usually by re-running the ADB command or using an on-device starter. That is inconvenient, but it also limits how long elevated access remains live — a real mitigation if you only start it when needed.
  • Some operations still require root. Shizuku covers APIs reachable with ADB-level privileges; anything beyond that is out of scope, so it is not a full root substitute.

Limitations worth knowing before you rely on it

Aspect What it means in practice
Setup Needs ADB or root to start; not a one-tap install
Persistence Usually restarted after reboot
Scope ADB-level privileges only, not full root
Compatibility Depends on the app being built to use Shizuku
Documentation The project provides developer docs and setup guidance

A practical way to decide

If you want a specific app's feature — say, granting permissions or freezing apps — and you trust that developer, Shizuku is a reasonable middle ground between "no root" and "full root." If you cannot name the app and the exact capability you need, the elevated access is not worth the exposure. As a rule, keep wireless debugging off when not in use, start Shizuku only for the session you need, and revoke debugging authorization from unknown computers.

For setup details and the current list of supported apps, start with the project's own documentation at Shizuku.

Related questions

More questions →
What Users Need to Set Up Before Using Shizuku

Shizuku lets apps call privileged system APIs without root, but it is not a standalone tool that works the moment you install it. Before any app can use it, you need three things in place: the Shizuku app itself, a running Shizuku service started through adb, and apps that are built to request Shizuku access. If the service is not running, Shizuku-dependent features in those apps will simply be unavailable.

Install the Shizuku App

The first step is installing Shizuku on the device. This is the app that manages the privileged connection and exposes it to other apps.

  • Install Shizuku from its official distribution source.
  • No root is required for the standard setup path.
  • The app is the bridge: other apps talk to system APIs through it rather than through a root shell.

Start the Shizuku Service via ADB

Installing the app is not enough. The Shizuku service has to be started, and the documented path is through adb.

The site describes this as "Supports adb usage" — if an app only needs adb-level permission, Shizuku is the way to grant it without root. Practically, that means:

  1. Enable developer options and USB debugging on the device.
  2. Connect the device to a computer with adb available.
  3. Use adb to start the Shizuku service.
  4. Keep the service running for apps to use it.

The key point is that the service is a running process, not a permanent install-time switch. If it stops, apps lose access until it is started again.

Apps Must Request Access

Shizuku does not automatically grant every app elevated privileges. An app has to be written to use Shizuku and to request permission through it.

The site's example shows what this looks like from the developer side — wrapping a system service and calling a privileged method:

private static final IPackageManager PACKAGE_MANAGER =
    IPackageManager.Stub.asInterface(
        new ShizukuBinderWrapper(
            SystemServiceHelper.getSystemService("package")));

public static void grantRuntimePermission(String packageName,
                                          String permissionName,
                                          int userId) {
    try {
        PACKAGE_MANAGER.grantRuntimePermission(packageName, permissionName, userId);
    } catch (RemoteException tr) {
        throw new RuntimeException(tr.getMessage(), tr);
    }
}

For a user, the takeaway is simpler: the app you want to use must support Shizuku. If it does not, installing Shizuku will not add the feature.

Check That Shizuku Is Running

Because access depends on a live service, the running state matters. The site notes there are "a few more steps to do, like checking permission or if Shizuku is running" — that check exists precisely because the service can be inactive.

Before expecting a feature to work:

  • Confirm the Shizuku service is active.
  • Confirm the specific app has been granted Shizuku permission.
  • If either is missing, the privileged call will fail or the feature will be hidden.

What This Means in Practice

Requirement Why it matters
Shizuku app installed Provides the bridge to system APIs
Service started via adb Privileged access only exists while the service runs
App supports Shizuku Unsupported apps gain nothing from Shizuku
Permission granted + service running Both conditions must hold for features to work

Shizuku is faster than a shell-based approach and removes the need for root, but it trades that convenience for a setup step: you start the service through adb, and you keep it running. Once those conditions are met, supported apps can use system APIs directly.

Does Shizuku Require Root Access?

No. Shizuku does not require root access. It lets apps call system APIs with elevated privileges by going through adb instead of a root shell, so a device only needs to have granted adb permission. This makes it a fit for apps that were previously labeled "root required" but in practice only need adb-level access.

How Shizuku works without root

Shizuku's own description frames the core idea as letting your app "use system APIs directly" and telling developers to "forget about root shell." Instead of running commands through a root shell, an app talks to system services through Shizuku, which holds the elevated permission obtained via adb.

The site summarizes this in three points:

  • Use system APIs elegantly — apps can use APIs with higher privileges "directly," and Shizuku is described as significantly faster than shell.
  • Supports adb usage — if a "root required app" only needs adb permission, Shizuku lets it reach a wider audience.
  • Save your time — Shizuku provides detailed documentation, and the main requirement placed on users is to install Shizuku.

What the code actually shows

The example on the site is a normal app calling a system service, wrapped so the call carries Shizuku's privileges:

private static final IPackageManager PACKAGE_MANAGER =
    IPackageManager.Stub.asInterface(
        new ShizukuBinderWrapper(
            SystemServiceHelper.getSystemService("package")));

public static void grantRuntimePermission(String packageName,
                                          String permissionName,
                                          int userId) {
    try {
        PACKAGE_MANAGER.grantRuntimePermission(packageName, permissionName, userId);
    } catch (RemoteException tr) {
        throw new RuntimeException(tr.getMessage(), tr);
    }
}

The key line is new ShizukuBinderWrapper(...): the app reaches the system package service through Shizuku rather than through a root process. The site notes there are a few more steps involved, such as checking permission or whether Shizuku is running.

Shizuku vs. full root: what differs

Dimension Shizuku (adb-based) Full root
Root required on device No Yes
Privilege source adb permission Root shell / su
Typical fit Apps that only need adb-level access Apps needing unrestricted system modification
Scope of access System APIs reachable with adb privileges Broader, not limited to adb-level operations

The practical distinction is scope. Shizuku is aimed at apps whose needs stop at adb permission; the site explicitly targets the case where a "root required app" only needs adb permission. If an app genuinely depends on unrestricted root capabilities, Shizuku is not a substitute.

Deciding whether it fits your case

  • Choose Shizuku if the app or task only needs adb-level system API access, and you want to avoid rooting the device.
  • Choose root if the requirement goes beyond what adb permission provides.
  • Check the app's actual requirement first — many apps labeled "root required" may only need adb permission, which is exactly the audience Shizuku is designed to serve.

For developers, the practical takeaway from the site is that supporting Shizuku can widen an app's audience without asking users to root, at the cost of adding the extra steps the documentation covers (permission checks and verifying Shizuku is running).

How Do Developers Integrate Shizuku into an App?

Shizuku lets an app call system APIs with elevated privileges without requiring root. For developers, integration means wrapping a system service binder with ShizukuBinderWrapper and then calling that service's API interfaces directly. The official site describes this as letting your app "use system APIs directly," with Shizuku acting as a faster alternative to shell commands. The core integration is straightforward, but the site notes there are "a few more steps to do, like checking permission or if Shizuku is running."

What Shizuku Actually Provides

Shizuku does not grant your app a new API surface. Instead, it gives your app a way to obtain a binder to an existing system service that normally requires higher privileges (root or adb-level access). Once you have that binder, you call the same AIDL interfaces the system uses internally.

The site frames two practical benefits for developers:

  • No root shell needed — you can use APIs with higher privileges "directly," and Shizuku is described as "significantly faster than shell."
  • Wider audience for adb-only apps — if a "root required app" only actually needs adb permission, you can "easily expand the audience by using Shizuku."

That second point matters for product decisions: if your feature only needs adb-level permission, Shizuku removes the root requirement for your users.

The Core Integration Pattern

The official example wraps the package system service and calls grantRuntimePermission through it:

private static final IPackageManager PACKAGE_MANAGER =
    IPackageManager.Stub.asInterface(
        new ShizukuBinderWrapper(
            SystemServiceHelper.getSystemService("package")
        )
    );

public static void grantRuntimePermission(
        String packageName, String permissionName, int userId) {
    try {
        PACKAGE_MANAGER.grantRuntimePermission(
            packageName, permissionName, userId);
    } catch (RemoteException tr) {
        throw new RuntimeException(tr.getMessage(), tr);
    }
}

Reading this as a sequence of inputs and actions:

  1. Input: the name of a system service ("package").
  2. Action: SystemServiceHelper.getSystemService("package") retrieves the service binder.
  3. Action: new ShizukuBinderWrapper(...) wraps that binder so calls are routed through Shizuku.
  4. Action: IPackageManager.Stub.asInterface(...) converts the wrapped binder into the typed AIDL interface.
  5. Result: calling grantRuntimePermission(...) on that interface executes with the privileges Shizuku holds.

The same pattern applies to other services — swap the service name and the corresponding I...Manager interface. The site's heading for this is "As Easy as you are a system app," meaning you write code as if your app were a system app.

What the Example Leaves Out

The code sample is deliberately minimal. The site's own tip states there are "a few more steps to do, like checking permission or if Shizuku is running." So before you reach the call above, your app needs to handle at least:

  • Whether Shizuku is running — if it isn't, the wrapped binder won't be usable.
  • Whether your app has been granted the permission it needs — Shizuku mediates access, so your app must be authorized.
  • Error handling — the sample catches RemoteException and rethrows as RuntimeException, which is a starting point, not a full strategy.

These are the practical failure points. A call that works in testing can fail in the field simply because Shizuku was stopped or permission was revoked.

Integration Checklist

Step What you do Why it matters
1. Add the dependency Include the Shizuku library in your build Provides ShizukuBinderWrapper and SystemServiceHelper
2. Check Shizuku state Verify Shizuku is running before calling The site explicitly flags this as a required extra step
3. Request permission Ask the user to authorize your app Without it, wrapped calls are rejected
4. Wrap the service new ShizukuBinderWrapper(SystemServiceHelper.getSystemService(name)) Routes calls through Shizuku
5. Cast to the interface I...Manager.Stub.asInterface(wrapped) Gives you typed API methods
6. Call and handle errors Invoke the method, catch RemoteException Remote calls can fail at runtime

When This Approach Fits

Choose Shizuku integration when your app needs system-level API access but you want to avoid requiring root from users. The site's own framing supports this: it positions Shizuku as a way to "expand the audience" for apps that only need adb permission, and as faster than shell-based approaches.

It fits less well if your feature genuinely requires root-level capabilities beyond what adb permission provides, or if you cannot ask users to install and run a separate app. The site is explicit that "only you need to do is to let the users install Shizuku" — that installation is a user-facing prerequisite, not something your app can silently satisfy.

For the exact setup steps, dependency coordinates, and permission flow, follow the detailed documentation the site references rather than the abbreviated sample above.

What Is Shizuku? A Guide to Using System APIs Without Root

Shizuku is a tool that lets Android apps call system APIs directly, using higher privileges than a normal app gets, without requiring a root shell. It is most useful when an app needs adb-level permission: instead of asking every user to run adb commands or root their device, the developer can rely on Shizuku to broker that access. According to the official site, Shizuku is also significantly faster than going through a shell, and it ships with detailed documentation so the main user-side requirement is simply installing Shizuku.

The problem Shizuku solves

Normally, an Android app runs in a sandbox with limited permissions. If it needs to do something privileged — grant a runtime permission, manage packages, or call a hidden system API — the usual options are:

  • Root the device, which is invasive and excludes most users.
  • Run adb shell commands, which is slow and awkward to wire into an app.

Shizuku takes a different route. It runs a process with elevated privileges (started via adb or root) and exposes those privileges to apps through a binder interface. The app then calls system APIs "directly" rather than shelling out, which the site describes as significantly faster than the shell approach.

How it works in practice

The core idea is that your app talks to system services through a ShizukuBinderWrapper instead of the normal binder. The official example shows granting a runtime permission:

private static final IPackageManager PACKAGE_MANAGER =
    IPackageManager.Stub.asInterface(
        new ShizukuBinderWrapper(
            SystemServiceHelper.getSystemService("package")));

public static void grantRuntimePermission(
        String packageName, String permissionName, int userId) {
    try {
        PACKAGE_MANAGER.grantRuntimePermission(
            packageName, permissionName, userId);
    } catch (RemoteException tr) {
        throw new RuntimeException(tr.getMessage(), tr);
    }
}

The site notes there are a few more steps involved — such as checking permission and confirming Shizuku is running — so this snippet is a starting point, not a complete integration.

Who it is for

Shizuku is aimed at two groups:

Audience What they get
App developers A way to offer privileged features to users who have not rooted their device. If your "root required app" only actually needs adb permission, Shizuku lets you reach a much wider audience.
Users A single install that unlocks those features, with documentation guiding the setup.

Key points to remember

  • Shizuku lets apps use system APIs directly with higher privileges.
  • It removes the need for a root shell in cases that only require adb-level access.
  • It is described as faster than shell-based approaches.
  • The developer-facing requirement is mainly to have users install Shizuku; the project provides documentation to walk them through it.

For the exact setup steps and current details, refer to the official documentation at shizuku.rikka.app, since the integration involves permission checks and runtime-state handling beyond the example above.

Which Apps Can Benefit from Using Shizuku?

Shizuku is most valuable for apps that need system-level API access but don't actually require full root. According to the official site, if your "root required app" only needs adb permission, you can expand your audience by using Shizuku instead. The core idea: Shizuku lets apps call system APIs directly with elevated privileges, without a root shell, and it's significantly faster than shell-based approaches.

Apps That Only Need ADB-Level Permission

This is the clearest fit. Many apps historically asked for root because that was the only practical way to reach privileged APIs — but the operations they perform (granting runtime permissions, toggling system settings, managing packages) only need adb-level access.

For these apps, switching to Shizuku means:

  • Users without root can run the app
  • No root shell is needed for the privileged calls
  • The app reaches a larger install base

The official site states this directly: "If your 'root required app' only needs adb permission, you can easily expand the audience by using Shizuku."

Apps That Call System APIs Frequently

Shizuku is described as significantly faster than shell. If your app currently shells out commands repeatedly — for example, running pm grant or similar commands per action — each call carries shell startup overhead. Direct API calls through Shizuku avoid that.

This matters most for apps where privileged operations happen often, not just once at setup. A one-time permission grant won't feel the difference; a tool that performs privileged actions throughout a session will.

Apps That Want to Avoid Shell Parsing

Shelling out means parsing text output, handling locale differences, and dealing with inconsistent formatting across Android versions. Calling system APIs directly returns structured results. If your app's current root implementation is fragile because it depends on parsing shell output, Shizuku removes that class of bugs.

What the Integration Looks Like

The official example shows the pattern — wrapping a system service through Shizuku and calling it like a normal API:

private static final IPackageManager PACKAGE_MANAGER =
    IPackageManager.Stub.asInterface(
        new ShizukuBinderWrapper(
            SystemServiceHelper.getSystemService("package")));

public static void grantRuntimePermission(
        String packageName, String permissionName, int userId) {
    try {
        PACKAGE_MANAGER.grantRuntimePermission(
            packageName, permissionName, userId);
    } catch (RemoteException tr) {
        throw new RuntimeException(tr.getMessage(), tr);
    }
}

The site notes there are a few more steps involved, such as checking permission or whether Shizuku is running. So the snippet is the call pattern, not a complete integration.

Apps That Are a Poor Fit

  • Apps that genuinely need root. If your app modifies the system partition, installs kernel modules, or requires capabilities beyond adb, Shizuku won't replace root.
  • Apps with rare privileged calls. If the app touches a privileged API once during setup, the added dependency on Shizuku may not be worth it versus simply documenting the adb command.
  • Apps where users won't install a companion tool. Shizuku requires the user to install and run Shizuku itself. The site frames the developer's job as: "Only you need to do is to let the users install Shizuku." If your audience won't take that step, adoption suffers.

How to Decide

Your app's situation Shizuku a good fit?
Needs root today, but only uses adb-level operations Yes — broadens your audience
Makes frequent privileged calls Yes — faster than shell
Parses shell output and breaks across versions Yes — structured API results
Needs true root capabilities No
Privileged call happens once, rarely Marginal — weigh the extra dependency

The practical test: list every privileged operation your app performs, then check whether each one is achievable with adb permission. If all of them are, Shizuku is likely the better path than requiring root.

Website Overview

Identifiable technologies and additional version or configuration signals make the service easier to fingerprint, which may help targeted scanners narrow their checks. An established domain and managed infrastructure suggest continuity of operations and may support dependable delivery, although neither guarantees service quality.

Domain and Registration

Registered in 2018, this domain has about 8 years of history. That suggests continuity, although ownership and purpose may have changed. Transfer-protection status is present, helping reduce the risk of unauthorized domain transfers. The domain uses the common .app extension, which is not an independent safety signal.

DNS and Email

Nameservers are provided by Cloudflare, indicating managed DNS hosting. MX records point to the Zoho Mail email service. No CNAME was found; the observed records resolve directly to addresses. SPF and DMARC are configured. DKIM status is unknown. DNSSEC signatures were not detected, so this additional DNS authenticity protection is not confirmed.

TLS and Certificates

The public key uses EC with 256 bits. The server supplied a complete certificate chain. No organization name is present in the certificate; the available fields are consistent with domain validation. The certificate was issued within the Google Trust Services cloud or CDN ecosystem. The certificate's total validity is about 90 days, consistent with a short renewal cycle.

HTTP and Browser Security

The response lacks these common security headers: CSP, Referrer-Policy, Permissions-Policy, clickjacking protection. No X-Powered-By header was found, reducing one common source of backend fingerprinting information. The cf-ray response header indicates a CDN or caching proxy in the delivery path. No obvious internal addresses or debug information were found in the headers. The Server header identifies cloudflare without an exact version.

Technology Stack Analysis

The public page identifies VuePress 1.8.2, Cloudflare, with exact versions exposed for 1 technologies. These details can narrow vulnerability checks, although exposure alone is not a vulnerability.

Search and Social Sharing

The Generator tag identifies VuePress 1.8.2, making the publishing system easier to fingerprint. No homepage canonical URL was detected. If duplicate URLs exist, consolidation may be less explicit. No Open Graph metadata was detected, so social previews may depend on platform inference. The title has 7 characters, within a common display range. A meta description is present, with 37 characters.

Hosting and Email

DNSCloudflare
HostingCloudflare
EmailZoho Mail
Approximate IP geolocation (inferred; a CDN or proxy may differ from the origin server) Location unknown Inferred 104.21.17.67

Registration details

RDAP / WHOIS

RegistrarName.com, Inc.
Registered2018-05-08
Expires2027-05-08
Domain statusclient transfer prohibited
Nameserversjill.ns.cloudflare.com、micah.ns.cloudflare.com
DNSSECunsigned

DNS records

DNS

TypeNameValueTTLPriority
Ashizuku.rikka.app104.21.17.67300—
Ashizuku.rikka.app172.67.223.52300—
AAAAshizuku.rikka.app2606:4700:3031::6815:1143300—
AAAAshizuku.rikka.app2606:4700:3031::ac43:df34300—
MXrikka.appmx.zoho.com30010
MXrikka.appmx2.zoho.com30020
MXrikka.appmx3.zoho.com30050
NSrikka.appjill.ns.cloudflare.com86400—
NSrikka.appmicah.ns.cloudflare.com86400—
TXTrikka.appv=spf1 include:zoho.com ~all300—
DMARC_dmarc.rikka.appv=DMARC1; p=none; rua=mailto:[email protected]; ruf=mailto:[email protected]; sp=none; adkim=s; aspf=r300—

TLS and certificates

TLS / SSL

AssessmentNormal configuration
Supported protocolsTLSv1.2、TLSv1.3
Negotiated protocolTLSv1.3
Certificate subjectrikka.app
IssuerGoogle Trust Services
Valid until2026-11-29T09:50 · Remaining when checked: 66 days
Verification detailsCertificate trust: Passed · Hostname match: Passed

HTTP response headers

HTTP

HeaderValue
content-typetext/html
cache-controlmax-age=14400
servercloudflare
strict-transport-securitymax-age=0; includeSubDomains; preload
x-content-type-optionsnosniff

Identified technologies

VuePress 1.8.2Cloudflare

Pages, Search and Sharing

Meta descriptionLet your app use system APIs directly
Canonical URLNot detected
LanguageEnglish (default)
Twitter CardNot detected

Unknown

No rules found

User reviews (0)

  • No reviews yet.