SetCPU for Root Users [2.2.4] Undervolting and more 07/07/2011

Not open for further replies.
Search This thread


Senior Member
Oct 11, 2007
i think somethings is wrong with setcpu on the last 2.1 on X10 setting it ondemand i rarely see it going down to 245 when idle.. if i set conservative it mostly sits @245 and not going up making the phone sluggish

On 1.6 worked like a charm... please fix :(


Senior Member
Feb 15, 2009
I installed this app on my Touch pro running on Android.
I have some questions. Will this program shorten the life time of my CPU?
Cause it keeps clocking it back and forth.

I mean, the hardware wich clocks it back and forth can't be made to do this for every 5 secs...

ALso, a little offtopic but kinda related. My cpu in my toch pro runs at 528 default.
I used another startup wich overclocked my cpu to a max of 616 mhz.

Will this overclock shorten the life time of my touch pro?


And also, I only get two options. On demand and performance.
I see 5 options on my bro's phone.
He has native android. I got it on my touch pro.
Why don't I get those fancy options?


Jul 24, 2007
i think somethings is wrong with setcpu on the last 2.1 on X10 setting it ondemand i rarely see it going down to 245 when idle.. if i set conservative it mostly sits @245 and not going up making the phone sluggish

On 1.6 worked like a charm... please fix :(

I'm noticing the exact same thing with Setcpu on my Evo.

I am running Fresh EVO with Netarchy kernel. Even after uninstalling SetCPU I'm noticing in System Panel that it still vacillates wildly. So I reverted back to the stock kernel, reinstalled setcpu and it still behaves in a similar fashion.

I ended up just setting it to performance and letting it run at max speed as it doesn't seem like going down to 246 Mhz for 3 seconds, then 998 for 10 seconds, then 246 for 10 seconds, ad nauseum, was doing any good at all.

Any possible reasons as to why this is?


Senior Member
Feb 15, 2009
Yeah on my touch pro this works like a charm.
On my kaiser running Android, this force closes. But it force closes after I try to set the min and max freq.

They both run on the ARMv6 instruction sets. And they both have a qualcom processor.

Please fix this weird error so I can use both devices again.

BNtw on the kaiser it does ask for super user acces. And it gets granted, so my kaiser is rooted.


Senior Member
Jul 29, 2010
hmm on the Galaxy S. no matter what I set for my Screen Off profile, it always freezes my phone on sleep. here's what I've tried.

100/400 - Conservative
200/400 - Conservative
400/400 - Convervative

any help? lol. my main profile is the usual 100/1000 - Conservative.
I'm guessing priority doesn't make a difference since I only have one profile enabled. all profiles are set to 100priority.


Set it to 100/800 and no problem. Is a bug.


Senior Member
Oct 16, 2010
Buchs SG

And also, I only get two options. On demand and performance.
I see 5 options on my bro's phone.
He has native android. I got it on my touch pro.
Why don't I get those fancy options?

As far as i know it shouldnt make a difference,since on demand is factory setted on most of the phones,but has to be confirmed, cause i have i9000 and thats comletely different. Eg. On demand is unstable on sgs and causea the pgone not to be able to wake up from lock screen.

Sent from my GT-I9000 using Tapatalk


Senior Member
Nov 9, 2010
i just got an wildfire yesterday, it's my first android device, i rooted it today.
so if i say anything that's noobish, that's why.

I noticed that some people are talking about clocking it to more than 700mhz, now after i've installed setcpu on my stock sense 2.1, i only get 528mhz as highest setting, how would i get to go above 528?


Senior Member
Sep 1, 2005
Disney World
Just a little FYI... the readme.txt file is slightly out of date... I know, I'm a little anal about this and you probably don't care or assume that anyone who knows how to use adb to install knows that you need to use the full name of the file to be installed, but I'm just like that.
For those that care, I'm referring to the line that should read:
adb install setcpu[B]_2.04[/B].apk

Brian Rubin

Senior Member
Sep 29, 2010
Los Angeles, CA
Hey guys, new here and could use some help. :) I hope you don't mind me asking, but searching returned way too many results and I'm too impatient to go through over 100 forum pages. ;)

I just got this program and I'm fiddling with it and can't figure something out.

I want the CPU to go slower as the battery goes lower. For example, I have one profile that sets my EVO's CPU to 652 is the battery goes under 50% with a priority of 70, and 768 if the battery goes under 70% with a priority of 30, for example.

Currently the battery is at 61%, which I would think mean it would use the under 70% profile settings with a max at 768. However, it's sicking with the 50% profile using the max at 652.

What am I doing wrong here? Any help would be appreciated. Thanks, in advance.


Senior Member
Feb 15, 2009
Huh? Thats the same freq my touch pro is running default in wm. My touch pro runs 630 mhz with setcpu (and special android boot settings). It works like a charm.

I thought android devices would be like almost 2x faster than my touch pro? Looks like my Touch pro aint that bad after all..
Last edited:


Senior Member
Nov 29, 2006
Vancouver, BC
Hey guys, new here and could use some help. :) I hope you don't mind me asking, but searching returned way too many results and I'm too impatient to go through over 100 forum pages. ;)

I just got this program and I'm fiddling with it and can't figure something out.

I want the CPU to go slower as the battery goes lower. For example, I have one profile that sets my EVO's CPU to 652 is the battery goes under 50% with a priority of 70, and 768 if the battery goes under 70% with a priority of 30, for example.

Currently the battery is at 61%, which I would think mean it would use the under 70% profile settings with a max at 768. However, it's sicking with the 50% profile using the max at 652.

What am I doing wrong here? Any help would be appreciated. Thanks, in advance.
The profiles tab is pretty friendly in SetCPU. You can define conditions such as when your battery drops below a certain percentage and the min-max values for the processor then.


Senior Member
Jan 26, 2009
I have a problem with SetCPU on Samsung Galaxy Spica (i5700). After installing SetCPU I don't get the option to "autodetect" speeds, only the long list of devices, and since there is no S3C6410 based device there, I can't use it. On my Milestone it shows a short list ("autodetect best" and "other freq. sets"), but for some reason on Spica it goes straight to the list.
I tried setting another set and hit menu -> device selection, but it behaves the same. Any suggestions?


Senior Member
Dec 2, 2007

I bought SetCPU2.0.4 and love it!
I'm using it in conjunction with Milestone-overclock.

I have a Motorola XT720 that I'm running rock-solid-stable at 1GHz and 63vsel.


Could a future revision of SetCPU also include a Voltage throttle down as an option within the profile settings?

For instance, when my profiles kick in... I'm assuming the voltage is staying the same at 63 (which would continue to drain battery, no?)

If I had the option to throttle down the voltage for the lower clock settings, I think the profiles would be incredibly more useful.

Thanks again!
Awesome App!
Not open for further replies.

Top Liked Posts

  • There are no posts matching your filters.
  • 531
    ROM developers: Please do not include SetCPU in your ROM. I appreciate the work you're doing, but link to this thread instead, and I'd really appreciate it if you mention that SetCPU is available on the Android Market. :)

    SetCPU is a CPU speed tweaking application for Android. More specifically, it allows control of certain aspects of the Linux cpufreq driver, allowing for overclocking, underclocking, or tweaking speeds and settings on many Android devices. It will work with most if not all rooted Android 1.5/1.6/2.0/2.1/2.2/2.3/3.0/3.1 builds on most devices.

    The program is free here for XDA members. It costs 1.99 on the Android Market and available for purchase on the Amazon Appstore for users in the US.

    QR code (please donate by buying it on the market :D):

    Warning: Extremely low or higher than normal frequencies may freeze your phone. Especially high frequencies (such as those enabled in certain custom kernels) have a risk of shortening the life of your phone. If your phone freezes, just yank out the battery.

    Please buy it on the Market to donate if you like it. :)

    Documentation and more information can be found here:

    1.4.0: Revamped the main interface quite a bit, and fixed a few minor bugs.

    1.4.0a: fixed a bug where 122MHz was being called 128MHz.

    1.4.1: * Using Eclair API. Will work on QVGA devices (Tattoo) and WVGA devices (Sholes)
    * Major performance enhancements - setting frequencies should be much faster in every situation (in the main application, profiles, upon startup, etc.).
    * Added a small home screen widget that shows the current maximum and minimum frequencies. Clicking this widget launches SetCPU.
    * Frequency lists for Snapdragon devices, Samsung Galaxy, Motorola Cliq, and HTC Tattoo have been included, though support for these devices is experimental. The device can be selected on the introduction screen.
    * Custom frequency lists are now supported. To enable custom frequencies, place a file called setcpu.txt on /sdcard/ or /system/sd/, sorting frequencies in kHz, separated by comma, from lowest to highest, then select the corresponding option on the introduction screen.
    * There is no longer a "set" button - changing the seekbar positions will immediately set the frequency. As a result, all seekbars in the application will now snap back if the user attempts to place the maximum frequency below minimum.
    * Instead of refusing to work at all, SetCPU will now operate in a read-only mode if root access is not detected.

    1.4.2: Instead of choosing between performance (always max) and ondemand CPU governors, there is now a drop down list with all the available governors on the device. Thanks morfic! Added CPU scaling configurations for the OMAP3 processor of the Motorola Sholes/Droid/Milestone. This is strictly in beta. Custom frequency list now reads from /system/setcpu in addition to setcpu.txt on SD FAT or EXT.

    1.4.3: Includes compatibility fixes for HDPI devices and UI enhancements. Frequency lists for the Samsung Moment (untested), the T-Mobile Pulse, and the Acer Liquid have been included. The application will no longer sometimes re-set CPU frequencies upon launch.

    1.4.3a: Added more frequencies for the Nexus One.

    1.4.3b: Fixed a widget issue on the Nexus One. Sorry for the rather rapid succession of updates the past few days!

    1.4.3c: Adds support for 600MHz kernel patches on the Motorola Droid. On the Droid configuration. SetCPU will attempt to detect the existence of 600MHz and adjust the frequency list accordingly.

    1.4.4: Adds an "autodetect" option that works on newer kernels (at the bottom of the device selection screen). This should enable the supercharged speeds in some of tasmanian_droid's newer kernels. Fixes a force close crash when selecting some frequency lists that were not compatible with the device (thanks Julian).

    1.4.5: - Streamlined/refactored profiles code.
    - Added "battery temperature" profile. SetCPU is now able to set a certain speed when the battery goes above a user-defined threshold. This would optimally be set to throttle the CPU lower at a high temperature. To ensure compatibility with your device, see if a valid temperature is displayed in the "System Info" menu. This profile does not take effect immediately and does not replace being cautious - it is not based on CPU core temperature, and must wait for a battery state change before reacting.
    - Added an "About" button to the main screen with simple themes. Default color scheme is now "Dark"
    - Adjusted the widget to display four digit speeds properly (thanks Berzerker).
    - Various bugfixes and UI tweaks.

    1.4.6: Fixed issues with the battery profile. Included a much better icon thanks to Josh Deere (dphase).

    1.5.0: * CPU governors can now be defined in profiles.
    * Included a notifications service for profiles - turn this on using the relevant checkbox in the profiles menu.
    * Profiles now log which speed and governor is being set.
    * Added "advanced" tweaking capability for conservative governor.
    * The system info menu and profiles menu now show temperature in both Celsius and Fahrenheit, and the widget also now displays battery temperature in Celsius and Fahrenheit.
    * Added a "long benchmark" option to the system info menu, which should be more consistent than the "short benchmark."
    * Also added a simple stress test to the system info panel to test the stability of overclocks.
    * Autodetect is now the default for devices that support it, and will be the first option in the menu if available.
    * Improved I/O performance.
    * Various bugfixes, especially in profiles.

    1.5.0a: * Charging profile now no longer takes effect when the phone is at 100% battery and unplugged.

    1.5.1: * Two more battery profiles added. Lower battery readings will always take priority (eg. under 80% will always take priority over under 100%).
    * Governor will now refresh alongside the other readings. Added governor reading under current frequency reading.
    * Added an auto-refresh checkbox to the main screen. If checked, SetCPU will periodically refresh the current frequency reading without the need for pressing the refresh button. This checkbox applies to the system info panel as well.
    * Tweaked the widget, and attempted to fix the elusive bug where the widget did not update correctly sometimes.

    1.5.1a: * Fixed widget being cut off in landscape mode.
    * Fixed Fahrenheit temperature reading in profiles.

    1.5.2: * Added optional failsafe notification warning system that plays a ringtone and flashes the LED red when the failsafe profile is active (thanks WootRoot!).
    * Added "copy to clipboard" function for the System Info menu (press Menu).
    * Added an optional "active" widget, which will refresh CPU speeds at an interval like the main interface.
    * Added support for the OMAP3 temperature sensor for the Droid. If present, use of the OMAP3 temperature sensor can be enabled in the failsafe profile.
    * If available, the OMAP3 temperature can also be read in the system info menu.
    * CPU temperature settings will only appear if the sensor is present and support for the temperature sensor is enabled in the kernel! Right now, this is only for the Droid.
    * The about menu now defaults to a "default" theme where SetCPU will not mess with any backgrounds defined in the XML layout.
    * Fixed stress test failing when JIT is enabled.

    1.5.2a: * Temperature sensor used in the widget for the Droid is now controlled by the failsafe setting. I will implement a proper appwidget configuration activity in a later update.
    * Fixed an issue with the audible warning notification not being properly dismissed.
    * Profiles optimizations.

    1.5.3: * Memory/performance footprint decreased.
    * Battery drain should be fixed on the Droid.

    1.5.3a: * Active widget CPU usage optimized.
    * Further profiles optimization for the Droid.
    * Uncommon I/O force close fixed.

    1.5.4: * Switched to the Android 2.2 SDK.
    * Enabled external storage support (install location is automatic).
    * Eliminated the distinction between the active and passive widgets, and replaced it with an appwidget configuration activity for the widget, allowing the user to choose the color of the max/min text, temperature display, temperature sensor (Droid), and refresh interval.
    * Optimized the active widget refreshing.
    * SetCPU will now hide non-autodetect frequencies by default on devices where autodetect is available, but hard coded frequencies and the custom option can be re-enabled with a button.
    * Custom frequency list can now read from this exact file: /data/local/setcpu (in addition to the previous setcpu.txt on SD fat or ext).
    * Includes various bug fixes and minor UI changes.

    1.6.0: * Ported parts of the app to the NDK to improve performance.
    * Fixed a bug where the widget was resetting colors upon reboot or launcher orientation change.
    * Autodetect now works for all devices. It is recommended by default.

    2.0.0: * User interface has been completely redesigned, and now uses tabs for switching between menus instead of buttons. Landscape mode in the main tab no longer requires scrolling down. The Advanced menu and Profiles menu have also been redesigned for a better landscape experience.
    * The "auto-refresh" option and refresh button in the main interface and system info menu have been retired - SetCPU always auto-refreshes automatically.
    * The profiles menu and service have been recoded from scratch, and now allows the creation of unlimited profiles with custom priorities. The "priority" meter for each profile determines the order in which it is evaluated - if two profiles apply to a given situation, the profile with the higher priority will be set. If you had profiles set before 2.0.0, you will need to set them again.
    * Profiles have been further optimized for performance footprint as a result of the re-structure.
    * Added "Charging AC/Full" and "Charging USB/Full" profile conditions to distinguish between fast charging and slow charging modes on some devices (thanks Julian).
    * Added a beta "perflock disabler" feature that will enable frequency changing on stock HTC 2.6.29 kernels. Access the perflock disabler this by pressing Menu in the main interface. If this gives you an error, does not work, or crashes your phone, your kernel is not compatible - pull your battery to reset if necessary. E-mail me with your ROM, phone model and kernel information in "System Info" (thanks to Richard for a lot of help with the low-level stuff, and no thanks to HTC for implementing perflock in such a way ;). To access the perflock disabler, press Menu in SetCPU's main interface.
    * Code cleanup and more.
    * A big thanks to everyone who tested, especially those who gave feedback on this one, all the people who purchased SetCPU from the Android Market, as well as all my users.

    2.0.0a: * Fixed a permissions error that was causing SetCPU to autodetect incorrectly and force close on some ROMs.

    2.0.0b: * More fixes, sorry guys.
    * Fixed an issue with profiles and custom frequency lists.
    * Clarified the profiles priorities introduction.
    * Fixed a bug with the Advanced menu erroneously reporting values if the governor was changed after onResume was called, and fixed a crash that sometimes occurred as a result.
    * Fixed a bug where the passive widget acted like the active widget after frequencies were manually set.

    2.0.0c: * Fixed issues with the Advanced menu and Advanced settings not being
    applied on boot.
    * Fixed an issue in where temperature warnings were not being dismissed
    * SetCPU 2.0.0 no longer force closes on Android 1.5 devices, but the UI in
    some menus is flawed. I recommend that you update to a more recent version of
    Android if possible.

    2.0.1: * Added a few widget backgrounds. Configure this when adding the widget.
    * Added the ability to "swipe" to the next tab.
    * Fixed various bugs.
    * New documentation is up.

    2.0.2: ** End of life for Android 1.5 support.
    - Perflock disabler support for HTC-kernel
    - New native benchmark button in the system info menu. The results of this benchmark is unaffected by VM optimizations like JIT, so it's ideal for speed comparisons across different devices.
    - Added support for tweaking the "min sample time" of the interactive governor, if available.
    - Fixed a bug where the scaling governor would not change when the profile switched and SetCPU's main tab was visible.
    - Fixed an ANR bug in the "set on boot" function which sometimes caused the Advanced settings to not apply.
    - Fixed an issue where SetCPU sometimes did not start on boot when used with Superuser Permissions 2.2.x.
    - Fixed a force close issue that occurred when SetCPU could not autodetect frequencies due to permissions errors in the ROM.

    2.0.3 - Added a "safe mode" function that prevents SetCPU from running any tasks during boot if a file called "setcpu_safemode" exists in /sdcard or /data/local. This is useful if unstable settings were saved with "set on boot" checked.
    - Reverted changes originally made to compensate for the old Superuser Permissions startup bug. SetCPU should perform startup tasks expediently again.
    - Perflock disabler has been tested to be stable on supported kernels. The perflock disabler menu now has a "set on boot" function. Always disable this when switching to a new kernel or ROM. If you forget to do this and you get crashes, you can use the safe mode function above to disable it.
    - Fixed crash issues with read-only (no root) mode, and disabled perflock disabler in read-only mode.
    - Fixed a crash related to the widget service.

    2.0.4 - Added the ability to back up and restore profiles to and from the SD card by pressing the Menu button in the Profiles tab. A "send" option is also available to send the profiles file as an attachment. Save the .setcpudb file to the SD card to restore it.
    - Added perflock disabler support for HTC kernels and (T-Mobile G2, myTouch HD, Desire Z, Desire HD). "Set on boot" will not yet work on these devices because they only have temporary root.
    - Fixed another crash in the widget.

    2.1.0 - Significant UI and user experience revamp, including a new background for the widget, and new notification icons
    - Added a quick priority swap button to the profile lists
    - Significantly improved the reliability of autodetect on certain kernels
    - Numerous bug fixes and crash fixes

    2.1.1 - Fixed an issue with profiles backup in CM7.
    - Added support for the Motorola Xoom, Atrix 4G, and other Tegra 2 devices.
    - Fixed various bugs.
    - Tablet optimized UI and more profiles coming soon!

    2.1.1a - Fixed the 0 MHz display issue on some devices.

    2.1.2 - Minor update. Adds a time of day based profile which will trigger based on a set time range. Fixes a bug with profiles and certain dual core kernels. Switched to the Android 3.0 SDK. Note that on some Tegra 2 kernels, scaling is completely controlled by the driver. - Fixed a crash that occurred when updating from certain versions of the profiles database.

    2.1.3 - Added perflock disabler support for HTC kernel (in beta). Enhanced the Time in State readings in the System Info menu to include percentages. Removed WiFi permission until this feature is added to profiles. Fixed another database crash, and other bugfixes.

    2.1.4 - Revamped Info tab UI. In portrait, clicking on an item in the Info tab will launch information on that category, and pressing back will return to the menu. In landscape, the content and the menu are split into two columns. Benchmarks are at the bottom. Added a chart for Time In State readings. Widget reliability fixes and optimizations. The main screen now indicates which kind of profile is currently active with an icon. Miscellaneous bugfixes and optimized performance.

    2.2.0 - Added an "In Call" profile. Improved the Set on Boot safemode function by including a flashable zip that toggles SetCPU's safemode. Press menu on the main tab for more details. Added autodetect support for all Tegra 2 fakeShmoo kernels (ie. G2x). Added a "Voltage" tab for undervolting the CPU on fakeShmoo kernels, some custom Galaxy S kernels, and some Nexus S kernels. This is a full-fledged interface for undervolting these devices, and includes backing up and restoring and a Set on Boot checkbox. Improved the way SetCPU initially requests root. Various miscellaneous bugfixes.

    2.2.1 - Fixed the voltage force close bug on some Galaxy S devices by adding undervolt support for older Galaxy S undervolt kernel patches. Added perflock disabler support for HTC kernel (beta).

    2.2.3 - Fixed an issue where the voltage menu displayed frequencies backwards on certain devices capable of voltage control. Added support for additional CPU temperature sensors.

    2.2.4 - Improved support for the new MSM 8x60 devices (such as the HTC EVO 3D and Sensation).
    thanks dude, that was a fast update!

    I wonder if it is possible to add some more freq. between the range of 384 and 528 for the next udpate, e.g. like 500 or 480 for the non 1.5 cupcake build.

    The CPU won't set to anything else, unfortunately (if you set it to 500 for example nothing actually happens).
    I've tried just about everything:)
    Yeah the first thing I did was clear the market cache after uninstalling before going to the market. I expected to see the price for it after doing that but only saw install. No price and got the same error. I even used titanium backup to disconnect it from the market after an uninstall. Same issue. I'm sure it's not an Amazon issue with me since I've never dealt with it in Amazon except search for it to see the price, but all suggestions are welcome.
    This did just make me think of something to try. So of to try something. Thanks...:)

    I wish I wasn't being ignored.... is a workaround. Currently there is a bug with the Android Market (or now Google Play) where if you load a apk using the same signatures, it will think that you purchased the app (such as installing the APK in OP) and won't let you buy it. The link I linked is a workaround and will allow you to buy his app.
    Sweet.. looking for something like this.
    It has issues with Shake Awake app, everytime single time all day long shake awake forces close when I use SetCPU. Im I the only one with this issue?

    Do you have the lock feature "on?" SetCPU will query a file to see if the phone is awake if lock is on.
Our Apps
Get our official app!
The best way to access XDA on your phone
Nav Gestures
Add swipe gestures to any Android
One Handed Mode
Eases uses one hand with your phone