Related
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 ):
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).
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.
smagicmans said:
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.
Click to expand...
Click to collapse
The CPU won't set to anything else, unfortunately (if you set it to 500 for example nothing actually happens).
Sweet.. looking for something like this.
Works great
Faster Open Home load and no longer lags as much.
THANKS!!
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
Thibale said:
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
Click to expand...
Click to collapse
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.
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?
Lakers3408 said:
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?
Click to expand...
Click to collapse
Do you have the lock feature "on?" SetCPU will query a file to see if the phone is awake if lock is on.
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
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.
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.
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!
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!
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.
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.
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.
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?
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
rushless said:
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
Click to expand...
Click to collapse
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.
Click to expand...
Click to collapse
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.
i am kinda looking to use an overclock app or widget to obviously overclock my phone, is there an app most people would recommend, or prefer, and how much i should overclock to a safe percentage?
Idk others, but i like to use SetCPU...and i have it set to Max=512 and Min=384.
Overclock widget is free and gets the job done.
If you don't care much for battery life then set both max/min to 528. If not, then go 528/384.
Overclock widget has an option for a different frequency when phone is on sleep/standby. Be careful, if you set it too low, phone might crash, or slow to wake up from calls and messages.
My settings..
528/528 phone on
384/128 sleep/standby
Check auto start on boot, suppress notification, and update interval to 5-10seconds.
MBQsnipers Guide to Kernel Knowledge
It lives again!
----
CPU Guide app:
Want this in app form? Lucky for you, I made one!
Get it here:
https://play.google.com/store/apps/details?id=com.kyler.mbq.mbqscpuguide&hl=en
----
CPUGuide website:
(If you're using it on a mobile browser, enable desktop mode).
http://CPUGuide.MBQonXDA.net
----
Contribute to the app!
It's always very appreciated. I also need translations.
https://github.com/MBQs-CPU-Guide/MBQs-CPU-Guide
---------------------------------------------------------------------------
Governors:
OnDemand:
Ondemand stands for that it scales up on load in frequency and then detects the load and scales back to a frequency which is fullfills the "demand" of the current load dynamically. (AndreiLux)
Interactive:
Interactive scales by default in steps towards max frequency, Ondemand in its default implementation scales immediately to max frequency. (AndreiLux)
InteractiveX(v2):
The same as Interactive, but when you turn your screen off it forces the second CPU core offline until the screen turns on again.
Performance:
Will constantly run at the highest set CPU speed.
Powersave:
Will constantly use your lowest set CPU speed.
Conservative:
Conservative means that it scales conservatively, not that it is conservative. It pretty much very similiar to Interactive in that it scales up and down in frequency steps. It actually can be one of the most aggressive governors out there. (AndreiLux)
Userspace:
Rare in the word of kernels. Typically not used for mobile phones. But what it basically does is, it runs on whatever CPU speeds the user sets through an app.
Lagfree:
More aggressive kernel. It scales the CPU faster, reducing lag and performance, while maintaining decent battery life. Its main goal is to increase performance without reducing battery life.
Min Max:
Only uses your max screen on frequency, and your min screen on frequency.
Hotplug:
Based off of Ondemand. It allows a CPU to go offline with minimal usage. When you're sending messages, browsing settings, or other simple tasks, most likely one of your CPUs will be offline.
PegasusQ:
Samsungs Governor for multi-core phones. Based off of Ondemand. This kernel controls hotplugging as well.
Lazy:
This Governor doesn't scale as fast. It's really a lazy governor, it tends to stick in the same CPU frequency without changing as much. Which can be beneficial to your battery (if your CPU settings are conservative) or can reduce battery life (if your chosen frequencies are aggressive).
Nightmare:
A modified PegasusQ, less aggressive (Which means not as good performance-wise), and doesn't usually hotplug. It is good for a balance between performance and battery life. May prevent the 'Screen of death' as well, since it doesn't hotplug.
HotplugX:
Its basically a smarter Hotplug, to my knowledge, it shuts off the second core much faster, and is a little bit smarter with CPU scaling and power efficiency.
LulzActive:
Based off of the Smartass and Interactive governor(s), the newer version of this Governor gives more control to the user, and he CPU frequency parameters (Ask for a description if you need one) are smarter. Smart at scaling both up and down.
Smartass:
Based off of the Interactive Governor, this is an older version, but this Governor is (or was) one of the smartest Governors, and is smart with performance and battery. More below.
SmartAssV2:
A re-thought version of the original Governor. This one aims for ideal frequencies, meaning it makes up its own frequences in order to meet the requests the CPU needs. Scales down the CPU extremely fast once the screen is turned off, meaning you will get amazing standby times. No upper limit for the CPU frequencies in both the screen on and screen off state(s). (If you want a better detailed explanation of that, please ask.)
Lionheart:
Conservative-based governor off of Samsung update3 source (Line copied directly from a guide, thank you 'Amal Das'), scales aggressively. This Governor is strictly for performance.
BrazilianWax:
Similar to smartassV2, the only real difference is, it scales more aggressively than SAv2 does, which reduces battery life, while improving performance.
SavagedZen:
Based off of SmartassV2, similar to BrazilianWax, but this Governor tends to favor battery over performance. From personal experience, I can say it does a great job of doing so.
Scary:
Conservative-based Governor with some smartass features. Ramps speed up one at a time, and ramps speed down one at a time (ask for description if you don't understand). Caps your screen off speed at 245MHz. Scales just like conservative would. This Governor is more for battery life than performance.
Sakuractive
A governor based off of hotplug and ondemand. The phone hotplugs (when it can) when the screen is on, and can be described as a 'hybrid' of hotplug and ondemand
OnDemandPlus
A governor based off of OnDemand and Interactive. It provides a balance between performance, and saving battery.
DynInteractive
A dynamic interactive Governor. This Governor dynamically adapts it's own CPU frequencies within your parameters based off the system(s) load.[/SIZE]
Advanced CPU Governor settings:
I got most of my information from this thread.
Sampling rate:
Microsecond intervals the governor polls for updates. Assists in the Governor determining whether or not to scale up or down in frequency.
Up threshold:
Defines the percentage from 1 to 100 (percent). Happens less often when clocked at a lower speed, overclocks when you get up into higher CPU frequencies. Using a Governor such as OnDemand prevents it from overclocking nearly 100% of the time.
Ignore nice load:
If you set the value to '1' the Android system will ignore 'nice' loads when the CPU Governor scales up or down.
'Nice' load:
When you turn a process into a 'nice' load, it prevents low activity processes randomly becoming high priority processes, which prevents lag. What a 'nice' load is, is how it handles processes. You can 'Re-Nice' processes, and re-set how processes are determined, based on your current processes that you have. Which helps eliminate lag due to processes being re-prioritized.
Frequency Step(s):
Determines how much the Governor will increase, or decrease, based on your CPU speeds. *This doesn't apply to some Governors
I/O schedulers:
Deadline:
Set to minimize starving of requests. In other words, it is designed to handle system requests as quickly as possible.
Noop:
It handles requests in a basic 'first in, first out' order. So any requests that come in, will also be the first to be executed.
SIO:
A mix between Noop and Deadline. Basic process/request merging. One of the most reliable schedulers out there.
BFQ:
Gives each request a time budget. If the request is not met by the time it is given, the request is skipped. Smarter than the CFQ governor.
CFQ:
'Completely Fair Queuing' scheduler. Scales its requests in an effort to insure smooth task handling. Attempts to give each request equal I/O bandwidth. Typically, lag happens with this scheduler due to the effort of competing tasks on the disk because it tries to give equal bandwidth amongst all requests.
FIOPS:
Relatively new. No I/O seek time, ( potentially better for performance), balanced read/write times, one of the smarter I/O schedulers
ROW:
Read Over Write. It will cause better read times for pictures/media, but when transferring data/installing apps, significant reduction of performance will be present.
V(R):
Best for benchmarks due to performance of requests, but is considered unstable due to random drops in performance. Semi-based off of the CFQ scheduler.
FIFO:
Takes each process in one by one, fair process queuing, balanced queue handling as well, processes go in and out in a numerical fashion.
TCP Congestion Avoidance Algorithms:
Tahoe:
Limits unknown packets being received. Limits the congestion window, and reset itself to a slow-start state.
Reno:
Basically the same as Taho, but.. if 3 of the same packets are received, it will halve the window, instead of reducing it to one MSS. It changes the slow start threshold equal to that of the congestion window.
Vegas:
One of the smoothest (next to cubic), it increases the timeout delay for packets, which allows more to be received, but at a higher rate. It also has set timeouts, which helps with speed because it's constantly being refreshed.
Hybla:
Penalizes connections that use satellite radio. Not usually used with phones.
Cubic:
One of the best, most recommended TCP options available. Less aggressive, Inflects the windows prior to the event. Used in Linux.
Westwood:
A newer version of Reno, and another commonly used one. It controls parameters better, helping out streaming and overall quality of browsing the internet. One of the most 'fair' algorithms out there, and is one of the most efficient algorithms to date.
CPU Governor recommendations:
Performance: Use Wheatley, or Performance.
Battery life: Use lagfree, Hotplug, PegasusQ, InteractiveX, or Sakuractive.
A fine balance: Use SmartassV2, Hotplug, or Sakuractive at less aggressive CPU frequencies.
Android tips:
Developer options:
Go to settings>build number... And tap 'build number' 7 times, go back, and you have now enabled developer options.
Force GPU rendering:
What it does is, it force enabled 2D drawing (such as scrolling, and anything non-game/app related) to the Graphical Processing Unit, instead of the Central Processing unit. What does/can this do? It has the potential to save battery life, and takes some of the load off of your CPU, which increases overall smoothness and reduces lag.
Keeping WiFi on during sleep:
What it does is, as this ^ suggests, keeps WiFi on while your phone is awake. To enable this, (and there are many ways.. I'll give you the way I'd do it.) Go to settings>WiFi>WiFi settings (3 vertical dots)>Advanced settings>keep WiFi on during sleep.. And set it to 'always' or.. You can use tricksterMOD and enable that via the GUI (Graphical User Interface)
WiFi Supplicant Scan Interval:
Before you freak out, I will give you what it means. What it means is this: how often your phone scans for a WiFi signal. Typically, it is 15 seconds. The recommended number is 300. To change it, you can typically find it in the build.prop manually edit it on your computer, or use an app such as ES file explorer and run it as root. Go to build.prop and look for: wifi.supplicant_scan_interval=x. And change x (usually 15) to 300, save, exit, and reboot. Please note it is not available with some ROMs that are driven towards a stock-ish feeling. Such as CM ROMs, or any derivative of that ROM.
Tips to get better battery life:
Turn off sync, location, Bluetooth when you're not using it, along with WiFi and data, don't use app-killer apps, lower CPU frequencies, and change your Governor to something less aggressive if you don't use it for heavy gaming.
Status bar with 1 finger, panel with 2:
If you want to access the tile settings quicker. Drag your status bar down with two fingers. If you want to bring down the status bar, touch the top of your screen and slide your finger down.[/I]
Autobrightness sucks!!:
Download an app called 'lux' and use that app. It'll take of any problems you're having, plus it'll save battery.
Changing your phones screen density:
In your build.prop, there is a line of code that looks like this: ro.sf.lcd_density=320, change it to 240 for a tablet-ish feel. Don't go under 160 though, you'll have endless bootloops
Change your bootanimation:
Go to system/media, you'll see bootanimation.zip, replace it with your desired bootanimation, change permissions to r-w-rr (read-write-read-read), and reboot. (Assuming you're doing this on your phone)
Block ads:
Download an app called 'adblock' on the play store, run it normally, accept the SU request, hit 'skip' and run the program, exit out, and reboot!
4x MSAA:
4 times MultiSample Anti-Aliasing. What this does is smooths out edges in apps that support AA. It makes your game look better, enhances graphics, but has the potential to degrade performance due to the screen enhancement. To enable this, go to settings>developer options>and check the box that says 'Force 4x MSAA'
zRAM:
Avoids disk paging, compresses your RAM. Disk paging means the way your phone saves temporary data. It helps with fragmentation of your disk and the physical space, which, over time, keeps speed stable and prevents any system slowdowns.
Explanation of TricksterMOD Settings:
General:
TCP:
Affects download speed
Scheduler:
How your system responds to, and handles tasks
Readahead:
How far ahead your internal SD caches when you put stuff on it
Frequency profile:
Save your frequencies
Min:
Minimum screen on time
Max:
^Opposite of minimum
Max screen off:
Max screen off frequency
Governor:
How your CPU essentially scales
Specific:
Wifi high performance:
Keep wifi on when the screen is off
Content adaptive brightness:
Better whites at low screen
Force fast charge:
Fast charge when your phone is hooked up to your PC/whatever
Group task:
Equally distribute loads amongst the CPUs
High performance sound:
Better sound
Headphone volume boost:
Boost the headphone volume for louder audio
Touch wake:
Touch your phone after you turn the screen off, and itll turn it back on
Vibrator strength:
Set the strength of the vibration of your phone
FSYNC:
When disabled, provides faster writing (not reading) of files with the risk of data loss if the phone crashes or is shut down improperly. (Thanks renaud)
Temperature limit:
How high your phones temperature can get before your phone reacts
Temp. throttle:
Enable the temperature limit
GPU OC:
Graphical Processing Unit overclock
MPU:
Mathematical Processing Unit
zRAM:
RAM compression to speed up your phone
*Leave on Core, IVA, and MPU
Voltages:
Set the voltages of each CPU frequency.
Feel free to 'thank' me for this, but.. it isn't expected.
Little outdated.
Will update as time goes on.
thanQ vvvery much!!
very useful thread..
can i ask you something?
my phone is very fast and responsive sometimes.. but if i keep screen off for some hours, after turning on when i click on an app (even if it's running on background) it'll
launch with some delay.. i don't like it at all..
i don't play heavy games.. but i need my phone response each touch and launch certain app as quick as possible.. which Governor, Scheduler do you suggest?
Dark Fear said:
thanQ vvvery much!!
very useful thread..
can i ask you something?
my phone is very fast and responsive sometimes.. but if i keep screen off for some hours, after turning on when i click on an app (even if it's running on background) it'll
launch with some delay.. i don't like it at all..
i don't play heavy games.. but i need my phone response each touch and launch certain app as quick as possible.. which Governor, Scheduler do you suggest?
Click to expand...
Click to collapse
Raise your min screen-off frequency
Thanks for taking the time to put this together, you really have outdone yourself. :thumbup:
Sent from my Nexus 4 using XDA Premium 4 mobile app
yeah little outdated but very informative thread for many new android explorers to understand things better. :highfive:
just a suggestion: UI card like in google now, keep
aLNG said:
just a suggestion: UI card like in google now, keep
Click to expand...
Click to collapse
I don't follow...
Sent from my Galaxy Nexus using XDA Premium 4 mobile app
MBQ_ said:
I don't follow...
Sent from my Galaxy Nexus using XDA Premium 4 mobile app
Click to expand...
Click to collapse
i will give you a prototype what i mean by User Interface (UI) card later
This is great, clears up many concepts! Good work bro!
feedtheducks said:
This is great, clears up many concepts! Good work bro!
Click to expand...
Click to collapse
Myyy pleasure.
Have another version of the CPU Guide app coming soon too.
Sent from my Galaxy Nexus using XDA Premium 4 mobile app
As folks know, the power saving modes have some interesting features.
MED drops resolution to 1080p and sets the MAX brightness that auto brightness can reach. It allows a few other items and you can customize them. Drawback is that it throws up a permanent icon that you cannot remove or hide and is rather annoying.
My question. I use Tasker for a ton of automation and powersaving tweaks.
I cannot find anywhere that you can do these things yourself and not use their tool?
Currently only 5 apps ( in Coloros) or 20 apps (in Oxygen) apps can be set to 'auto launch' (run in background etc), on top of a list of apps preselected by OnePlus.
This would appear to be a major issue for anyone who is a substantial user.
Not because of the feature, but because after paying a huge amount for a powerful phone a power user should be able to customise or disable that feature.
Any ideas? Is it possible to change or disable the 'feature'? (With or without root).
Thanks
You can turn on High performance mode in the Battery settings which will allow running your CPU on max frequencies.
storms said:
Currently only 5 apps ( in Coloros) or 20 apps (in Oxygen) apps can be set to 'auto launch' (run in background etc), on top of a list of apps preselected by OnePlus.
This would appear to be a major issue for anyone who is a substantial user.
Not because of the feature, but because after paying a huge amount for a powerful phone a power user should be able to customise or disable that feature.
Any ideas? Is it possible to change or disable the 'feature'? (With or without root).
Thanks
Click to expand...
Click to collapse
Have noticed WhatsApp video playback is choppy as hell.
I think for the most part turning off optimisation had worked for me
Your not getting throttled your getting underclocked and maybe some extra throttle here and there you barely notice it on forced 120hz
But we just need to pray all together that there will be one hell of a kernel dev who stands up and makes us the best kernel there is without throttling and underclocking