Android: completely disabling deviceidle ("Doze") in Android M?

HippoMan picture HippoMan · Oct 23, 2016 · Viewed 17.7k times · Source

In a rooted Android M device, I want to completely disable deviceidle mode ("Doze"), all the time. Yes, I know this affects my battery life, and that's fine with me.

I know that I can invoke the following:

dumpsys deviceidle disable

However, I haven't been able to find detailed docs for that subcommand. Does it actually disable "Doze" completely and permanently on my device (or at least until the next boot), or does it perform some other related function?

If that "dumpsys deviceidle disable" command isn't the way to permanently disable "Doze", is there some other way, perhaps via the Android Java API? Actually, a Java-API solution would be ideal, if one exists.

Answer

Carlos Hoyos picture Carlos Hoyos · Apr 4, 2017

That command disables Doze mode even without root, but then you will have to execute the commands again after reboot. Some people also use another command to enable the doze whitelist, as it seems that Marshmallow has it disabled by default and it does nothing.

adb shell dumpsys deviceidle disable
adb shell dumpsys deviceidle whitelist

If you have root, you can download an app to execute this script every time on system boot, effectively disabling Doze mode forever.