In my previous post, I showed how to setup automatic / scheduled reboot in android phones. This worked for me and I woke up to a fresh Droid 2 every morning. Soon I realized that the reboot was messing with overclocking. My Droid 2 is overclocked using QuickClock Advanced. For some reason my /system/libs/modules/overclock.ko does not load properly upon boot. So on rebooting I would lose my overclock and would have to manually load the profile in QuickClock Advanced. This was inconvenient and so I set out searching for better options.
Hot rebooting is the term used to describe the rebooting only the android graphical shell. It is much faster than a full reboot. More often than not rebooting the graphical shell will remove the occasional sluggishness of the phone. It is much simpler alternative to task killers to free up memory. In fact there are apps that can do this. My test showed that once loaded the overclock.ko module was not unloaded during hot reboot. Therefore my overclocking stayed intact. Other advantages are that the system up-time is not reset after a hot reboot.
Android experts (which I am not) would argue that android OS does not require reboot and it is capable of handling the resources intelligently. While they may be right, my personal experience is that hot rebooting clears up the occasional sluggishness of my phone. Then I thought how it would be to wake up everyday and have a phone that had just hot rebooted and is ready to go. I did some research and accomplished it as described below.
Note: Your phone should be rooted for this to work.
Search the market and install Script Manager. There is a free version as well as an ad-sponsored version.
Save the following codes to a file named "hotreboot" (or anything you like). You can write it on your phone using Script Manager or any text editor or on your PC and move it to your SD card on the phone.
#!/system/bin/sh su -c 'pkill -TERM -f system_server'
Then open Script Manager and go to "Advanced Options" and select "Scheduler".
Schedule the script to run as shown below. Of course, choose the run time that works for you.
After adding the hotreboot script, it should appear in the list below (as shown in the picture above). Long-press it and select "Config". Choose "Run as root" and "Is Script", as shown in the picture below. Be careful NOT to select "Run at boot" or your phone will go on a reboot loop.
Save and exit all the way out. Thats it. Your phone should automatically hotreboot at the scheduled time. If you like you can add a hotreboot shortcut to your homescreen using the Script Manager widget.
Now my phone is set to automatically reboot once a week and hotreboot everyday to give me a fresh and slick android experience. Enjoy!