Overview
Starting in Android 6.0, Google introduced Doze Mode (deviceidle), a power-saving framework subsystem that aggressively suspends network access, defers background jobs, and ignores sync requests when a device is unplugged and stationary with the screen off. While effective for battery conservation, Doze frequently causes severe notification delays for messaging apps, VoIP phone clients, smart home monitors, and local servers (like Syncthing or Termux services).
Developed by draumaz, Doze Disabler is a lightweight systemless utility that automatically disables Android’s deep and light Doze mechanisms during boot. By executing framework service directives during startup, it keeps network pipelines and background workers permanently responsive.
Why Background Apps Sleep
When Doze activates, Android enforces strict restrictions:
- Network access is severed for all non-whitelisted applications.
- Wake locks are completely ignored.
- Standard
AlarmManageralarms are deferred until rare maintenance windows. - Background sync adapters and
JobSchedulertasks are placed on hold.
Even when users whitelist an app from “Battery Optimization” in Android Settings, the operating system still enforces network and alarm throttling during deep Doze states. Doze Disabler resolves this by disabling the deviceidle controller globally.
How Doze Disabler Works
The module executes during the late_start service phase after the Android System Server and DeviceIdleController are fully initialized:
dumpsys deviceidle disable
This instructs the framework that Doze state transitions are disallowed. The device continues to transition into low-power Linux CPU suspend states when the screen turns off, but network sockets and background alarms fire in real time without batching delays.
Installation & Verification
- Download
dozedisablerfrom the GitHub repository releases. - Install the
.ziparchive using Magisk, KernelSU, or APatch. - Reboot your device.
- Verify that Doze is disabled via terminal or ADB:
The command should returnsu -c dumpsys deviceidle enabled0, confirming that the Doze subsystem is inactive.
