ShizuStore

Renoir

exaclast

1.0-alpha2 · GitHub

Download APK
Customization Android 7.0+ 1 month ago Proprietary
197 ShizuStore
304 GitHub
4 Stars
1 MB Size

More about this app

Material You theme designer that applies custom overlays through a Shizuku shell command.

Renoir

Build and Test Release

A modern Android application built with Jetpack Compose and Kotlin that acts as an advanced Material You (Monet) theme designer, generator, and applier.

Project Overview

This app allows users to visually design a Material 3 dynamic color scheme from a single seed color. It leverages the material-kolor library (a port of Google's material-color-utilities) to accurately map colors to the HCT (Hue, Chroma, Tone) color space and generate cohesive tonal palettes.

Once a theme is designed, the app generates a shell command that uses Android's internal settings put secure theme_customization_overlay_packages command to apply the theme system-wide. The app can apply this directly if granted the WRITE_SECURE_SETTINGS permission via ADB, or it can use Shizuku to apply the theme on-device without a PC.

Permissions

To apply themes, you must grant the app permission using ONE of the following methods:

Option 1: Shizuku (On-Device, No PC Required)

  1. Install Shizuku from the Play Store.
  2. Start the Shizuku service (via Wireless Debugging or root).
  3. Open Renoir and click "Apply Theme". You will be prompted to grant Shizuku access.

Option 2: ADB (Requires PC)

Connect your device to a computer with ADB installed and run:

adb shell pm grant com.exaclast.renoir android.permission.WRITE_SECURE_SETTINGS

Note: This is a one-time setup. The permission persists across reboots and only needs to be granted once.

Tech Stack

  • Language: Kotlin
  • UI Framework: Jetpack Compose (Material 3)
  • Architecture: Single-Activity, MVVM (Model-View-ViewModel) with StateFlow
  • Dynamic Colors: com.materialkolor:material-kolor (HCT color space & Monet schemes)
  • Build System: Gradle (Kotlin DSL, Version Catalogs)

Key Components

The codebase is organized under app/src/main/java/com/exaclast/renoir/:

  • MainActivity.kt: The entry point. Configures the edge-to-edge layout and wraps the app in a DynamicMaterialTheme that reacts to the ThemeViewModel.
  • ThemeViewModel.kt: The single source of truth for the app's state (Seed Color, Palette Style, Dark/Light mode).
  • ui/RenoirScreen.kt: The main dashboard. It combines the live preview and configuration controls.
  • ui/components/ColorPicker.kt: A custom HSL (Hue, Saturation, Lightness) color picker with live gradient backgrounds for intuitive color selection.
  • util/RenoirCommandGenerator.kt: Generates the exact JSON-formatted shell command required to apply the theme natively on Android 12+.
  • util/ThemeApplier.kt & util/PermissionHelper.kt: Handles applying the theme directly via Settings.Secure if permissions are granted, or routes through Shizuku's IPC mechanism.

How to Build and Run

To build the project locally or install it on a connected device/emulator, you can use the Gradle wrapper:

# Build the debug APK
./gradlew assembleDebug

# Install the app on a connected device
./gradlew installDebug

Acknowledgements

This application was written and developed in collaboration with Antigravity, an AI coding assistant by Google DeepMind.

Close

How Shizuku is used

Can apply custom Material You themes system-wide via Shizuku with `settings put secure theme_customization_overlay_packages`.

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

Renoir uses Shizuku to apply the Material You theme designed in the app system-wide.

  • Apply custom theme: the seed color, palette style, contrast level and dark mode chosen in the configuration UI are converted into a theme payload and applied with the settings put secure theme_customization_overlay_packages shell command run through Shizuku when the user taps Apply Theme.

Android APIs or commands used

  • settings put secure theme_customization_overlay_packages

Notable details

Without Shizuku the same theme can still be applied directly if the app has been granted WRITE_SECURE_SETTINGS, or the generated shell command can be copied to the clipboard for manual use.

Close

Changelog

What's new for version 1.0-alpha2

Close

Permissions

3 permissions requested

  • android.permission.WRITE_SECURE_SETTINGS
  • com.exaclast.renoir.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
  • moe.shizuku.manager.permission.API_V23
Close