Skip to content

Permissions Guide

sameerasw edited this page Aug 9, 2026 · 1 revision

🔑 Permissions Guide

Essentials requests a range of permissions depending on which features you use. All permissions are optional — the app works without any, but features will be disabled until the right permissions are granted.


Permission Types

Standard Android Permissions

These are requested via the normal Android runtime permission dialog.

Permission Features That Use It
POST_NOTIFICATIONS Caffeinate (foreground service notification), Battery Notification
BLUETOOTH_CONNECT Batteries widget (BT device battery), Battery Notification
BLUETOOTH_SCAN Batteries widget, Battery Notification
READ_PHONE_STATE Call Vibrations (detect incoming/active calls)
READ_CALENDAR Calendar Sync (WearOS)
ACCESS_FINE_LOCATION Location Reached (geofence alarms)
ACCESS_BACKGROUND_LOCATION Location Reached (background location tracking)
USE_FULL_SCREEN_INTENT Location Reached (full-screen arrival alert)
REQUEST_INSTALL_PACKAGES App Updates (in-app APK installation)

Special System Permissions

These cannot be granted via a normal dialog — they require specific steps.

WRITE_SECURE_SETTINGS (via ADB)

Allows modifying Settings.Secure values — used for AOD, status bar icons, refresh rate mode, notification snoozing, and many more.

How to grant:

adb shell pm grant com.sameerasw.essentials android.permission.WRITE_SECURE_SETTINGS

Features using this:

  • Always on Display
  • Status bar icons
  • Screen refresh rate
  • Lock screen clock
  • Notification snoozing
  • Mobile data always on
  • Wireless display certification
  • Network download rate limit
  • Safe volume disable
  • Power and Battery settings
  • Quick Settings tiles (write settings)
  • Shut-Up! (per-app audio ducking)

WRITE_SETTINGS (System Settings)

Allows modifying Settings.System values — used for Quick Settings tiles.

How to grant:

  • Navigate to the feature in Essentials → tap the permission card → follow the system dialog

Features using this:

  • Quick Settings tiles management
  • Text and animations (font scale, animation duration)
  • Shut-Up! (system audio settings)

Accessibility Service

Essentials has its own Accessibility Service (ScreenOffAccessibilityService) that powers multiple independent features.

How to grant:

  • Settings → Accessibility → Installed services → Essentials → Enable

Features using this:

  • Screen off widget (tap to sleep)
  • Notification lighting (accessibility event listening)
  • Dynamic night light (foreground app detection)
  • App lock (app launch interception)
  • Essentials on Display (ambient music glance)
  • Smart pixels (overlay rendering)
  • Button remap (key event interception)
  • Pocket mode

Notification Listener

Allows reading notification content and state — used for notification-triggered features.

How to grant:

  • Settings → Notifications → Notification access → Essentials → Allow

Features using this:

  • Notification lighting
  • Flashlight pulse
  • Call vibrations (call state detection)
  • Essentials on Display
  • App Freezing (app launch detection)
  • Maps power saving (Maps app detection)

Draw Over Other Apps (Overlay)

Allows displaying floating overlays above other apps.

How to grant:

  • Settings → Apps → Special app access → Display over other apps → Essentials

Features using this:

  • Notification lighting (edge lighting overlay)

Usage Stats / Usage Access

Allows reading which apps are in the foreground.

How to grant:

  • Settings → Digital Wellbeing (or Apps) → Special app access → Usage access → Essentials

Features using this:

  • App lock (app usage detection — optional mode)
  • Dynamic night light (app-based detection — optional mode)
  • App Freezing
  • Shut-Up!

Device Admin

Grants device administrator privileges.

How to grant:

  • The app presents a system dialog to activate device admin

Features using this:

  • Lockdown mode

Privileged Shell Permissions

These unlock the most powerful features. See Shell-Providers for setup details.

Shizuku

A local ADB daemon that lets Essentials execute privileged shell commands without full root.

Features using Shizuku:

  • App Freezing (package state management)
  • Screen Locked Security (disable QS while locked)
  • Maps power saving
  • Screen refresh rate (Pixel)
  • Mono Audio QS tile
  • Transparent navigation bar
  • Standby apps management
  • Prefer GPU composing

Root

Direct su shell access — used when root is available as a more powerful alternative to Shizuku.

Features using Root (in addition to or instead of Shizuku):

  • App Freezing
  • Screen Locked Security
  • Maps power saving
  • Button remap
  • Standby apps
  • Prefer GPU composing
  • Transparent navigation bar
  • Mono Audio QS tile

Permission Conflict Notes

  • Dynamic Night Light and App Lock can use either Accessibility Service or Usage Stats — you can choose which in their settings page.
  • If both Shizuku and Root are available, Root takes priority for features that support both.
  • Features gracefully degrade when a permission is revoked — they show a guidance card to re-enable it.

Clone this wiki locally