• Introducing XDA Computing: Discussion zones for Hardware, Software, and more!    Check it out!

[ROM][08-06-2012] ~×~ EliteMod & Kernel CM7 ~×~ [sd-ext/swap] (ics has own thread)

Search This thread

nik3r

Senior Member
Feb 24, 2008
1,670
1,771
Budweis
[ROM][08-06-2012] ~×~ EliteMod & Kernel CM7 ~×~ [sd-ext/swap] (ics has own thread)

EliteMod 120316 + EliteKernel 120319
Turbo just got a new meaning.

This mod is a custom ROM based on CyanogenMod7 nightly and modified CM7 Kernel.
The primary aim is to dramatically increase device speed without requiring frequencies above 1GHz in daily use.
The secondary aim is to improve battery consumption where possible by fine-tuning system settings.
The bonus is getting rid of some annoying post-flash steps and settings.


To achieve this required highly experimental steps outside of the scope of Android's security system and direct intervention in userspace.

Be aware that I made this mod primarily for myself, I went to extremes to squeeze the last bit of performance out of my device. Expect no flashy stuff, just raw power and great base for your customization. I guarantee no support whatsoever and any modifications you make to your device are solely your responsibility. It's a good idea to nandroid backup first!


Warnings - must read:
1) Do a nandroid backup, this ROM is not for everyone.
2) Full /data /cache wipe is mandatory before moving to EliteMod, even from CM7! Not kidding!
3) This ROM relies heavily on the bundled EliteKernel. Flashing any other kernel unless I explicitly put a link in download area is probably a bad idea.
4) Flashing gApps or any performance-boosting packages is not recommended. Latest gApps are already included and tweak scripts may in some extreme cases break sd-ext support.
The ROM requires a manual reboot after account setup, you will see REBOOT REQUIRED on screen. Tap it and reboot the device as usual to apply additional tweaks. Any settings done before this reboot may be lost.
6) If you want to do a "Factory Reset" of this ROM, wiping /data /cache /sd-ext wipe is not enough. You must re-flash the zip to really start clean.


The usual: Do not use TitaniumBackup to restore System components unless you know what you're doing. Restoring LauncherPro user data will forfeit fine-tuned launcher settings. Wipe deletes battery stats and recalibration is necessary to see real battery usage. You can backup your battery stats first before wiping - just use my tool - EliteMod will automatically restore the backup and save you the need to recalibrate. If you really want LWP or ADW, mv them yourself from /data/local/ as well as live walpapers and other useless garbage.

Some screenshots of the default launcher + my customized homescreen:
EliteMod_orig.jpg
EliteMod_customized.jpg





Changes from stock CM7 nightly:
- moarrr speeeed (optimized for lower frequency range to save power)
- kernel tweaks for better snappiness/battery balance
- more battery 100% guaranteed ;)
- replaced ADW with LP (it crashes once after boot but still the damn fastest out there) and Go Ex
- replaced gallery with QuickPic
- Opera with performance tweaks
- added some MIUI stuff
- extra sounds and bootanim for my convenience
- removed LWP
- more in changelogs


Credits:
Big thanks to all the amazing devs who made this compilation possible.
Cyanogen and crew for his amazing ROM base
Federico Carnales for the smoothest launcher
Nanling Zheng for the best gallery app
SparksCo for the original sd-ext mounting script
JaeKar99 for the boot anim
Sybregunne for his OC daemon
nhnt11 for the gorgeous NTSense themes
MIUI team
Virtuous team



And many others I'm sure I forgot to mention - thank you and keep it up.
 
Last edited:

nik3r

Senior Member
Feb 24, 2008
1,670
1,771
Budweis
Download Link

Download from my high speed server:
High speed download:
http://elite-force.eu/elitemod/EliteMod120316.zip (see THIS for sd-ext and ext4 migration)

Mirror (slower):
http://www.mediafire.com/?3k5bvbk5uinn4no (see THIS for sd-ext and ext4 migration)

Standalone CM7 Kernel:
http://elite-force.eu/elitemod/MOD_EliteKernel_120319.zip (for any CM7 nightly based ROM, including EliteMod specifics)

Standalone ICS Kernel:
http://elite-force.eu/elitemod/MOD_EliteKernelICS_120608-79.zip (for any CM9 or AOKP based ROM = do not use with CM7 based EliteMod)
(SEE THIS if you have sd-ext or swap partition on your SD card)

Old versions:
Old versions:
I will be trimming old versions soon, here are most mirrors http://www.mediafire.com/?613ufmrzd2ovt
Undervolting tools (Windows only):

Mods, fixes and tools:


Old mods only up to #244:

Kernel source:
Frequently Answered Questions:
- if the phone is not smooth, make sure you only have ONE app that controls CPU active at a time. Daemon OR SetCPU OR System Tuner etc. You can disable other apps by not giving them superuser access.
- changing your locale to english-us fixes the new market issue if you have problems but don't want to flash the old market.
- to save even more battery, undervolt your CPU by following the guide below and my easy to use UV TOOLS package. Alternatively use this program to modify your voltages https://market.android.com/details?id=com.incredicontrol .
- please include your ROM and kernel name if you ask an undervolting question in this thread and you are not running EliteMod
Recommended SetCPU settings (daily driver - EliteKernel only):
P7 (Temp > 46C) @ 122-768 smartassV2
P6 (Charging) @ 768-1248 smartassV2 (do not set too high, it can get hot if you use navigation in a car)
P5 (Screen Off) @ 122-768 smartassV2
P4 (B < 15%) @ 122-864 smartassV2
P3 (B < 30%) @ 122-902 smartassV2
P2 (B < 50%) @ 122-940 smartassV2
P1 (B < 101%) @ 122-1036 smartassV2
These settings implement my own "Final Fortress"(tm) philosphy of battery management. The speed will decrease progressively with battery discharge - basically this will make your battery last longer the longer you are not charging. The goal is to save that precious last drop of power you might need in a tight situation at the end of a long day. All that without sacrificing speed when you have plenty of charge left. You should not notice significant speed decrease until you hit the reserve @ 15%.

UV hint: If you've built your own stable undervolting table, you can maximize speed with no impact on battery by aligning the max frequencies to your specific voltage peaks. (example: if there are 3 different frequencies stable on the same voltage, always use only the fastest of the group)


~CHANGELOG:
(changes with ! require full wipe)

120319 (kernel only)
+ allowed undervolting all the way down to 700mV

120316
+ updated to latest kang
+ updated apks
+ much more resilient sd-ext mounting
+ verbose mounting script (see logcat for debugging)
+ tiny sd-ext performance increase

120315
+ latest kang
+ updated apks
+ new performance tweaks
+ optional sd-ext and/or swap support
+ relaxed swap priorities compared to experimental build
+ tweaked sd-ext I/O speed (ext4 only)
+ tweaked internal storage I/O speed (need ext4 on /data and /cache)
+ fixed Opera settings transfer
+ new set of Opera tweaks for sick performance
+ removed ROM Manager, recommend using 4EXT recovery from now on to take advantage of ext4 I/O tweaks
+ forcing dalvik-cache to internal memory for performance reasons

120310
+ latest kang
+ updated all apks
+ Scary not used by default (screen-off is now @ smartassV2 /w 768MHz max)
+ OC Daemon disabled by default, use control app to enable
+ default UV not applied by script (it is built into the kernel anyway)
+ new boot anim
+ different default theme
+ speedy postsetup script on update (second boot no longer takes eternity)
+ enabled swap support in kernel
+ improved kernel performance

120122
+ 22-01-2012 Kang build
+ added freqs below 245MHz with heavier UV
+ switched to andrev_oc and daemon
+ changed default wake frequency settings to 122-1036, SmartassV2
+ reverted ondemand gov to CM7 defaults
+ updated all apks
+ greatly improved ROM update speed (second boot)
!+ lockscreen clock not centered by default (weird in landscape)
+ changed default data mode to auto instead of preferred
+ updated default UV table in userinit.sh to match kernel internals
+ updated UV_TOOLS package to match EliteKernel
+ added tweaked Go Launcher Ex + most widgets + Sense theme
+ added 2 Sense themes to CM7 theme manager

120107
+ Updated to 05-01-2012 kang
+ Fixed garbage collection bug
+ Tweaked garbage collection and hardcoded defaults to standalone
+ Tweaked SmartassV2 for better scaling (EM + standalone)
+ Tweaked Scary for better battery to do better what it's supposed to do (EM + standalone)
+ Tweaked SIO scheduler for better I/O speed and battery (EM + standalone)
+ raised default frequency from 940MHz to 1GHz
+ lowered default frequency from 768MHz to 245MHz (raise back for more smoothness if you don't care about battery)
+ Tweaked storage subsystems for better I/O performance (EM + standalone)
+ moved hard-coded kernel settings from ROM to Kernel config (better maintainability)
+ updated all bundled APKs
+ updated SU
+ if you're using SetCPU, I recommend to update your profiles

111227
+ improved kernel performance
+ fixed undervolting support
+ released a standalone kernel
+ Important: Use the 111224 to 111227 patch instead of standalone kernel to improve stability above 1200MHz

111224
+ changed versioning to a date string until nightlies resume
+ updated all apks
+ updated to latest kang build 111222
+ faster new market as default
- dropped support for Umaro and Tiamat Kernel
+ EliteKernel 111224
+ major performance improvements
+ SmartassV2 governor

244
!+ new Opera tweaks
!+ wifi sleep fix
!+ updated settings template for 2.3.7
+ new GPS driver
+ camera fixes
+ performance and battery tweaks
+ updated all bundled apks
+ fixed goggles and youtube
+ new superuser + binary

227
+ loads more speed
+ dramatically reduced stuttering under heavy load
+ highly optimized Opera for butter-smooth browsing (tweaks for full wipe only)
+ QuickPic is now default gallery
+ set K9 mail as default email app
+ re-based on latest nightly, obviously
+ more

209
+ fixed camera effects
+ updated DSP speaker profile
+ some performance tweaks
+ support for Virtuous OC daemon (install SetCPU to disable it, uninstall to enable)
+ default undervolting profile (for people who don't care, the tailored real deal is far better)
+ default market is now the old one to prevent problems on non-us locales

186
+ first public release (CM7 nightly #186 + Umaro 1.0.6)
 
Last edited:

nik3r

Senior Member
Feb 24, 2008
1,670
1,771
Budweis
Changelog

NIKER's UnderVolting Tools Manual

Friendly warning: If you use this guide with any ROM or Kernel other than EliteMod and need to ask a question here - mention your ROM and Kernel in your post or I can't help you.

Be aware: This guide and the default voltage file assume you are using EliteKernel, other kernels will require different starting point voltage table.

Introduction:
By undervolting I mean decreasing voltages at which your CPU operates on specific frequencies.
If done properly, this can lead to dramatic increase of battery life with no performance loss, it also decreases CPU temperatures.
If done wrong, this can lead to freezes, graphic stuttering under heavy load or unability to boot without reflashing. Do a nandroid backup NOW!

I take no responsibility for your modifications, burned CPUs due to too high voltage and/or frequency, data loss, nuclear explosions, your girlfriend breaking up with you etc. You know the drill.

You should know this takes time - a lot of time. I spent 3 long evenings optimizing my table but I didn't have these tools to help.
You should also know this has to be done just once and you can reap the benefits of insane battery life with any ROM or kernel that supports undervolting - forever.


Essentials:
I am assuming you have a Windows PC at hand. SetCPU installed (disable profiles and on boot for safety), YouTube installed and Angry Birds or similar graphically intensive game of your liking for stability testing.

Next download the UV_TOOLS package I provided above, extract it somewhere and let me explain what each file does:

tools folder just contains ADB essentials and a simple free unix-capable text editor

voltages.txt - this is THE file you are going to edit and consequently THE file you never want to lose after you are done.

voltages.default.txt - this is a copy of the starting point for your convenience

start_edit.bat - this will open the voltages.txt file in an improved text editor capable of unix line endings, we are going to use this editor to make modifications to the voltage table within voltages.txt. Windows notepad is not sufficient for this task!

undervolt_temp.bat, undervolt_temp_periodic.bat - these two files are your best friends, they will push the voltages.txt to your device and apply it temporarily. It's effects will be lost after reboot. Periodic variation will push the file every 10 seconds, allowing you to always have the latest saved version of your voltage table on your device. Some may prefer the normal variant that will only re-push on a keystroke.

undervolt_persistent.bat - be careful with this baby, it does the same job as undervolt_temp.bat, but permanently so, simple reboot will no longer save your ass after you use this. You don't need to wait until you have all 4548648 frequencies optimized but do not use this unless you are pretty sure you have a stable voltage table.

remove_screwup.bat - did you just use undervolt_persistent.bat and your vision threw it back in your face and wouldn't boot? This will save you - 100% guaranteed.


Step by step guide:
First send your girlfriend to sleep, get a huge cup of tea, kick back, run a movie and connect your device, this is gonna be a long night and a lot of reboots.

Do a nandroid backup. Copy it to your PC, **** happens and we don't want that.

Run start_edit.bat - voltages.txt will open, this is not the stock voltage table, it is my own table with +25 overvolt added to every entry. Let's take a look:
Code:
echo '245760 900' > ./vdd_levels
...this says that for frequency of 245MHz the voltage will be 900mV. Valid voltages for vision are ranging from 750 to 1525.

Our objective is to find the LOWEST stable voltage for each frequency (yes - I know there's a lot of them). If you set it too low, your device will freeze and you will need to pull the battery and reboot (suggest removing your battery cover now). Too high frequency should not freeze your device but they will increase operational temperatures slightly and of course battery drain.

As I said the provided voltages.txt is specific for my device with slight overvolt, so let's see if your device can handle it or not - run undervolt_temp.bat to push and activate the default table. SetCPU to 122-1036 ondemand. Now if by now the device haven't froze, it's a good sign.

Next step we will test stability - connect to wifi and disconnect charger. Run youtube app, run a demanding test video with high quality - in high quality mode. The video should not stutter weirdly and the device should not freeze. Actually everyting should be pretty much normal. After 30s try to run your game instead for a half minute. After that hit the power button, let the device sleep for 30s and then try to wake it from standby. Should any of these steps fail, edit the voltages.txt, increase all the voltages by 25, push the changes and try the stabily test again.

Everything went smoothly? Well congratulation, you have taken the first step towards awesomeness. These settings should already improve your battery life compared to stock.

But we want moar battery! There's never enough when it comes to battery life. Well here it comes.

Take frequency 122880, it is the lowest ever used by your device out of standby. We currently have it set to 825, so let's try 800. Save the file and push the voltages to the device if you're not using periodic updater. Now SetCPU to 122-192 ondemand- it will be slow and tedious, frequencies below 768 can't run videos well so just play with your device a bit and watch for a total freeze. Short freezes that fix themselves are to be expected at those speeds. The good thing is, if your device starts suffering from sleep of death - the culprit is most likely one of these two frequencies - remember that.

Everything went well? Set all frequencies below 122880 to 800 as well. If not, leave them all at 825. Going any lower than 775 is asking for a sleep of death - just don't :)

Don't forget to always save voltages (floppy button) and then push them using the bat or use the periodic update - otherwise your changes have no effect, obviously.

Now move to the next frequency 192000 and set it -25 to 850. Leave SetCPU at 122-192 ondemand- we always want two adjacent frequencies switching while testing - it is during this frequency change when the device is most likely to freeze. It also triangulates the problem to these two frequencies, making it easy to fix a problem. Test stability by whatever means - no videos yet. If everything works you can try for 825.

Do this for every frequency up to 768.
Undervolt 122-192 then 245-368 then 768-806.
By now you have the sleep frequencies covered and your device should last incredibly long on standby.

Now optimize each and every frequency up to the maximum you want to use on daily basis. For 768MHz and more use additional video stress test.


Hints:
Never lower voltage more than 25 at a time between tests.
Always test with ondemand between previous and current frequency to ensure stability.
Consequently never lower more than two adjacent frequencies in one step - and even that is unsafe (but twice as fast, obviously), missing one unstable frequency means long and tedious testing process to find the culprit - you have been warned so don't try to cheat :D
Best tests for stability are streaming movies, they stress every component to the limits much more than any synthetic test. Even when SetCPU stability tests succeed, video streams tend to have much lower tolerance for low voltages - the video will stutter before it's even low enough to freeze whole device, do not underestimate this. Also do not mistake buffer stuttering for a CPU problem, the device would eventually freeze if it's CPU, stay close to your wifi AP.
Secondary test could be a game that doesn't stress the device as much - that will test frequency switching. Angry birds worked well for me and its fun :D



SetCPU profiles:
when you've finally built your own stable undervolting table up to your maximum desired frequency, you can maximize the impact of your hard work on battery by aligning the max frequencies to your specific voltage peaks. (example: if there are 3 different frequencies stable on the same voltage, always use only the fastest of the group)

Does your table look like this?
Code:
echo '368640 875' > ./vdd_levels
echo '768000 875' > ./vdd_levels
In this case always use 768 instead of 368 in setCPU where possible!
Higher frequency will do same work much faster
and in turn the CPU can sleep longer - saving battery.
 
Last edited:

nik3r

Senior Member
Feb 24, 2008
1,670
1,771
Budweis
A month old kernel is not enough to justify one that is not tried and tested unless it offers something extraordinary. Besides it offers all features one could ever dream of. Smartass, greaselightning, undervolting, very granular OC steps and mainly great stability. If you have a better candidate I will gladly take a look :)
 
  • Like
Reactions: astriaos

astriaos

Senior Member
Feb 24, 2011
232
38
A month old kernel is not enough to justify one that is not tried and tested unless it offers something extraordinary. Besides it offers all features one could ever dream of. Smartass, greaselightning, undervolting, very granular OC steps and mainly great stability. If you have a better candidate I will gladly take a look :)

**** the haters. Bleeding edge is not always the best edge to have.

I'll check into this in the next day or two.
 
Last edited by a moderator:

miksa666

Senior Member
Sep 18, 2009
55
4
This is really fast, so far no problems except market. I had to replace the new market with old one because it was force closing within 15 seconds whenever I opened it. Anyone else having similar issue with new market? I seem to have it on ILWT cm7 too.

Other than that, I think I'll keep this rom for awhile. Will see about battery life..

Sent from my HTC Vision using xda premium
 

javierdihu

Member
Jul 24, 2010
30
0
This is really fast, so far no problems except market. I had to replace the new market with old one because it was force closing within 15 seconds whenever I opened it. Anyone else having similar issue with new market? I seem to have it on ILWT cm7 too.

Other than that, I think I'll keep this rom for awhile. Will see about battery life..

Sent from my HTC Vision using xda premium

same market issue here, anyway the new market has never worked for me on cm7.
the rest is quite flawless, ill see how my battery does later and report back.
 

tsubus

Senior Member
Dec 1, 2010
1,310
1,102
plus.google.com
That is an old issue and it had an easy fix. If I remember correctly all you had to do was change the language of the system to "English US" in Settings->Language&Keyboard. It happened to some people on CM based roms, not sure about other roms.
 
  • Like
Reactions: K.Bix

javierdihu

Member
Jul 24, 2010
30
0
That is an old issue and it had an easy fix. If I remember correctly all you had to do was change the language of the system to "English US" in Settings->Language&Keyboard. It happened to some people on CM based roms, not sure about other roms.

go it working right away. thanks for the tip!
 

nik3r

Senior Member
Feb 24, 2008
1,670
1,771
Budweis
Quadrant is not the best way to determine anything else than gaming performance but just fyi I reached 3000 points at 1440MHz @ performance, didn't bother to try more.
EDIT: Curiosity got the better of me - 3591 points at 1.9GHz.

The market issue is weird, I am not EN-us myself and it never acted up. I can provide old Vending.apk in flashable form if you want.

As for the screenshots argument - its your regular CM7, nothing special visually except LP.
 
Last edited:

pspmasterx

Member
Jul 19, 2009
36
1
AWESOME!

This is by far the SMOOTHEST, FASTEST, SEXIEST rom i have ever flashed and i have been lurking for a really long time. Thank you so much for this ROM.
 
  • Like
Reactions: haensgn

kaijura

Senior Member
Jan 1, 2011
1,318
1,812
Will try your rom.

would quake3 (kwaak3) timedemo benchmark be a decent way to test gains? I know it's mostly video but still, how to tell between roms?

Sometimes I want to be able to see an actual speed difference from the roms than just placebo effect but it seems hard to find the right benchmark..
 
Last edited:

nik3r

Senior Member
Feb 24, 2008
1,670
1,771
Budweis
Thanks :)
eagerly waiting for the next CM7 nightly to play some more with it but looks like the automatic compiler has some problems.

kaijura:
Graphic benchmarks will not tell you much about day to day performance.
You need to take storage and sdcard r/w speeds, governor's ability to scale the CPU properly and garbage collecting efficiency into account to tell the difference - they have all been tweaked for better experience in this ROM. Synthetic benchmarks just can't test all of that.
 
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 44
    [ROM][08-06-2012] ~×~ EliteMod & Kernel CM7 ~×~ [sd-ext/swap] (ics has own thread)

    EliteMod 120316 + EliteKernel 120319
    Turbo just got a new meaning.

    This mod is a custom ROM based on CyanogenMod7 nightly and modified CM7 Kernel.
    The primary aim is to dramatically increase device speed without requiring frequencies above 1GHz in daily use.
    The secondary aim is to improve battery consumption where possible by fine-tuning system settings.
    The bonus is getting rid of some annoying post-flash steps and settings.


    To achieve this required highly experimental steps outside of the scope of Android's security system and direct intervention in userspace.

    Be aware that I made this mod primarily for myself, I went to extremes to squeeze the last bit of performance out of my device. Expect no flashy stuff, just raw power and great base for your customization. I guarantee no support whatsoever and any modifications you make to your device are solely your responsibility. It's a good idea to nandroid backup first!


    Warnings - must read:
    1) Do a nandroid backup, this ROM is not for everyone.
    2) Full /data /cache wipe is mandatory before moving to EliteMod, even from CM7! Not kidding!
    3) This ROM relies heavily on the bundled EliteKernel. Flashing any other kernel unless I explicitly put a link in download area is probably a bad idea.
    4) Flashing gApps or any performance-boosting packages is not recommended. Latest gApps are already included and tweak scripts may in some extreme cases break sd-ext support.
    The ROM requires a manual reboot after account setup, you will see REBOOT REQUIRED on screen. Tap it and reboot the device as usual to apply additional tweaks. Any settings done before this reboot may be lost.
    6) If you want to do a "Factory Reset" of this ROM, wiping /data /cache /sd-ext wipe is not enough. You must re-flash the zip to really start clean.


    The usual: Do not use TitaniumBackup to restore System components unless you know what you're doing. Restoring LauncherPro user data will forfeit fine-tuned launcher settings. Wipe deletes battery stats and recalibration is necessary to see real battery usage. You can backup your battery stats first before wiping - just use my tool - EliteMod will automatically restore the backup and save you the need to recalibrate. If you really want LWP or ADW, mv them yourself from /data/local/ as well as live walpapers and other useless garbage.

    Some screenshots of the default launcher + my customized homescreen:
    EliteMod_orig.jpg
    EliteMod_customized.jpg





    Changes from stock CM7 nightly:
    - moarrr speeeed (optimized for lower frequency range to save power)
    - kernel tweaks for better snappiness/battery balance
    - more battery 100% guaranteed ;)
    - replaced ADW with LP (it crashes once after boot but still the damn fastest out there) and Go Ex
    - replaced gallery with QuickPic
    - Opera with performance tweaks
    - added some MIUI stuff
    - extra sounds and bootanim for my convenience
    - removed LWP
    - more in changelogs


    Credits:
    Big thanks to all the amazing devs who made this compilation possible.
    Cyanogen and crew for his amazing ROM base
    Federico Carnales for the smoothest launcher
    Nanling Zheng for the best gallery app
    SparksCo for the original sd-ext mounting script
    JaeKar99 for the boot anim
    Sybregunne for his OC daemon
    nhnt11 for the gorgeous NTSense themes
    MIUI team
    Virtuous team



    And many others I'm sure I forgot to mention - thank you and keep it up.
    12
    Download Link

    Download from my high speed server:
    High speed download:
    http://elite-force.eu/elitemod/EliteMod120316.zip (see THIS for sd-ext and ext4 migration)

    Mirror (slower):
    http://www.mediafire.com/?3k5bvbk5uinn4no (see THIS for sd-ext and ext4 migration)

    Standalone CM7 Kernel:
    http://elite-force.eu/elitemod/MOD_EliteKernel_120319.zip (for any CM7 nightly based ROM, including EliteMod specifics)

    Standalone ICS Kernel:
    http://elite-force.eu/elitemod/MOD_EliteKernelICS_120608-79.zip (for any CM9 or AOKP based ROM = do not use with CM7 based EliteMod)
    (SEE THIS if you have sd-ext or swap partition on your SD card)

    Old versions:
    Old versions:
    I will be trimming old versions soon, here are most mirrors http://www.mediafire.com/?613ufmrzd2ovt
    Undervolting tools (Windows only):

    Mods, fixes and tools:


    Old mods only up to #244:

    Kernel source:
    Frequently Answered Questions:
    - if the phone is not smooth, make sure you only have ONE app that controls CPU active at a time. Daemon OR SetCPU OR System Tuner etc. You can disable other apps by not giving them superuser access.
    - changing your locale to english-us fixes the new market issue if you have problems but don't want to flash the old market.
    - to save even more battery, undervolt your CPU by following the guide below and my easy to use UV TOOLS package. Alternatively use this program to modify your voltages https://market.android.com/details?id=com.incredicontrol .
    - please include your ROM and kernel name if you ask an undervolting question in this thread and you are not running EliteMod
    Recommended SetCPU settings (daily driver - EliteKernel only):
    P7 (Temp > 46C) @ 122-768 smartassV2
    P6 (Charging) @ 768-1248 smartassV2 (do not set too high, it can get hot if you use navigation in a car)
    P5 (Screen Off) @ 122-768 smartassV2
    P4 (B < 15%) @ 122-864 smartassV2
    P3 (B < 30%) @ 122-902 smartassV2
    P2 (B < 50%) @ 122-940 smartassV2
    P1 (B < 101%) @ 122-1036 smartassV2
    These settings implement my own "Final Fortress"(tm) philosphy of battery management. The speed will decrease progressively with battery discharge - basically this will make your battery last longer the longer you are not charging. The goal is to save that precious last drop of power you might need in a tight situation at the end of a long day. All that without sacrificing speed when you have plenty of charge left. You should not notice significant speed decrease until you hit the reserve @ 15%.

    UV hint: If you've built your own stable undervolting table, you can maximize speed with no impact on battery by aligning the max frequencies to your specific voltage peaks. (example: if there are 3 different frequencies stable on the same voltage, always use only the fastest of the group)


    ~CHANGELOG:
    (changes with ! require full wipe)

    120319 (kernel only)
    + allowed undervolting all the way down to 700mV

    120316
    + updated to latest kang
    + updated apks
    + much more resilient sd-ext mounting
    + verbose mounting script (see logcat for debugging)
    + tiny sd-ext performance increase

    120315
    + latest kang
    + updated apks
    + new performance tweaks
    + optional sd-ext and/or swap support
    + relaxed swap priorities compared to experimental build
    + tweaked sd-ext I/O speed (ext4 only)
    + tweaked internal storage I/O speed (need ext4 on /data and /cache)
    + fixed Opera settings transfer
    + new set of Opera tweaks for sick performance
    + removed ROM Manager, recommend using 4EXT recovery from now on to take advantage of ext4 I/O tweaks
    + forcing dalvik-cache to internal memory for performance reasons

    120310
    + latest kang
    + updated all apks
    + Scary not used by default (screen-off is now @ smartassV2 /w 768MHz max)
    + OC Daemon disabled by default, use control app to enable
    + default UV not applied by script (it is built into the kernel anyway)
    + new boot anim
    + different default theme
    + speedy postsetup script on update (second boot no longer takes eternity)
    + enabled swap support in kernel
    + improved kernel performance

    120122
    + 22-01-2012 Kang build
    + added freqs below 245MHz with heavier UV
    + switched to andrev_oc and daemon
    + changed default wake frequency settings to 122-1036, SmartassV2
    + reverted ondemand gov to CM7 defaults
    + updated all apks
    + greatly improved ROM update speed (second boot)
    !+ lockscreen clock not centered by default (weird in landscape)
    + changed default data mode to auto instead of preferred
    + updated default UV table in userinit.sh to match kernel internals
    + updated UV_TOOLS package to match EliteKernel
    + added tweaked Go Launcher Ex + most widgets + Sense theme
    + added 2 Sense themes to CM7 theme manager

    120107
    + Updated to 05-01-2012 kang
    + Fixed garbage collection bug
    + Tweaked garbage collection and hardcoded defaults to standalone
    + Tweaked SmartassV2 for better scaling (EM + standalone)
    + Tweaked Scary for better battery to do better what it's supposed to do (EM + standalone)
    + Tweaked SIO scheduler for better I/O speed and battery (EM + standalone)
    + raised default frequency from 940MHz to 1GHz
    + lowered default frequency from 768MHz to 245MHz (raise back for more smoothness if you don't care about battery)
    + Tweaked storage subsystems for better I/O performance (EM + standalone)
    + moved hard-coded kernel settings from ROM to Kernel config (better maintainability)
    + updated all bundled APKs
    + updated SU
    + if you're using SetCPU, I recommend to update your profiles

    111227
    + improved kernel performance
    + fixed undervolting support
    + released a standalone kernel
    + Important: Use the 111224 to 111227 patch instead of standalone kernel to improve stability above 1200MHz

    111224
    + changed versioning to a date string until nightlies resume
    + updated all apks
    + updated to latest kang build 111222
    + faster new market as default
    - dropped support for Umaro and Tiamat Kernel
    + EliteKernel 111224
    + major performance improvements
    + SmartassV2 governor

    244
    !+ new Opera tweaks
    !+ wifi sleep fix
    !+ updated settings template for 2.3.7
    + new GPS driver
    + camera fixes
    + performance and battery tweaks
    + updated all bundled apks
    + fixed goggles and youtube
    + new superuser + binary

    227
    + loads more speed
    + dramatically reduced stuttering under heavy load
    + highly optimized Opera for butter-smooth browsing (tweaks for full wipe only)
    + QuickPic is now default gallery
    + set K9 mail as default email app
    + re-based on latest nightly, obviously
    + more

    209
    + fixed camera effects
    + updated DSP speaker profile
    + some performance tweaks
    + support for Virtuous OC daemon (install SetCPU to disable it, uninstall to enable)
    + default undervolting profile (for people who don't care, the tailored real deal is far better)
    + default market is now the old one to prevent problems on non-us locales

    186
    + first public release (CM7 nightly #186 + Umaro 1.0.6)
    12
    Changelog

    NIKER's UnderVolting Tools Manual

    Friendly warning: If you use this guide with any ROM or Kernel other than EliteMod and need to ask a question here - mention your ROM and Kernel in your post or I can't help you.

    Be aware: This guide and the default voltage file assume you are using EliteKernel, other kernels will require different starting point voltage table.

    Introduction:
    By undervolting I mean decreasing voltages at which your CPU operates on specific frequencies.
    If done properly, this can lead to dramatic increase of battery life with no performance loss, it also decreases CPU temperatures.
    If done wrong, this can lead to freezes, graphic stuttering under heavy load or unability to boot without reflashing. Do a nandroid backup NOW!

    I take no responsibility for your modifications, burned CPUs due to too high voltage and/or frequency, data loss, nuclear explosions, your girlfriend breaking up with you etc. You know the drill.

    You should know this takes time - a lot of time. I spent 3 long evenings optimizing my table but I didn't have these tools to help.
    You should also know this has to be done just once and you can reap the benefits of insane battery life with any ROM or kernel that supports undervolting - forever.


    Essentials:
    I am assuming you have a Windows PC at hand. SetCPU installed (disable profiles and on boot for safety), YouTube installed and Angry Birds or similar graphically intensive game of your liking for stability testing.

    Next download the UV_TOOLS package I provided above, extract it somewhere and let me explain what each file does:

    tools folder just contains ADB essentials and a simple free unix-capable text editor

    voltages.txt - this is THE file you are going to edit and consequently THE file you never want to lose after you are done.

    voltages.default.txt - this is a copy of the starting point for your convenience

    start_edit.bat - this will open the voltages.txt file in an improved text editor capable of unix line endings, we are going to use this editor to make modifications to the voltage table within voltages.txt. Windows notepad is not sufficient for this task!

    undervolt_temp.bat, undervolt_temp_periodic.bat - these two files are your best friends, they will push the voltages.txt to your device and apply it temporarily. It's effects will be lost after reboot. Periodic variation will push the file every 10 seconds, allowing you to always have the latest saved version of your voltage table on your device. Some may prefer the normal variant that will only re-push on a keystroke.

    undervolt_persistent.bat - be careful with this baby, it does the same job as undervolt_temp.bat, but permanently so, simple reboot will no longer save your ass after you use this. You don't need to wait until you have all 4548648 frequencies optimized but do not use this unless you are pretty sure you have a stable voltage table.

    remove_screwup.bat - did you just use undervolt_persistent.bat and your vision threw it back in your face and wouldn't boot? This will save you - 100% guaranteed.


    Step by step guide:
    First send your girlfriend to sleep, get a huge cup of tea, kick back, run a movie and connect your device, this is gonna be a long night and a lot of reboots.

    Do a nandroid backup. Copy it to your PC, **** happens and we don't want that.

    Run start_edit.bat - voltages.txt will open, this is not the stock voltage table, it is my own table with +25 overvolt added to every entry. Let's take a look:
    Code:
    echo '245760 900' > ./vdd_levels
    ...this says that for frequency of 245MHz the voltage will be 900mV. Valid voltages for vision are ranging from 750 to 1525.

    Our objective is to find the LOWEST stable voltage for each frequency (yes - I know there's a lot of them). If you set it too low, your device will freeze and you will need to pull the battery and reboot (suggest removing your battery cover now). Too high frequency should not freeze your device but they will increase operational temperatures slightly and of course battery drain.

    As I said the provided voltages.txt is specific for my device with slight overvolt, so let's see if your device can handle it or not - run undervolt_temp.bat to push and activate the default table. SetCPU to 122-1036 ondemand. Now if by now the device haven't froze, it's a good sign.

    Next step we will test stability - connect to wifi and disconnect charger. Run youtube app, run a demanding test video with high quality - in high quality mode. The video should not stutter weirdly and the device should not freeze. Actually everyting should be pretty much normal. After 30s try to run your game instead for a half minute. After that hit the power button, let the device sleep for 30s and then try to wake it from standby. Should any of these steps fail, edit the voltages.txt, increase all the voltages by 25, push the changes and try the stabily test again.

    Everything went smoothly? Well congratulation, you have taken the first step towards awesomeness. These settings should already improve your battery life compared to stock.

    But we want moar battery! There's never enough when it comes to battery life. Well here it comes.

    Take frequency 122880, it is the lowest ever used by your device out of standby. We currently have it set to 825, so let's try 800. Save the file and push the voltages to the device if you're not using periodic updater. Now SetCPU to 122-192 ondemand- it will be slow and tedious, frequencies below 768 can't run videos well so just play with your device a bit and watch for a total freeze. Short freezes that fix themselves are to be expected at those speeds. The good thing is, if your device starts suffering from sleep of death - the culprit is most likely one of these two frequencies - remember that.

    Everything went well? Set all frequencies below 122880 to 800 as well. If not, leave them all at 825. Going any lower than 775 is asking for a sleep of death - just don't :)

    Don't forget to always save voltages (floppy button) and then push them using the bat or use the periodic update - otherwise your changes have no effect, obviously.

    Now move to the next frequency 192000 and set it -25 to 850. Leave SetCPU at 122-192 ondemand- we always want two adjacent frequencies switching while testing - it is during this frequency change when the device is most likely to freeze. It also triangulates the problem to these two frequencies, making it easy to fix a problem. Test stability by whatever means - no videos yet. If everything works you can try for 825.

    Do this for every frequency up to 768.
    Undervolt 122-192 then 245-368 then 768-806.
    By now you have the sleep frequencies covered and your device should last incredibly long on standby.

    Now optimize each and every frequency up to the maximum you want to use on daily basis. For 768MHz and more use additional video stress test.


    Hints:
    Never lower voltage more than 25 at a time between tests.
    Always test with ondemand between previous and current frequency to ensure stability.
    Consequently never lower more than two adjacent frequencies in one step - and even that is unsafe (but twice as fast, obviously), missing one unstable frequency means long and tedious testing process to find the culprit - you have been warned so don't try to cheat :D
    Best tests for stability are streaming movies, they stress every component to the limits much more than any synthetic test. Even when SetCPU stability tests succeed, video streams tend to have much lower tolerance for low voltages - the video will stutter before it's even low enough to freeze whole device, do not underestimate this. Also do not mistake buffer stuttering for a CPU problem, the device would eventually freeze if it's CPU, stay close to your wifi AP.
    Secondary test could be a game that doesn't stress the device as much - that will test frequency switching. Angry birds worked well for me and its fun :D



    SetCPU profiles:
    when you've finally built your own stable undervolting table up to your maximum desired frequency, you can maximize the impact of your hard work on battery by aligning the max frequencies to your specific voltage peaks. (example: if there are 3 different frequencies stable on the same voltage, always use only the fastest of the group)

    Does your table look like this?
    Code:
    echo '368640 875' > ./vdd_levels
    echo '768000 875' > ./vdd_levels
    In this case always use 768 instead of 368 in setCPU where possible!
    Higher frequency will do same work much faster
    and in turn the CPU can sleep longer - saving battery.
    9
    sd-ext and ext4 walkthrough

    How to enable sd-ext and swap support
    and increase performance by migrating to ext4


    First decide whether you want both sd-ext and swap or only sd-ext. Be aware that using swap on your SD card may increase its wear and the performance benefit is negligible unless you multitask heavily and leave your apps open by just pressing home button. Also note that by lifting natural memory limits, you may increase the number of simultaneously running apps, swap may also prevent the SD Card from entering sleep states - this may in turn decrease your standby battery times.
    Unless you know what you're doing, I recommend only setting up sd-ext partition.

    Easy steps to migrate your phone to ext4 and increase performance:
    1) first install 4EXT/touch recovery app and flash the latest recovery package
    2) reboot to recovery, tap Info, note which partitions list as ext3
    3) go to tools menu and format (or convert) everything that is ext3 (system/data/cache) to EXT4
    4) back out and make sure the Info says EXT4 everywhere

    Prepping your SD card for sd-ext / swap:

    1) backup everything on your SD card, 4EXT claims that it can safely repartition it but never rely on it
    2) reboot to 4EXT recovery
    3) go to tools - partition sd card - chose whether you will format and copy your backups back from PC, or try to partition without wiping the card
    4) select 2048MB for first sd-ext partition, that is more than enough (app data and dalvik are still in device for performance and space wastage reasons)
    5) select skip on second ext partition
    6) select your desired swap partition size or skip
    7) let it do its thing and when it asks for file system, select ext4
    8) back out and flash the latest EliteMod version as usual (120315+), your sd-ext and swap will be mouted upon boot and new apps will be automatically installed to sd-ext


    No need to reflash gapps or anything else really. This migration is one-time only, you can reflash or update at will, the partitions will stay ext4.

    Additional info:
    Please note that to install apps to sd-ext, you need to chose to install to device memory. Device memory is replaced by sd-ext during the process. If you chose to install an app to sd-card, it will in fact go to the slower fat32 partition, not on sd-ext.

    You may want to - once in a while - check all your apps in settings and move them from sdcard to device using the system management tools. This should result in speed increase as well as making you be able to use those apps while sdcard is mounted to PC.
    5
    New ICS Kernel is out
    please test and report, especially ROMs where the previous version did not work.

    I rebased it on kali kernel, added newer GPU drivers and did some more speed improvements on it.
    This is still WIP, treat it as such.