1

Some Android users often complain about some system service constantly executing, so just want to get rid of it at any cost to avoid battery drain. In my scenario it's DreamManagerService which is unimportant right now.

Since this is a system service (service list | grep -i dream) i can't find it in the process list (ps -x | grep -i dream), and interestingly also not seeing it in init.rc or similar. So my question is more about: how to stop a system service? (specifically on android)

EDIT: android version is 5.0.2 for the current question. It has been reported by other users that in android 6 apparently this service is visible and can be handled much better.


As a short introduction (bonus FYI), the so-called DreamManagerService namely DayDreams or simply screensaver, makes sense for OLED screens which turn off black pixels, but some LCD IPS phones also allow this functionality (unreasonably).

Obviously I have already checked that the configuration is okay (disable screensaver), but the service is still running and somehow preventing the CPU from sleeping, thus eating up the battery. This fact can be diagnosed by using Wakelock Detector app or similar one.

  • Nopes! This internal service is not listed no-were in the app -- I've already investigated with disable service, additionally can't find any app named My Android Toolbox. Did you try it yourself? Internal service name is "dreams". – JCM Aug 19 '16 at 10:51
  • I used ROM toolbox to freeze that Basic Daydreams on 6.0.1- you need to edit your question to mention android version and this is the other app, sorry wrong name earlier My Android Tools – beeshyams Aug 19 '16 at 11:22
  • 1
    Thank you @beeshyams, i've been looking at your suggestion but apparently on Lolipop does not work (still hidden). I'll post my 'manual' answer later. – JCM Sep 9 '16 at 15:27
0

The short answer to kill whatever is running on Android is by using the Activity Manager, Package Manager, and deal with the Service Interface (see here).

However the DreamManagerService on my Lolipop is very tricky and it will complain it's not running at all (even if it is). So what I did was:

  1. Enable the simple screensaver Clock and configure it to run only when docked. This makes sure it's working properly.
  2. Execute with root the KillDreams.sh script, which kills everything relevant. As a bonus I run it automatically after every reboot using Apps2SD.

    sleep 5
    echo Normal procedure for am...
    am stopservice dreams
    sleep 1
    echo Force procedure for am...
    am force-stop android.service.dreams
    am force-stop android.service.dreams.IDreamManager
    sleep 1
    echo Stop service...
    stop dreams
    echo Finished...
    

And voilà! It worked! Currently my battery lasts nearly double, compared to having it run in the background.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.