ShizuStore

Xhizuku

xeonleonreal

2.0.0.r1.4e4577a · GitHub

Download APK
Shizuku implementations Android 7.1+ 4 hours ago Apache-2.0
43 ShizuStore
302 GitHub
11 Stars
3 MB Size

More about this app

Maintained Shizuku fork with Material 3 Expressive UI, ADB module runner, onboarding wizard, server monitor and built-in diagnostics

Xhizuku

Xhizuku is a fork of Nightzuku, maintained by xeonleonreal. It provides a robust, high-performance interface for applications to use system APIs directly with elevated permissions (root/ADB).

This project tracks the latest Android platform developments, including Android 16/17 target stability, introduces a revamped Modern Material 3 Expressive UI using Jetpack Compose, includes a full ADB-backed ZIP modules runner, onboarding wizard for new users, XStatus monitor and Magisk-style bottom menu.

Important

Migration Action Required: Due to the package identity upgrade (moe.shizuku.privileged.api -> xeonleon.xhizuku), you MUST UNINSTALL any older official Shizuku Manager app from your device before installing Xhizuku. Otherwise, they will conflict. Upstream project reference: https://github.com/RikkaApps/Shizuku

Fork additions

Nightzuku

  • Jetpack Compose manager UI with Material 3 Expressive components, motion, switches, and rounded icon treatment.
  • Android 16/17 target work with current preview SDK/build tooling in this fork.
  • ADB Modules screen for installing and managing ZIP modules.
  • Module features: module.prop, banner, enable/disable switch, action.sh, policy-gated service.sh, local WebUI, delete, path checks, size limits, output limits, and last-run logs.
  • Module policy settings: Safe mode, Full access, and background action control.
  • Debug test module under test-modules/adb-test-module.

Xhizuku

  • Onboarding wizard, that helps users to migrate from shizuku
  • Magisk style menu
  • Theme color overide in Xhizuku
  • XStatus: CPU, GPU, memory and swap usage in an ongoing notification
  • Expandable card descriptions on the status page (tap the arrow to show or hide long explanations)
  • ..and many more! See full additions

Documentation

Background

When developing apps that require root, the standard approach is running commands in a su shell. This is slow, unreliable due to text processing, and limited to available commands. Even with ADB, apps often require root for privileged operations.

Xhizuku provides a high-performance alternative by allowing apps to use system APIs directly with elevated permissions.

How does Xhizuku work?

Android uses binder for interprocess communication (IPC) between apps and the system server. The system server checks the UID/PID of the client to enforce permissions.

Xhizuku guides users to start a Xhizuku server process with root or ADB. When an authorized app starts, it receives a binder to the Xhizuku server.

Xhizuku acts as a proxy, receiving requests from the app and forwarding them to the system server. This allows apps to use system APIs with the server's elevated permissions (root or ADB), making it almost identical to using system APIs directly.

Screenshots

📸 Click to open Screenshot Gallery

Phone UI


Main Screen

Authorized Apps

ADB Modules

Module WebUI

Settings

Onboarding Wizard

Developer guide

API & sample

Official API and samples are available at: https://github.com/RikkaApps/Shizuku-API

Technical Details

  1. ADB Permissions: ADB permissions vary by system version. Check available permissions in the Shell AndroidManifest. Use ShizukuService#getUid or ShizukuService#checkPermission to verify server capabilities.

  2. Hidden API Restrictions: From Android 9, hidden API usage is restricted. Use tools like AndroidHiddenApiBypass if necessary.

  3. Android 8.0 & ADB: On API 26, ADB lacks permissions to use registerUidObserver. If your app process is not started by an Activity, you may need to start a transparent activity to trigger binder transmission.

  4. Direct transactRemote Usage: Signatures for hidden APIs change between Android versions. While ShizukuBinderWrapper handles most cases, direct transaction calls must be carefully verified against the target platform's AIDL definitions.

Developing Xhizuku

Build

  • Clone with git clone --recurse-submodules
  • Build with Gradle: ./gradlew :manager:assembleDebug

The :manager:assembleDebug task generates a debuggable server. Ensure "Always install with package manager" is checked in Android Studio to use the latest server code during debugging.

License

All code is licensed under Apache 2.0.

  • Icon Usage: You may not use manager/src/main/res/mipmap*/ic_launcher*.png for anything other than displaying Xhizuku.
  • Identity: You may not use Shizuku as an app name or use moe.shizuku.privileged.api as an application ID in derived works. The current package identity is xeonleon.xhizuku.

Credits

Close

How Shizuku is used

Can run ADB modules, monitor server stats, view server logs and run diagnostics via `sh` shell and system services

This is an AI-assisted analysis of Shizuku-related usages in the app's public source code. It is best effort, so it may not catch every single usage.

How this app uses Shizuku

This fork uses Shizuku as its privileged backend to run modules, inspect server health and review diagnostics.

  • Run module scripts: users can install module ZIPs and run their included action and background service scripts, executed as a privileged shell through Shizuku with results and logs shown in the modules list.
  • Power module Web UIs: a module web interface that declares shell support can run shell commands through Shizuku and return output, exit code and timeout status to the Web UI.
  • Monitor server status: users can see CPU usage, memory and swap use, load average and GPU use collected through privileged shell reads of cat /proc/stat, cat /proc/meminfo, cat /proc/loadavg and GPU nodes.
  • View server logs: users can open a filtered server log view that runs logcat -d -t 800 through Shizuku and shows only lines related to Shizuku, with copy and share actions.
  • Run diagnostics checks: users can run built in tests that spawn id in a privileged shell, count packages through the privileged package service and read device model, brand and build fingerprint values through Shizuku.

Android APIs or commands used

  • IPackageManager.getInstalledPackages
  • IPackageManager.getPackageInfo
  • IPackageManager.getApplicationInfo
  • UserManager.getUsers
  • sh -c
  • cat /proc/stat
  • cat /proc/meminfo
  • cat /proc/loadavg
  • logcat -d -t 800
  • getprop service.adb.tcp.port
  • getprop persist.adb.tcp.port
  • id

Notable details

Server status and ADB port lookup fall back to a local shell and direct file reads when the privileged shell is unavailable.

Close

Changelog

What's new for version 2.0.0.r1.4e4577a

What's new

  • Battery exemption - Some phones kills the service without any warning and xhizuku dies. This should help keeping server alive
  • Console tab - You can run shell commands in Xhizuku!
  • Fixed starter - Sometimes when starting the server it will say "Starting..." infinite time even after the server started
Close

Permissions

13 permissions requested

  • android.permission.RECEIVE_BOOT_COMPLETED
  • android.permission.FOREGROUND_SERVICE
  • android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE
  • android.permission.FOREGROUND_SERVICE_SPECIAL_USE
  • android.permission.CHANGE_WIFI_MULTICAST_STATE
  • android.permission.INTERNET
  • android.permission.USE_LOOPBACK_INTERFACE
  • android.permission.NEARBY_WIFI_DEVICES
  • android.permission.ACCESS_LOCAL_NETWORK
  • android.permission.POST_NOTIFICATIONS
  • android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
  • android.permission.WRITE_SECURE_SETTINGS
  • moe.shizuku.manager.permission.MANAGER
Close