[Galaxy S II Q&A, Help & Troubleshooting] johnbeetee:
My Battery saving tips

Here are my battery saving values, for those asking or interested:

some for noobs, the more 'sophisticated' tweaks will need some knowledge and use of scripts (not difficult, but you'll have to do it yourself):

CPU:

max.freq. 600MHz

min.freq. 100MHz

undervolts: (these are stable for me, but may not be in your case : test!)

100MHz=825mV
200MHz=850mV
300MHz=875mV
400MHz=875mV
500MHz=950mV
600MHz=975mV
700MHz=975mV
800MHz=1025mV
900MHz=1075mV
1000MHz=1100mV
1100MHz=1100mV
1200MHz=1175mV (thanks to Confusedmuse for his values)

For these values you can use NSTools.

GPU:

(these are stable for me, but may not be in your case : test!)

40MHz=800mV

133MHz=850mV

267MHz=900mV

thresholds 85/25/85/40 staycounts 1/1/1 (default extweaks battery profile values)

For these values you can use Extweaks.

io scheduler : sio

governor : pegasusq

(values inspired by AndreiLux, with some minor adjustments)
sampling rate : 40000
up threshold: 90
sampling down factor: 2
down differential: 5
freq.step: 30
cpu up rate: 10
cpu down rate: 20
hotplug freq 1 1: 400000
hotplug freq 2 0: 200000
hotplug rq 1 1: 350
hotplug rq 2 0: 345
up threshold at min freq: 95
freq for responsiveness: 100000
ignore nice loads: 0
io is busy: 0
max cpu lock: 0
hotplug lock: 0
dvfs debug: 0

You'll need SetCPU, or scripts to make these values stick (runned script after boot):

echo "40000" > /sys/devices/system/cpu/cpufreq/pegasusq/sampling_rate
echo "90" > /sys/devices/system/cpu/cpufreq/pegasusq/up_threshold
echo "2" > /sys/devices/system/cpu/cpufreq/pegasusq/sampling_down_factor
echo "5" > /sys/devices/system/cpu/cpufreq/pegasusq/down_differential
echo "30" > /sys/devices/system/cpu/cpufreq/pegasusq/freq_step
echo "10" > /sys/devices/system/cpu/cpufreq/pegasusq/cpu_up_rate
echo "20" > /sys/devices/system/cpu/cpufreq/pegasusq/cpu_down_rate
echo "400000" > /sys/devices/system/cpu/cpufreq/pegasusq/hotplug_freq_1_1
echo "200000" > /sys/devices/system/cpu/cpufreq/pegasusq/hotplug_freq_2_0
echo "350" > /sys/devices/system/cpu/cpufreq/pegasusq/hotplug_rq_1_1
echo "345" > /sys/devices/system/cpu/cpufreq/pegasusq/hotplug_rq_2_0
echo "95" > /sys/devices/system/cpu/cpufreq/pegasusq/up_threshold_at_min_freq
echo "100000" > /sys/devices/system/cpu/cpufreq/pegasusq/freq_for_responsiveness
echo "0" > /sys/devices/system/cpu/cpufreq/pegasusq/ignore_nice_load
echo "0" > /sys/devices/system/cpu/cpufreq/pegasusq/io_is_busy
echo "0" > /sys/devices/system/cpu/cpufreq/pegasusq/max_cpu_lock
echo "0" > /sys/devices/system/cpu/cpufreq/pegasusq/hotplug_lock
echo "0" > /sys/devices/system/cpu/cpufreq/pegasusq/dvfs debug

misc. settings:

ARCH_POWER enabled (3.3.2 extweaks, 3.2.7.x is default enabled)

GENTLE_FAIR_SLEEPERS enabled (3.3.2 extweaks, 3.2.7.x you'll need a script in init.d to enable):

echo "GENTLE_FAIR_SLEEPERS" > /sys/kernel/debug/sched_features

Smooth_level L11 (500MHz) (thanks to droidphile for his elaborations on this value)

in extweaks you can go as low as 800MHz (default in batt.prof.), so to go to 500 you'll need a script with (runned after boot):

kmemhelper -n smooth_level -t int 11

This will save some power by not jumping directly to 800 when load goes up.

If your going to use higher max-freq than I am (for example 1000Mhz, then leaving at 800 is fine)

Touch_freq L14 (200MHz) (default 500 MHz, thanks to droidphile for his elaborations on this value)

for this you'll need a script with (runned after boot):

LVL=`cat /proc/kallsyms|grep " level\."|awk '{print $3}'`;kmemhelper -n $LVL -t int 14

This will save some power, by jumping to 200MHz instead of 500MHz when screen is touched ; if you find this a fractional laggy-feeling to it, leave it L11 (500MHz)

SCREEN:

we all know the most energy hungry part of the device is the screen....

auto-brightness enabled ! Use extweaks for:

min_bl: 0 (leave at 0, or else you'll get a ghost-flash when gamma goes to 0 if gamma_shift is below -35 [try it if you want to see what I mean])

min_gamma: 0

max_gamma: 12 (for low light conditions) (16 for medium) ( or 24 for moderate-high)

gamma_shift: -50

Now this is the teadious part:

this is perfect for indoors (and saves power)

for brighter conditions you'll want to up the gamma_shift (up to +10 for outdoors) and maybe the max_gamma.

You can make some scripts with preset combo's for different conditions and use these:

echo 0 > /sys/class/misc/brightness_curve/min_gamma

echo 12 > /sys/class/misc/brightness_curve/max_gamma

and for gamma_shift:

echo -50 > /sys/class/lcd/panel/user_gamma_adjust

(Personally I use Tasker, and at screen on it calculates which gamma_shift to use and which gamma_max, depending on the lightsensor values,

which you can read from :

/sys/class/lightsensor/switch_cmd/lightsensor_file_state

so, for those of you not having or using Tasker, you'll have to be creative with a few scripts)

Lcd Panel Power_Reduce enabled

for this you'll need a script with (runned after boot):

echo 1 > /sys/class/lcd/panel/power_reduce

Now this will reduce the power to the lcd a bit a will give you some color shift to a bit yellowish.

If you like you can compensate this with mdnie values (personally, I don't mind it):

(again using scripts, runned after boot)

(just an example, just give it some more blue to compensate)

echo 1 > /sys/class/mdnie/mdnie/user_mode

echo 128 > /sys/class/mdnie/mdnie/user_cr

echo 135 > /sys/class/mdnie/mdnie/user_cb

Especially this last tweak seems to save a significant amount of power. I haven't tested it fully yet, but according to my theoretical calculations, if I would turn on my screen and leave the phone be, it could reach 12 hr. of screen-on time (mind you, doing nothing out of the ordinary, just screen on, it's normal doings like syncing, at gamma_shift -50). This is calculated based on the android battery stats from my use up to now, system using about 1.16%/hr doing little to nothing and screen using about 7.2 %/hr at given settings. Total of 8.36%/hr, giving almost 12 hr from 100% to 0% (standard battery 1650 mah).

Practically, with low light conditions (indoors), I think it would be possible to get around 9-10hr. with very light usage. But I still have to test this some more, just to prove it to myself.

If anyone else would like to join and help, you're welcome to do so.

EDIT: see also http://xdaforums.com/showpost.php?p=28241419&postcount=2066