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.

3
  • 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
    Commented Aug 19, 2016 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
    Commented Aug 19, 2016 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
    Commented Sep 9, 2016 at 15:27

1 Answer 1

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.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .