Force dark mode per app on Android — without root.
DarkSwitch is a small, open-source Android utility that uses Shizuku and foreground-app detection to attempt system-level force-dark behavior for selected applications. Android and OEM implementations differ, so results can be working, partial, or unsupported.
- Android 10+ and Shizuku; no root required
- Select applications and let DarkSwitch toggle force-dark as they enter the foreground
- Automatic strategy fallback with a remembered strategy per package
- Offline compatibility database bundled as JSON
- One-tap restore for all known switches and saved selections
- In-memory diagnostics only; no network, analytics, account, ads, or cloud
- Install and start Shizuku.
- Grant DarkSwitch Shizuku permission.
- Enable DarkSwitch's accessibility service. It only observes foreground package names.
- Grant notification permission where required.
- Enable the engine and select applications.
Confirmed results live at app/src/main/assets/compatibility_database.json. Contributions should include the package, tested Android/device information, status, recommended mode, and concise notes. See CONTRIBUTING.md and the compatibility issue template.
Force Dark is not a universal theming engine. Apps using fixed colors, custom rendering, images, WebViews, or explicit force-dark opt-outs may remain light or show visual defects. A successful shell command means the system accepted the operation; it does not prove the target UI rendered correctly.
Open the project with a current Android Studio installation and Android SDK 36. The included Gradle wrapper requires network access on first use to download Gradle and dependencies.
Apache License 2.0.