README.md

August 12, 2026 · View on GitHub

Adaptive Theme – Auto Dark Mode

Latest Version Stars Play Store Download Count 17,000+

Adaptive Theme uses your device’s ambient light sensor to intelligently switch between light and dark theme, optimizing readability and eye comfort for your current surroundings. It can also update your wallpaper to match the active theme.


Get Adaptive Theme on Google Play    Get Adaptive Theme as .APK on GitHub Releases    Get Adaptive Theme on Obtainium    Works with Shizuku   

Android Authority: "A brilliant app that once installed makes you wonder how you lived without it. [...] This app gives Android the automatic dark mode feature it desperately needs." – Andy Walker

HowToMen (YouTube): "No tapping, no schedules needed. It just does it on its own. [...] And don't worry, it's not killing your battery either." – Facundo Holzmeister

Computerworld: "This is how Android's dark mode should have worked since the start. Ready for an overdue injection of extra intelligence?" – JR Raphael

How-To Geek: "With a simple app, you can make dark mode (and light mode) switch with the lighting around you." – Joe Fedewa


Setup

  1. Install Adaptive Theme from Google Play or GitHub Releases.
  2. Grant the permission using the web setup tool, or Shizuku, or Root, or manual ADB.
  3. Set your lux threshold or pick a preset, and you're done.

Tip

If you don't use Shizuku, the web setup tool is the easiest option – no ADB, no Shizuku, just a browser. The app guides you through a step-by-step wizard.

Important

The required permission WRITE_SECURE_SETTINGS does not grant root access or read any user data. It only allows flipping system settings like the system dark mode and is fully reversible by uninstalling the app.

Note

If you choose Shizuku: It is only required once to grant the permission during setup. The permission persists across reboots, so Shizuku does not need to remain running in the background for Adaptive Theme to function.


Features

  • Sensor-driven switching: Uses the physical ambient light sensor – not a clock or sunset schedule – to intelligently switch the system theme.
  • Custom lux threshold: Dial in exactly when the theme flips, or choose a preset (e.g.indoor, outdoor, sunlight).
  • Night lock: Optionally hold dark mode during a fixed time window, e.g. 9 PM – 6 AM.
  • Wallpaper Theme Sync: Automatically swap your home and lock screen wallpaper when the system theme switches between light and dark mode.
  • Battery friendly: The sensor is only checked once when you turn the screen on. Zero background drain.
  • 50+ languages: Fully localized for a global audience.
  • Shizuku support: Includes native Shizuku integration as one of several setup options.
  • Material You design: Dynamic UI that adapts to your system theme and colors.
  • Quick Settings Tile: Toggle the service directly from your quick settings.
  • Free, open-source, no ads

How It Works

To avoid screen flicker and unnecessary background work, Adaptive Theme follows a strict, event-driven model:

  • Screen-on trigger — The light sensor is only sampled right after the screen turns on, not continuously.
  • Obstruction check — Validates that the sensor is not covered (e.g. by a hand or pocket).
  • Instant apply — The theme is switched before you start interacting.

This design ensures mid-session theme changes never interrupt your use, since some apps handle live theme changes poorly.


Support the Project

Adaptive Theme is completely free, ad-free, and developed in my spare time. If you find it useful, consider to:

  • Star this repository at the top to help others find it.
  • Leave a rating on Google Play — it makes a real difference in discoverability.
  • Share the app with anyone who might benefit.
  • Follow me @xLexip if you like.
  • Buy me a coffee if you're feeling generous.

Issues, questions, and feature ideas are welcome — please open an issue or use the in-app feedback option.


Architecture

Android Kotlin Jetpack-Compose Material-Design SonarQube

  • Modern UI: Written in Kotlin using Jetpack Compose and Material 3 (Material You).
  • Architecture: Follows the MVVM pattern with a Single-Activity architecture.
  • Reactive Data: ViewModels expose data via Kotlin Flows and manage concurrency with Coroutines.
  • Persistence: Type-safe settings storage utilizing Jetpack DataStore.
  • Background Work: Sensor operations run event-driven – only upon screen-on broadcasts – ensuring zero unnecessary battery drain in the background.
  • WebADB Setup Website: Simple browser-based setup tool for permission granting using WebADB (source code).

FAQ

What is the minimum Android version? Adaptive Theme works on Android 14 and above.

Why didn't the theme change right away? By design, the theme only switches immediately after the screen turns on. This prevents flicker, saves battery, and avoids interrupting an active app session.

How does Wallpaper Theme Sync work? Choose a light and a dark wallpaper in the app. When Adaptive Theme changes the system theme, it replaces both the home screen and lock screen wallpapers with the matching image. The change can take a moment and may briefly affect performance, especially with large images.

Does it work on tablets? No. Due to a technical limitation, Adaptive Theme is currently limited to smartphones.

Does this require root? No. It works on stock devices. Root is supported as an optional setup method.

How can I grant the required permission manually with ADB? Connect your device with USB debugging enabled, then run:

adb shell pm grant dev.lexip.hecate android.permission.WRITE_SECURE_SETTINGS

Does it work with custom skins (MIUI, OneUI, etc.)? In most cases, yes. Any system that respects the native Android dark mode implementation is supported.

Does it support Shizuku forks? Yes, forks like Nightzuku, Shizuku+, and Shevery are supported.

Does Shizuku need to be running all the time or after a reboot? No. Shizuku is only required once to grant the permission. Once granted, the permission persists permanently across reboots, so Shizuku does not need to stay active for the app to function.


References

International Press

YouTube Videos

Acknowledgements

  • AlbertCaro — Spanish translation strings
  • Nunito font — SIL Open Font License 1.1, Copyright 2014 The Nunito Project Authors

Made with 🥨 in Germany