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

Status
Not open for further replies.
Search This thread

coolbho3000

Retired Senior Recognized Developer
Dec 26, 2008
899
784
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: http://www.setcpu.com/

Changelog:
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
properly.
* 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 2.6.32.15.
- 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 2.6.32.17 and 2.6.32.21 (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.

2.1.2.1 - Fixed a crash that occurred when updating from certain versions of the profiles database.

2.1.3 - Added perflock disabler support for HTC kernel 2.6.35.10 (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 2.6.35.9 (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).
 

Attachments

  • setcpu_2.11a.zip
    181.7 KB · Views: 115,654
  • setcpu_2.13.zip
    276.6 KB · Views: 38,214
  • setcpu_2.14.zip
    203.5 KB · Views: 41,107
  • setcpu_2.20.zip
    352.2 KB · Views: 14,659
  • setcpu_2.21.zip
    354.8 KB · Views: 20,115
  • setcpu_2.23.zip
    354.1 KB · Views: 27,981
  • setcpu_2.24.zip
    354.2 KB · Views: 620,220
Last edited:

smagicmans

Member
Feb 11, 2009
5
0
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.
 
Last edited:

coolbho3000

Retired Senior Recognized Developer
Dec 26, 2008
899
784
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).
 

Thibale

Senior Member
Dec 29, 2005
124
12
Great app !!

Simple and efficient, the best cloacking app for Haykuro IMO. Just a question : how to keep the cpu running at 528 after reboot?
I know this may not be included in your app right now but I think with a script it might be possible. Any idea?

Thibaud
 

coolbho3000

Retired Senior Recognized Developer
Dec 26, 2008
899
784
Great app !!

Simple and efficient, the best cloacking app for Haykuro IMO. Just a question : how to keep the cpu running at 528 after reboot?
I know this may not be included in your app right now but I think with a script it might be possible. Any idea?

Thibaud

I'm kind of reluctant to add that feature because if someone's processor can't handle 528MHz I'm afraid peoples' phones will crash every time they start up forcing a wipe. :eek:
 

SolemnWishing

Senior Member
Feb 26, 2009
648
12
Oregon
lol, i actually havent had any issues with the phone locking up at 528Mhz, and im using 1.5. However, I hate taking out the battery cover ( i manage to kill my phone in other ways) so something else to do woulld just be
-adb shell
-reboot
 
  • Like
Reactions: JackTp3313

xxvtcxx

Member
Nov 3, 2008
48
7
Voltage concerns

I've noticed that when using the 528 MHz setting, my phone freezes quite often, but only when the phone is not charging. When the phone is charging, freezing never occurs. This probably means that the voltage going to the CPU is probably inadequate to power the CPU at that frequency.
 

Thibale

Senior Member
Dec 29, 2005
124
12
No freezing at all for me! Maybe some CPU are more tolerant to O/C than some others. That would explain why HTC/Google currently block the G1 to 384 Mhz max.
 

FearlessG1

Member
Feb 16, 2008
11
0
I installed Haykuro 5.0.2Hr3 and SetCPU works perfectly fine now. It would not work on my JF 1.42 RC33 build as I mentioned in the other thread for the overclock app. Im wondering if the Power Manger app could of been causing something or if simply 1.5 is better able to handle it. Don't know, I have had 0 freezes with the current setup though. Retro defense runs much better now when I have many towers setup and enemies attacking (on default clock it gets really laggy when the towers are firing) Thanks for the app cool!
 

coolbho3000

Retired Senior Recognized Developer
Dec 26, 2008
899
784
SetCPU for Root Users has been updated to 1.1.6.

Reminder: *SetCPU supports all rooted 1.5 builds, including JF, Haykuro G/H, the Dude's, etc.

Pressing the "Menu" button allows you to read the introduction message again and choose your version of Android.

1.5 features only: Various bugfixes and enhancements. Added a green colored maximum/minimum reading to the top.

Android 1.1/1.0 support has been kept, but this feature will no longer be supported because the 1.5 Android OS is already very widespread. Please update to 1.5 as the overclocking is much more stable!
 

coolbho3000

Retired Senior Recognized Developer
Dec 26, 2008
899
784
I just made a very quick hotfix to a bug that I found through the app's own max/min readings.

1.1.6a: Fixed a minor bug when some CPU settings required two presses to "Set Frequency" to set.
 

JazzMac251

Senior Member
May 4, 2009
275
22
Hey I was wondering if there's a way to confirm that the phone's processor is actually stepping down to 128mhz. I have the processor set to max at 528 which is great and then step down to min 128 to save battery power. The phone's been idle for only a few hours and I've lost 30% battery. That makes me think the phone's not stepping down.

Pardon the n00b question, but what's the point of 19mhz? Is there any phone that can step down that low? Mine certainly couldn't.

Great app though! Thanks for you hard work.
 

lbcoder

Senior Member
Jan 21, 2009
2,622
99
There was some discussion about the additional energy consumption of the mode switching when the frequency step is too great. Also, idling your CPU too low will result in it stepping up more frequently when demand increases. Basically, if you set the minimum to 384 and max to 528, it may use less battery than setting the lower frequency as low as you have.
 

JazzMac251

Senior Member
May 4, 2009
275
22
ah that's interesting. Another thing that makes me think the phone isn't stepping down is that the "Current Frequency" reading on the setcup screen never changes from maximum.

Does the processor only step down when the screen goes blank?
 

rushless

Senior Member
Jan 16, 2008
3,684
446
Could more frequency options besides max at 528 be added? A 428, 458 and 488 would be nice to have extra zip but stay away from the higher clock for battery and stability reasons (if stability is an issue for some).

Thanks
 

coolbho3000

Retired Senior Recognized Developer
Dec 26, 2008
899
784
Could more frequency options besides max at 528 be added? A 428, 458 and 488 would be nice to have extra zip but stay away from the higher clock for battery and stability reasons (if stability is an issue for some).

Thanks

Only certain clock speeds are actually possible. The ones listed in the program are tested by me to working. :)

The point of 19.2MHz is to make that speed available. I don't think the phone will ever step down that low (the idle CPU load is more than enough to make it step up 19.MHz) but you can force 19.2MHz by setting both maximum and minimum to it. Be careful though, it's REALLY slow and you might think your phone is frozen.

ah that's interesting. Another thing that makes me think the phone isn't stepping down is that the "Current Frequency" reading on the setcup screen never changes from maximum.
Press "refresh" a few times and it might go down (it does for me when set to 528/384). Remember that simply refreshing the speed causes CPU load and might make the phone change the frequency before it is read. Same with reading the CPU Info dump.
 
Last edited:
  • Like
Reactions: KoperKiller
Status
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: http://www.setcpu.com/

    Changelog:
    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
    properly.
    * 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 2.6.32.15.
    - 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 2.6.32.17 and 2.6.32.21 (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.

    2.1.2.1 - Fixed a crash that occurred when updating from certain versions of the profiles database.

    2.1.3 - Added perflock disabler support for HTC kernel 2.6.35.10 (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 2.6.35.9 (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).
    7
    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).
    4
    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.... http://forum.xda-developers.com/showpost.php?p=23356474&postcount=18 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.
    3
    Sweet.. looking for something like this.
    3
    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