[ROOT] Using SetCPU + Perflock Disabler to Save Battery, Underclock


  1. pingpongboss

    pingpongboss Well-Known Member

    I'm sure many people has seen the thread where OverclockWidget was claimed to have increased the battery life for some people. Near the end of the thread I became skeptical and proved that it had in fact no effect on the CPU speeds at all, and so can not save battery life. Well, good news is that a new function in the competing SetCPU app will now get you a real, tested increase in battery life.

    According to my tests, my Evo with the screen off should theoretically get a 64 hour battery life!

    [​IMG]

    Know what you're doing? Short version: Get latest SetCPU (version at least 2.0.0) and use Menu -> Perflock Disabler in the Main tab to enable underclocking.

    Don't know what I'm talking about? Good, follow this tutorial:

    Prereqs:
    • You need to have ROOT. Unrevoked root method is confirmed to work, and so is Toast's root method. Usually I wouldn't recommend using Unrevoked, but it's just so fast to set up, and perfect for those who have no clue what ROOT means.
    • Buy SetCPU from the market, or download it from XDA forums for free. Please support the developer of this incredible app! The version must be at least 2.0.0b
    • Be on the STOCK kernel. If you're on a custom kernel, chances are that perflock has already been disabled, and you won't need this tutorial to underclock. Some custom ROMs come with the stock kernel (like Fresh 0.5.3) and some don't (like Baked Snack .9.6)

    Alright, got the prereqs down? Lets start this.

    HOWTO:
    1. Open SetCPU and give it root permissions as necessary. As a control, go into the Info tab and do the Long Bench a few times. You should get around 1000ms.
    2. Go to the Main tab, hit MENU, hit Perflock Disabler (read the warning!), and hit Disable Perflock Beta: May crash!
    3. It will work for a while, and then say it's successful. You can then click the X on the top right to exit the Perflock Disabler.
    4. Go into the Main tab and drag Max: all the way down to 245000 (245Mhz). Make sure the green xxx max xxx min label above the sliders show 245 for both and also disable any Profiles you've set. Go to Info tab, then hit Long Bench again. This time you'll get something ridiculous like 5000ms, meaning that the Perflock Disabler has worked!
    5. Change your settings Profile tab to something similar to my settings. You can mess around with the Battery < xx% profiles to fit your needs. Your exact Profile priorities do not matter, it's only important that some have HIGHER priority than others. On the Main tab, set Max all the way to the right (998400) and Min all the way to the left (245000), Scaling to ondemand, and check Set on Boot. Do not check Set on Boot yet if you're the super careful kind. You can check it later when you've tested that your phone isn't crashing
      [​IMG]
      The last entry is Battery < 100%, set at lowest priority, with MAX as the highest value, MIN as the lowest value, and scaling as ondemand.

    Congratulations you're now able to underclock your Evo!

    Comparison:
    The only applicable parts is after the charging finishes (after the solid green bar ends)

    Before Perflock Disabler:
    [​IMG]

    After Perflock Disabler:
    [​IMG]
    See that little dip at the end? That's when I was turning the screen on and messing with the phone for this tutorial. What a difference.

    Disadvantages:
    • Yes, not everything is happy and pretty. As the Perflock Disabler warning says, you HAVE to apply the Perflock Disabler on every boot. If you forget, then your SetCPU settings will have no effect on the Evo. Install a custom kernel that already has Perflock disabled if you do not want to do this on every boot.
    • Also, since this clocks the Evo down when the screen is off, you may get a slight (super slight!) delay when you turn the screen back on. This is because the profile changes from Screen Off to Battery < xx% and SetCPU needs to clock the CPU from 245mhz to 998mhz.

    FAQ:
    What is Perflock Disabler?
    HTC added a "perflock" in their stock kernels to prevent over/underclocking. SetCPU's Perflock Disabler, like its name implies, disables this restriction.

    How come your screenshots show that you can go down as high as 1.19Ghz and as low as 128Mhz?
    I'm using this custom kernel.

    Will this work with OTA update xxx.xxx.xxx.xxx?
    Yes, as long as you have root, and don't lose it when you update (do your research!) then this will work.

    What are your settings?
    Wifi ON, Bluetooth OFF, GPS ON, Mobile network Data OFF (ATT contract with dumbphone still not over), Screen Timeout 1MIN, Brightness AUTO, Advanced Task Manager set to SAFE kill tasks when screen is off.

    What is that cool looking battery monitoring app?
    That's SystemPanel, paid on the market. A free alternative is JuicePlotter, also on the market. Screenshots were taken with Drocap2.

    Advertisement
    :
  2. MyRCode

    MyRCode Member

    Excellent walkthrough...good to see it all in one place. I had everything set the same way from your reply on the other thread, but this let me double check everything.

    Perflock disabled works on Fresh 0.5.

    Testing battery life today.
  3. htc.EVOlution

    htc.EVOlution Well-Known Member

    perfect! !!
  4. pingpongboss

    pingpongboss Well-Known Member

    Interesting, I assumed that all custom ROMs included a custom overclockable kernel, but after reading Fresh's changelog (PowerTOP section) again I'll have to revise the prereq part.
  5. htc.EVOlution

    htc.EVOlution Well-Known Member

    SetCPU on... I'm running Damageless Rom v3.2.3.
    Custom Kernal for Nova Screen FPS Fix and undervolt configurations.

    phones was charged to 97% when i took it off the charger.

    My phone has Bluetooth, 3G, GPS, and Brightness at 25%. Off the charger for 2 hrs and 53 mins with 3 phone calls at about 5 min each. Browsed the web and received email. I'm currently @ 93%
  6. MDbandit

    MDbandit Well-Known Member

    going to try this new version with perflock
  7. pingpongboss

    pingpongboss Well-Known Member

    Some people from XDA have been saying that setting sleep at 245Mhz has been giving them better battery life than 128Mhz for whatever reason. Think I'm gonna test it a bit further to get the sweet spot.
  8. htc.EVOlution

    htc.EVOlution Well-Known Member

    So I did a test last night.

    took it off the charger @ 10:30 with battery @ 100%.
    It's 8:08am right now and i'm showing 93%. That's with 3G, Bluetooth, GPS on.
  9. DaDoc04

    DaDoc04 Active Member

    Im running fresh rom 1.0B and just installed this. Thanks PPB.

    I will report back later tonight or tomorrow.
  10. pingpongboss

    pingpongboss Well-Known Member

    Updated the OP. The task manager I use is called Advanced Task Killer Pro. Also updated the wording in the Profiles step to show that you can change the battery level/speed any way you see fit.

    Let us know!
  11. gx1400

    gx1400 Well-Known Member

    pingpongboss, are you running the undervolt or normal voltage kernel?
  12. pingpongboss

    pingpongboss Well-Known Member

    Undervolt. It's great.
  13. v01rider

    v01rider Well-Known Member

    marked
  14. justpastfinish

    justpastfinish Well-Known Member

    So i can flash the undervolted kernel and still clock at 1ghz...it just consumes less...?

    Sent from my HTC EVO
  15. pingpongboss

    pingpongboss Well-Known Member

    Not sure how it works. It might just be the lower speeds that are undervoltaged. Or the whole thing. Not sure. Maybe try asking on the XDA thread.
  16. habitual.line.stepper

    habitual.line.stepper Well-Known Member

    i have my sleep set at 245mhz, and it's eliminated any lag I was getting when I would wake up the phone when it was set at 128mhz during sleep
  17. uminchu

    uminchu Well-Known Member

    Thank you for sharing this. Running FreshToast100b1 and incorporating your settings as a starting point. I'll report back with battery life. Thanks again.

    Side note: Running Toast kernal, while attempting to disable Perflock, SetCPU reported back that Perflock was not present, no need to disable. Nice feature.
  18. pingpongboss

    pingpongboss Well-Known Member

    Ah, yes. I believe thatkernel is configured to be overclockable by default.
  19. pingpongboss

    pingpongboss Well-Known Member

    Changed the Profiles picture in the tutorial. I initially had Charging priority over Screen Off, but it makes more sense to have Screen Off to have higher priority.
  20. DucatiDude

    DucatiDude Well-Known Member

    I'm now on 21 hours since last unplugged. Freaking amazing!! I'm blown away.
  21. pingpongboss

    pingpongboss Well-Known Member

  22. wkendrvr

    wkendrvr Member

    Thanks to the OP for the writeup. I use this with Setting Profiles, and I am seeing some amazing battery times. Setting Profiles has a bunch of features of Locale, with out the big price tag.

    Also, instead of clocking all the way up to the top, I have mine set to 768, and if the battery drops below 45%, I have it slowing down more to stretch the battery.
    sag7392 likes this.
  23. pingpongboss

    pingpongboss Well-Known Member

    Nice, that's a great way to fully extend battery life beyond what this tutorial does.
  24. PSULightingGuy

    PSULightingGuy Active Member

    I love this tip! My battery meter now practically flatlines whenever the screen is off. The only downside is now I find myself using the device more often which almost counteracts the battery saving, but I guess that's the point... Thanks so much!
Loading...

Share This Page