S
ShizuPortal
ShizuStore

Unofficial ShizuStore Web Portal

This is an unofficial web portal for ShizuStore self-hosted by rdevz-ph. Visit the official portal at https://shizustore.com/.

CatalogAutomationNothing_Modes
Nothing_Modes

Nothing_Modes

v0.19.7
by Dvorinka•Automation•GPL-3.0
Need ShizuStore app? Download APK

Screenshots

(12)

About Application

Nothing Modes

nothing-modes.vercel.app

Open-source Android automation for Nothing phones — and every other Android device.

Built like a premium system app: OLED-black surfaces, monoline iconography, dot-matrix hero type, and a single red accent. The engine is pure Kotlin; the UI is Jetpack Compose. Shizuku and Nothing Glyph are supported, not required.

Nothing Modes

Automation list Mode detail Mode builder Action catalog

What it does

  • Modes — persistent or event-based automations (Sleep, Work, Gaming, or event triggers) with optional conditions, actions, and automatic state restoration.
  • WHEN / ONLY IF / THEN builder — explicit, no confusion about what runs when.
  • Nothing Glyph / Glyph Matrix — light stripe and matrix on supported devices.
  • Shizuku — optional, graceful degradation everywhere else.
  • Capability detection — the app asks what the device can do instead of guessing.
  • Priority + cooldown + conflict resolution — deterministic ordering, overlap suppression, and fire cooldown.
  • Import / export / share — JSON bundles with schema versioning.
  • Privacy-first diagnostics — no analytics SDKs; crash reports are opt-in, and after a crash the app shows the error and asks before anything is sent.

Glyph support

DeviceGlyph StripeGlyph MatrixGlyph Toy
Nothing Phone (1)YesNoNo
Nothing Phone (2)YesNoNo
Nothing Phone (2a) / (2a)+YesNoNo
Nothing Phone (3a) / (3a) ProYesNoNo
Nothing Phone (3)YesYes (25x25)Yes
Nothing Phone (4a)YesNoNo
Nothing Phone (4a) ProYesYes (13x13)Yes
Nothing Phone (4b)YesNoNo
Non-Nothing devicesNoNoNo

How Glyph output works — read this first

Nothing OS hands the Glyph interface to one selected toy at a time. Whoever owns the current Glyph Toy slot (or the Always-on toy slot) is the only app whose frames reach the lights. There is no API to switch that selection programmatically — Nothing controls it.

What this means in practice:

  • To see Nothing Modes output, select Nothing Modes in Settings → Glyph Interface → Glyph Toys (or as the Always-on toy). The Glyph Preview screen in the app has shortcut buttons to both pickers and shows a live "Matrix owner" status.
  • We cannot trigger other apps' Glyph Toys. Toy apps can be bound and sent lifecycle messages, but their frames never reach the lights while another toy owns the slot — we verified this on-device. Nothing Modes renders its own equivalents (battery ring, progress, text, marquee, icons) instead.
  • If another toy is selected, Glyph actions fail honestly with "matrix owned by another toy" instead of pretending to render. Check the "Matrix owner" row in Settings → Glyph Preview — it always shows who currently controls the lights.

This exclusivity is Nothing's platform rule, not a limitation we chose. If Nothing ever exposes a public toy-switching API, we will use it.

Build

./gradlew assembleDebug
./gradlew :engine-core:test
./gradlew :ui:lintDebug

Requires JDK 17+ and Android SDK API 36.

Architecture

app
├── ui                 — Compose screens, theme, design primitives
├── automation-android — services, receivers, scheduler
│   ├── engine-core    — pure Kotlin engine
│   ├── data           — Room stores
│   ├── capabilities   — action executors, capability resolver
│   ├── core-shizuku   — Shizuku gateway
│   ├── device-tools   — shell-based state readers
│   └── nothing-integrations — Glyph SDK wrapper

The engine resolves each action through: Public Android API → Nothing API → Shizuku → settings panel fallback.

Modules

ModuleRole
engine-corePure Kotlin automation engine
device-toolsShell-based device state readers
automation-androidAndroid lifecycle, services, receivers
uiJetpack Compose screens and design system
core-shizukuShizuku privileged shell transport
capabilitiesAction executors and resolver
nothing-integrationsNothing Glyph SDK wrapper
dataRoom persistence
appEntry point and nav host

Quick start

  1. Install on Android 9+.
  2. Follow the in-app onboarding for restricted settings and optional Shizuku.
  3. Create a mode from the builder, a template, or a shared JSON link.
  4. Automations fire on triggers, check conditions, then execute actions in order.

Templates and sharing

Community templates live in templates/ — browse them in-app via the grid icon on the Modes screen. To contribute one, see templates/README.md.

Share any mode from the detail screen as a JSON bundle. Bundles carry schemaVersion, appVersion, and requiredCapabilities, so imports across users and app versions show compatibility warnings before anything is written.

Shizuku

Optional. Without it, every action still resolves — silent where the platform allows, a jump to the right settings panel where it doesn't. Shizuku turns the panel fallback into a silent toggle.

Verified on Nothing Phone 3, Nothing OS 4.1, Android 16:

ActionWithout ShizukuWith Shizuku
Wi-Fi, mobile data, hotspotconnectivity panelsilent toggle
Airplane modeairplane settingssilent toggle (cmd connectivity)
Battery saver, data saver, auto-syncsettings panelsilent toggle
Always-On Display, extra dimdisplay settingssilent toggle
Location mode, refresh ratesettings panelsilent toggle (secure table)
Arbitrary WriteSettingpermission-requiredsilent toggle
NFCNFC panelNFC panel — svc nfc is killed on Nothing OS 4.1 even for shell; platform limitation
Screenshotper-capture consent (MediaProjection)same
Everything else — Glyph, volume, ringer, DND, brightness, dark mode, rotation, flashlight, notifications, media, clipboard, app/URL launch, lock screen, SMSruntime permissions onlyunchanged

Get Shizuku from GitHub or the Play Store, then grant it inside the app's settings sheet.

Testing

./gradlew :engine-core:test
./gradlew connectedCheck

Documentation

License

GPL-3.0


Authored By: TDvorak info@tdvorak.dev

Release Notes & Changelog

What's Changed

Full Changelog: https://github.com/Dvorinka/Nothing_Modes/compare/v0.19.6...v0.19.7

Declared Android Permissions

39 total

Shizuku API Permissions

moe.shizuku.manager.permission.API_V23

This application connects to the Shizuku service to execute system-level operations with ADB elevated privileges.

Standard Android Permissions

REQUEST_INSTALL_PACKAGES
RECEIVE_BOOT_COMPLETED
SCHEDULE_EXACT_ALARM
com.android.alarm.permission.SET_ALARM
FOREGROUND_SERVICE
FOREGROUND_SERVICE_SPECIAL_USE
POST_NOTIFICATIONS
WRITE_SETTINGS
ACCESS_NOTIFICATION_POLICY
CAMERA
READ_CALENDAR
READ_CONTACTS
VIBRATE
WAKE_LOCK
SET_WALLPAPER
SYSTEM_ALERT_WINDOW
INTERNET
RECORD_AUDIO
MODIFY_AUDIO_SETTINGS
com.nothing.ketchum.permission.QUERY_GLYPH_STATE
com.nothing.ketchum.permission.CONTROL_GLYPH
com.nothing.ketchum.permission.ENABLE
ACCESS_FINE_LOCATION
ACCESS_COARSE_LOCATION
ACCESS_NETWORK_STATE
FOREGROUND_SERVICE_MEDIA_PROJECTION
USE_FULL_SCREEN_INTENT
READ_PHONE_STATE
READ_CALL_LOG
RECEIVE_SMS
ACCESS_WIFI_STATE
BLUETOOTH
BLUETOOTH_CONNECT
BLUETOOTH_SCAN
PACKAGE_USAGE_STATS
ACCESS_BACKGROUND_LOCATION
SEND_SMS
com.tdvorak.nothingmodes.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

Specifications

CategoryAutomation
Packagecom.tdvorak.nothingmodes
LicenseGPL-3.0
GitHub Stars4
Installs125
Target SDKAndroid 14+ (API 36)
Last UpdatedOctober 2, 2026
Release DateOctober 2, 2026
Root RequirementRootless (Shizuku)
ShizuStore Installation

Install via ShizuStore to enable automatic updates and silent installations using Shizuku.

Nothing_Modes - Shizuku App | ShizuPortal