Skip to content

Shell Providers

sameerasw edited this page Aug 9, 2026 · 1 revision

🔧 Shell Providers

Several Essentials features need to execute privileged system commands that are not available to normal apps. Essentials supports two shell providers: Shizuku and Root.


Overview

Provider How it works Best for
Shizuku Local ADB daemon that grants shell-level API access without modifying the system Non-rooted devices
Root Direct su shell — Essentials calls root commands directly Rooted devices

If your device is rooted, Root is used preferentially where supported. Both can coexist — Essentials auto-detects which is available.


Shizuku

What is Shizuku?

Shizuku is a tool that lets apps access system APIs using ADB-level permissions without needing root. It runs as a local service on your device.

Recommended Shizuku Fork

The official Play Store version of Shizuku has limited support on Android 16 QPR1+. It is recommended to use a maintained fork:

thedjchi/Shizuku — actively maintained fork with Android 16+ support.

Starting Shizuku

Shizuku needs to be started once after every reboot (or can be configured for wireless ADB persistence):

Via ADB (one-time setup per boot):

adb shell sh /sdcard/Android/data/moe.shizuku.privileged.api/start.sh

Via Wireless ADB (persistent on Android 11+):

  1. Enable Developer OptionsWireless debugging
  2. Open Shizuku → tap Use wireless debugging
  3. Pair once — it will auto-start on reboot via the wireless ADB daemon

Features Unlocked by Shizuku

  • App Freezing (freeze/unfreeze packages)
  • Screen Locked Security (restrict QS expansion when locked)
  • Maps power saving
  • Screen refresh rate control (Pixel)
  • Mono Audio QS tile
  • Transparent navigation bar
  • Standby apps manager
  • Prefer GPU composing
  • Button remap (kernel-level key event injection)
  • Charging optimization

Root

What is Root?

Root access (su) gives Essentials unrestricted access to system commands and sysfs nodes. This is the most powerful mode and enables everything Shizuku does plus some additional capabilities.

Root Detection

Essentials automatically detects root by checking for su binary availability at startup. No configuration is required.

Troubleshooting

Shizuku not detected after reboot? Shizuku needs to be re-started after every boot unless you use the wireless ADB persistent method. Configure wireless debugging for seamless experience.

"Permission denied" even with Shizuku running? Make sure Shizuku has authorized Essentials. Open Shizuku → check the authorized apps list — tap to authorize if Essentials is pending.

Root detected but feature still disabled? Some features require both Root AND another permission (e.g., App Freezing also needs Usage Stats and Notification Listener). Check the feature's settings page for the full permission list.

Clone this wiki locally