Welcome to XDA

Search to go directly to your device's forum

Register an account

Unlock full posting privileges

Ask a question

No registration required
Post Reply

[TIPS & TWEAKS][SIYAH] Battery optimization without compromising performance

OP Armisael

26th January 2012, 06:22 PM   |  #1  
OP Junior Member
Thanks Meter: 9
 
18 posts
Join Date:Joined: Dec 2007
This is how i solved my problems of excessive battery drain. I don't know if is gonna work for everyone, but I really hope so. Let me know

MY CONFIG

MODEL: GT-I9100
ROM: CheckROM RevoHD™ V4 XWKK5
KERNEL: SiyahKernel v2.6.11
MODEM: I9100NEKI2*

*I'm using this because, for now, is the best one for my Italian carrier (TRE H3G). Although I9100XWKI1 should be better for battery. Give it a try.

TWEAKS

Use one of the following CMW flashable scripts for SiyahKernel v2.6.7+.
  • SiyahKernel ArmConfig Extreme v2 = Extreme CPU/GPU undervolt (need a bit of luck)
  • SiyahKernel ArmConfig Normal v2 = Optimal CPU/GPU undervolt (suitable for most users)
  • SiyahKernel ArmConfig Compatibility v2 = Low CPU/GPU undervolt (safe UV values)
  • SiyahKernel ArmConfig No UV v2 = No CPU/GPU undervolt (default voltages & charge currents)

SiyahKernel ArmConfig Extreme v2
Code:
#!/system/bin/sh

sleep 5

# ============================
# 1°) CPU Frequency & Voltages
# ============================

# Set frequency steps according to the number of steps in your kernel.
echo "1600 1400 1200 1000 800 500 200 100" > /sys/devices/system/cpu/cpu0/cpufreq/freq_table

# Sets global scaling min&max frequencies as 100 and 1000 mhz
echo 200000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo 1200000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq

# Set voltages for frequency steps. Changes possible at +/-25mV steps
echo "1375 1250 1150 1075 975 875 800 825" > /sys/devices/system/cpu/cpu0/cpufreq/UV_mV_table

# ==================
# 2°) I/O Schedulers
# ==================

echo bfq > /sys/block/mmcblk0/queue/scheduler

# ================================================
# 3°) Scaling Governor & Smooth Scaling Parameters
# ================================================

# Set scaling governor, according to available governors in your kernel
echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 100000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
echo 85 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential

# Smooth scaling parameters to control any governor jumping to higher frequency directly.
echo 2 > /sys/devices/system/cpu/cpu0/cpufreq/smooth_target
echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/smooth_offset
echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/smooth_step

# ====================================
# 4°) GPU Clock, Voltages & Thresholds
# ====================================

# Set GPU clocks (Valid values are: 100 114 133 160 200 267 300 400 )
echo "100 160 267" > /sys/class/misc/gpu_clock_control/gpu_control

# Set GPU Up and Down thresholds
echo "90% 50% 90% 50%" > /sys/class/misc/gpu_clock_control/gpu_control

# Set GPU voltages (Changes possible at +/-50mV ie at 50000 steps)
echo "800000 800000 950000" > /sys/class/misc/gpu_voltage_control/gpu_control

# ===================
# 5°) Bus Frequencies
# ===================

# Set bus frequencies for highest-to-lowest cpu frequencies and enable static bus frequency scaling
echo "0 0 0 1 1 2 2 2" > /sys/devices/system/cpu/cpu0/cpufreq/busfreq_static
echo enabled > /sys/devices/system/cpu/cpu0/cpufreq/busfreq_static

# ======================================================
# 6°) Hot Plug Thresholds, Sampling Interval & Frequency
# ======================================================

# Set second core kick-in threshold for screen-on state
echo 25 > /sys/module/pm_hotplug/parameters/loadl
echo 70 > /sys/module/pm_hotplug/parameters/loadh

# Set second core kick-in threshold for screen-off state
echo 45 > /sys/module/pm_hotplug/parameters/loadl_scroff
echo 90 > /sys/module/pm_hotplug/parameters/loadh_scroff

# Set frequency below which second core will not be turned on, regardless of thresholds.
echo 500000 > /sys/module/pm_hotplug/parameters/freq_cpu1on

# Set hot plug sampling intervals for screen-on state
echo 200 > /sys/module/pm_hotplug/parameters/rate
echo 400 > /sys/module/pm_hotplug/parameters/rate_cpuon

# Set hot plug sampling intervals for screen-off state 
echo 800 > /sys/module/pm_hotplug/parameters/rate_scroff

# ====================================
# 7°) Schedule Multi Core & Idle Modes
# ====================================

# Enable sched_mc
echo 1 > /sys/devices/system/cpu/sched_mc_power_savings

# Enable AFTR
echo 3 > /sys/module/cpuidle/parameters/enable_mask

# ======================================
# 8°) Switch Hotplug/DualCore/SingleCore
# ======================================

# Set Dynamic hotplug mode
echo "on" > /sys/devices/virtual/misc/second_core/hotplug_on

# ================================================================
# 9°) Deepsleep Levels
#     cpulevel = 4 (100Mhz - 800Mhz, default), 5 (100Mhz - 500Mhz)
#     buslevel = 0 (400MHz, default), 1 (266MHz), 2 (133MHz)
# ================================================================

# Set deep sleep frequency & bus speed: 
echo 5 > /sys/devices/system/cpu/cpu0/cpufreq/deepsleep_cpulevel
echo 2 > /sys/devices/system/cpu/cpu0/cpufreq/deepsleep_buslevel

# ==============================
# 10°) Brightness Curve Settings
# ==============================

# Brightness settings (Possible values for min_bl = 0 to 255 | min_gamma = 0 to 24 | max_gamma = 0 to 24)
echo 30 > /sys/class/misc/brightness_curve/min_bl
echo 1 > /sys/class/misc/brightness_curve/min_gamma
echo 24 > /sys/class/misc/brightness_curve/max_gamma

# =================================
# 11°) Touch Sensitivity Parameters
# =================================

# Set touch sensitivity (Possible values are between 40 to 80. Lower value = higher sensitivity)
echo 45 > /sys/devices/virtual/sec/sec_touchscreen/tsp_threshold

# ===================
# 12°) Charge Current
# ===================

# Set AC, Misc & USB charge current (Do not set Ac & Misc more than 1000mA or Usb more than 450)
echo "900 900 450" > /sys/devices/virtual/misc/charge_current/charge_current

# ===================
# 13°) Disable logger
# ===================

if [ ! -d /data/.siyah ];
then
  mkdir /data/.siyah;
  chmod 777 /data/.siyah;
fi;
touch /data/.siyah/disable-logger;


# ====================
# 14°) Graphic tunings
# ====================

setprop debug.sf.hw 1;  # HARDWARE RENDERING (GPU) 
setprop video.accelerate.hw 1;
setprop debug.performance.tuning 1;
SiyahKernel ArmConfig Normal v2
Code:
#!/system/bin/sh

sleep 5

# ============================
# 1°) CPU Frequency & Voltages
# ============================

# Set frequency steps according to the number of steps in your kernel.
echo "1600 1400 1200 1000 800 500 200 100" > /sys/devices/system/cpu/cpu0/cpufreq/freq_table

# Sets global scaling min&max frequencies as 100 and 1000 mhz
echo 200000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo 1200000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq

# Set voltages for frequency steps. Changes possible at +/-25mV steps
echo "1400 1275 1175 1100 1000 900 875 850" > /sys/devices/system/cpu/cpu0/cpufreq/UV_mV_table

# ==================
# 2°) I/O Schedulers
# ==================

echo bfq > /sys/block/mmcblk0/queue/scheduler

# ================================================
# 3°) Scaling Governor & Smooth Scaling Parameters
# ================================================

# Set scaling governor, according to available governors in your kernel
echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 100000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
echo 85 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential

# Smooth scaling parameters to control any governor jumping to higher frequency directly.
echo 2 > /sys/devices/system/cpu/cpu0/cpufreq/smooth_target
echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/smooth_offset
echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/smooth_step

# ====================================
# 4°) GPU Clock, Voltages & Thresholds
# ====================================

# Set GPU clocks (Valid values are: 100 114 133 160 200 267 300 400 )
echo "100 160 267" > /sys/class/misc/gpu_clock_control/gpu_control

# Set GPU Up and Down thresholds
echo "90% 50% 90% 50%" > /sys/class/misc/gpu_clock_control/gpu_control

# Set GPU voltages (Changes possible at +/-50mV ie at 50000 steps)
echo "850000 850000 950000" > /sys/class/misc/gpu_voltage_control/gpu_control

# ===================
# 5°) Bus Frequencies
# ===================

# Set bus frequencies for highest-to-lowest cpu frequencies and enable static bus frequency scaling
echo "0 0 0 1 1 2 2 2" > /sys/devices/system/cpu/cpu0/cpufreq/busfreq_static
echo enabled > /sys/devices/system/cpu/cpu0/cpufreq/busfreq_static

# ======================================================
# 6°) Hot Plug Thresholds, Sampling Interval & Frequency
# ======================================================

# Set second core kick-in threshold for screen-on state
echo 25 > /sys/module/pm_hotplug/parameters/loadl
echo 70 > /sys/module/pm_hotplug/parameters/loadh

# Set second core kick-in threshold for screen-off state
echo 45 > /sys/module/pm_hotplug/parameters/loadl_scroff
echo 90 > /sys/module/pm_hotplug/parameters/loadh_scroff

# Set frequency below which second core will not be turned on, regardless of thresholds.
echo 500000 > /sys/module/pm_hotplug/parameters/freq_cpu1on

# Set hot plug sampling intervals for screen-on state
echo 200 > /sys/module/pm_hotplug/parameters/rate
echo 400 > /sys/module/pm_hotplug/parameters/rate_cpuon

# Set hot plug sampling intervals for screen-off state 
echo 800 > /sys/module/pm_hotplug/parameters/rate_scroff

# ====================================
# 7°) Schedule Multi Core & Idle Modes
# ====================================

# Enable sched_mc
echo 1 > /sys/devices/system/cpu/sched_mc_power_savings

# Enable AFTR
echo 3 > /sys/module/cpuidle/parameters/enable_mask

# ======================================
# 8°) Switch Hotplug/DualCore/SingleCore
# ======================================

# Set Dynamic hotplug mode
echo "on" > /sys/devices/virtual/misc/second_core/hotplug_on

# ================================================================
# 9°) Deepsleep Levels
#     cpulevel = 4 (100Mhz - 800Mhz, default), 5 (100Mhz - 500Mhz)
#     buslevel = 0 (400MHz, default), 1 (266MHz), 2 (133MHz)
# ================================================================

# Set deep sleep frequency & bus speed: 
echo 5 > /sys/devices/system/cpu/cpu0/cpufreq/deepsleep_cpulevel
echo 2 > /sys/devices/system/cpu/cpu0/cpufreq/deepsleep_buslevel

# ==============================
# 10°) Brightness Curve Settings
# ==============================

# Brightness settings (Possible values for min_bl = 0 to 255 | min_gamma = 0 to 24 | max_gamma = 0 to 24)
echo 30 > /sys/class/misc/brightness_curve/min_bl
echo 1 > /sys/class/misc/brightness_curve/min_gamma
echo 24 > /sys/class/misc/brightness_curve/max_gamma

# =================================
# 11°) Touch Sensitivity Parameters
# =================================

# Set touch sensitivity (Possible values are between 40 to 80. Lower value = higher sensitivity)
echo 45 > /sys/devices/virtual/sec/sec_touchscreen/tsp_threshold

# ===================
# 12°) Charge Current
# ===================

# Set AC, Misc & USB charge current (Do not set Ac & Misc more than 1000mA or Usb more than 450)
echo "900 900 450" > /sys/devices/virtual/misc/charge_current/charge_current

# ===================
# 13°) Disable logger
# ===================

if [ ! -d /data/.siyah ];
then
  mkdir /data/.siyah;
  chmod 777 /data/.siyah;
fi;
touch /data/.siyah/disable-logger;


# ====================
# 14°) Graphic tunings
# ====================

setprop debug.sf.hw 1;  # HARDWARE RENDERING (GPU) 
setprop video.accelerate.hw 1;
setprop debug.performance.tuning 1;
SiyahKernel ArmConfig Compatibility v2
Code:
#!/system/bin/sh

sleep 5

# ============================
# 1°) CPU Frequency & Voltages
# ============================

# Set frequency steps according to the number of steps in your kernel.
echo "1600 1400 1200 1000 800 500 200 100" > /sys/devices/system/cpu/cpu0/cpufreq/freq_table

# Sets global scaling min&max frequencies as 100 and 1000 mhz
echo 200000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo 1200000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq

# Set voltages for frequency steps. Changes possible at +/-25mV steps
echo "1400 1300 1200 1100 1000 925 900 875" > /sys/devices/system/cpu/cpu0/cpufreq/UV_mV_table

# ==================
# 2°) I/O Schedulers
# ==================

echo bfq > /sys/block/mmcblk0/queue/scheduler

# ================================================
# 3°) Scaling Governor & Smooth Scaling Parameters
# ================================================

# Set scaling governor, according to available governors in your kernel
echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 100000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
echo 85 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential

# Smooth scaling parameters to control any governor jumping to higher frequency directly.
echo 2 > /sys/devices/system/cpu/cpu0/cpufreq/smooth_target
echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/smooth_offset
echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/smooth_step

# ====================================
# 4°) GPU Clock, Voltages & Thresholds
# ====================================

# Set GPU clocks (Valid values are: 100 114 133 160 200 267 300 400 )
echo "100 160 267" > /sys/class/misc/gpu_clock_control/gpu_control

# Set GPU Up and Down thresholds
echo "90% 50% 90% 50%" > /sys/class/misc/gpu_clock_control/gpu_control

# Set GPU voltages (Changes possible at +/-50mV ie at 50000 steps)
echo "850000 850000 950000" > /sys/class/misc/gpu_voltage_control/gpu_control

# ===================
# 5°) Bus Frequencies
# ===================

# Set bus frequencies for highest-to-lowest cpu frequencies and enable static bus frequency scaling
echo "0 0 0 1 1 2 2 2" > /sys/devices/system/cpu/cpu0/cpufreq/busfreq_static
echo enabled > /sys/devices/system/cpu/cpu0/cpufreq/busfreq_static

# ======================================================
# 6°) Hot Plug Thresholds, Sampling Interval & Frequency
# ======================================================

# Set second core kick-in threshold for screen-on state
echo 25 > /sys/module/pm_hotplug/parameters/loadl
echo 70 > /sys/module/pm_hotplug/parameters/loadh

# Set second core kick-in threshold for screen-off state
echo 45 > /sys/module/pm_hotplug/parameters/loadl_scroff
echo 90 > /sys/module/pm_hotplug/parameters/loadh_scroff

# Set frequency below which second core will not be turned on, regardless of thresholds.
echo 500000 > /sys/module/pm_hotplug/parameters/freq_cpu1on

# Set hot plug sampling intervals for screen-on state
echo 200 > /sys/module/pm_hotplug/parameters/rate
echo 400 > /sys/module/pm_hotplug/parameters/rate_cpuon

# Set hot plug sampling intervals for screen-off state 
echo 800 > /sys/module/pm_hotplug/parameters/rate_scroff

# ====================================
# 7°) Schedule Multi Core & Idle Modes
# ====================================

# Enable sched_mc
echo 1 > /sys/devices/system/cpu/sched_mc_power_savings

# Enable AFTR
echo 3 > /sys/module/cpuidle/parameters/enable_mask

# ======================================
# 8°) Switch Hotplug/DualCore/SingleCore
# ======================================

# Set Dynamic hotplug mode
echo "on" > /sys/devices/virtual/misc/second_core/hotplug_on

# ================================================================
# 9°) Deepsleep Levels
#     cpulevel = 4 (100Mhz - 800Mhz, default), 5 (100Mhz - 500Mhz)
#     buslevel = 0 (400MHz, default), 1 (266MHz), 2 (133MHz)
# ================================================================

# Set deep sleep frequency & bus speed: 
echo 5 > /sys/devices/system/cpu/cpu0/cpufreq/deepsleep_cpulevel
echo 2 > /sys/devices/system/cpu/cpu0/cpufreq/deepsleep_buslevel

# ==============================
# 10°) Brightness Curve Settings
# ==============================

# Brightness settings (Possible values for min_bl = 0 to 255 | min_gamma = 0 to 24 | max_gamma = 0 to 24)
echo 30 > /sys/class/misc/brightness_curve/min_bl
echo 1 > /sys/class/misc/brightness_curve/min_gamma
echo 24 > /sys/class/misc/brightness_curve/max_gamma

# =================================
# 11°) Touch Sensitivity Parameters
# =================================

# Set touch sensitivity (Possible values are between 40 to 80. Lower value = higher sensitivity)
echo 45 > /sys/devices/virtual/sec/sec_touchscreen/tsp_threshold

# ===================
# 12°) Charge Current
# ===================

# Set AC, Misc & USB charge current (Do not set Ac & Misc more than 1000mA or Usb more than 450)
echo "900 900 450" > /sys/devices/virtual/misc/charge_current/charge_current

# ===================
# 13°) Disable logger
# ===================

if [ ! -d /data/.siyah ];
then
  mkdir /data/.siyah;
  chmod 777 /data/.siyah;
fi;
touch /data/.siyah/disable-logger;


# ====================
# 14°) Graphic tunings
# ====================

setprop debug.sf.hw 1;  # HARDWARE RENDERING (GPU) 
setprop video.accelerate.hw 1;
setprop debug.performance.tuning 1;
SiyahKernel ArmConfig No UV v2
Code:
#!/system/bin/sh

sleep 5

# ============================
# 1°) CPU Frequency & Voltages
# ============================

# Set frequency steps according to the number of steps in your kernel.
echo "1600 1400 1200 1000 800 500 200 100" > /sys/devices/system/cpu/cpu0/cpufreq/freq_table

# Sets global scaling min&max frequencies as 100 and 1000 mhz
echo 200000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo 1200000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq

# Set voltages for frequency steps. Changes possible at +/-25mV steps
# echo "1375 1250 1150 1075 975 875 800 825" > /sys/devices/system/cpu/cpu0/cpufreq/UV_mV_table

# ==================
# 2°) I/O Schedulers
# ==================

echo bfq > /sys/block/mmcblk0/queue/scheduler

# ================================================
# 3°) Scaling Governor & Smooth Scaling Parameters
# ================================================

# Set scaling governor, according to available governors in your kernel
echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 100000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
echo 85 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential

# Smooth scaling parameters to control any governor jumping to higher frequency directly.
echo 2 > /sys/devices/system/cpu/cpu0/cpufreq/smooth_target
echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/smooth_offset
echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/smooth_step

# ====================================
# 4°) GPU Clock, Voltages & Thresholds
# ====================================

# Set GPU clocks (Valid values are: 100 114 133 160 200 267 300 400 )
echo "100 160 267" > /sys/class/misc/gpu_clock_control/gpu_control

# Set GPU Up and Down thresholds
echo "90% 50% 90% 50%" > /sys/class/misc/gpu_clock_control/gpu_control

# Set GPU voltages (Changes possible at +/-50mV ie at 50000 steps)
# echo "800000 800000 950000" > /sys/class/misc/gpu_voltage_control/gpu_control

# ===================
# 5°) Bus Frequencies
# ===================

# Set bus frequencies for highest-to-lowest cpu frequencies and enable static bus frequency scaling
echo "0 0 0 1 1 2 2 2" > /sys/devices/system/cpu/cpu0/cpufreq/busfreq_static
echo enabled > /sys/devices/system/cpu/cpu0/cpufreq/busfreq_static

# ======================================================
# 6°) Hot Plug Thresholds, Sampling Interval & Frequency
# ======================================================

# Set second core kick-in threshold for screen-on state
echo 25 > /sys/module/pm_hotplug/parameters/loadl
echo 70 > /sys/module/pm_hotplug/parameters/loadh

# Set second core kick-in threshold for screen-off state
echo 45 > /sys/module/pm_hotplug/parameters/loadl_scroff
echo 90 > /sys/module/pm_hotplug/parameters/loadh_scroff

# Set frequency below which second core will not be turned on, regardless of thresholds.
echo 500000 > /sys/module/pm_hotplug/parameters/freq_cpu1on

# Set hot plug sampling intervals for screen-on state
echo 200 > /sys/module/pm_hotplug/parameters/rate
echo 400 > /sys/module/pm_hotplug/parameters/rate_cpuon

# Set hot plug sampling intervals for screen-off state 
echo 800 > /sys/module/pm_hotplug/parameters/rate_scroff

# ====================================
# 7°) Schedule Multi Core & Idle Modes
# ====================================

# Enable sched_mc
echo 1 > /sys/devices/system/cpu/sched_mc_power_savings

# Enable AFTR
echo 3 > /sys/module/cpuidle/parameters/enable_mask

# ======================================
# 8°) Switch Hotplug/DualCore/SingleCore
# ======================================

# Set Dynamic hotplug mode
echo "on" > /sys/devices/virtual/misc/second_core/hotplug_on

# ================================================================
# 9°) Deepsleep Levels
#     cpulevel = 4 (100Mhz - 800Mhz, default), 5 (100Mhz - 500Mhz)
#     buslevel = 0 (400MHz, default), 1 (266MHz), 2 (133MHz)
# ================================================================

# Set deep sleep frequency & bus speed: 
echo 5 > /sys/devices/system/cpu/cpu0/cpufreq/deepsleep_cpulevel
echo 2 > /sys/devices/system/cpu/cpu0/cpufreq/deepsleep_buslevel

# ==============================
# 10°) Brightness Curve Settings
# ==============================

# Brightness settings (Possible values for min_bl = 0 to 255 | min_gamma = 0 to 24 | max_gamma = 0 to 24)
echo 30 > /sys/class/misc/brightness_curve/min_bl
echo 1 > /sys/class/misc/brightness_curve/min_gamma
echo 24 > /sys/class/misc/brightness_curve/max_gamma

# =================================
# 11°) Touch Sensitivity Parameters
# =================================

# Set touch sensitivity (Possible values are between 40 to 80. Lower value = higher sensitivity)
echo 45 > /sys/devices/virtual/sec/sec_touchscreen/tsp_threshold

# ===================
# 12°) Charge Current
# ===================

# Set AC, Misc & USB charge current (Do not set Ac & Misc more than 1000mA or Usb more than 450)
# echo "900 900 450" > /sys/devices/virtual/misc/charge_current/charge_current

# ===================
# 13°) Disable logger
# ===================

if [ ! -d /data/.siyah ];
then
  mkdir /data/.siyah;
  chmod 777 /data/.siyah;
fi;
touch /data/.siyah/disable-logger;


# ====================
# 14°) Graphic tunings
# ====================

setprop debug.sf.hw 1;  # HARDWARE RENDERING (GPU) 
setprop video.accelerate.hw 1;
setprop debug.performance.tuning 1;
WARNING

Overclocking & Undervolting may cause system instability. Use these settings with caution and at your own risk . I personally use "ArmConfig Extreme" but my phone is a very lucky one .
  • Don't want to change any voltages? Install ArmConfig_No_UV_v2 through CMW recovery.
  • Want stock values? Simply remove S98SiyahArmConfig from system/etc/init.d folder .

TIPS

1) Use Titanium Backup for freezing "Samsung Push Service". It was causing me a lot of wakelocks (v1.0.1).

2) Calibrate your battery using the following method [all credits to ram3n].

Quote:

  • Turn off your phone.
  • Fully Charge.
  • When getting 100% signal, unplug quickly.
  • Pull off the battery and put it anywhere.
  • Wait around 5 minutes.
  • Meanwhile, take this opportunity to dust off the internal compartment.
  • Put back the battery on the right side.
  • Turn on the phone.

3) Follow this guide to fix the StartingAlertService Wakelock [all credits to rodries]

This should considerably reduce your phone wakelocks, improving battery life.
BTW if you are using CheckROM RevoHD™ V4 or any other XWKK5 ROM, you can just install this CMW flashable update.

4) Disable Fast dormancy by using *#9900# code in phone app. This Tweak must be applied every time you reboot your smartphone.

CHANGELOG

ArmConfig v1 to v2:
  • Commented code
  • From bootscript to S98SiyahArmConfig
  • Changed deep sleep frequency to 500MHz
  • Fixed Dynamic hotplug (thanks evilive27)
  • Disabled logger
  • Graphic tunings
  • Several minor tweaks

CREDITS

LeoMar75 and GadgetCheck for CheckROM RevoHD™ V4
gokhanmoral for SiyahKernel v2.6.11
ram3n for Battery Calibration
droidphile for his wonderful thread
hausmanis for Disable Logger & Graphic tunings scripts
Last edited by Armisael; 31st January 2012 at 05:42 PM. Reason: Update
The Following 6 Users Say Thank You to Armisael For This Useful Post: [ View ]
26th January 2012, 07:23 PM   |  #2  
Paradoxxx's Avatar
Recognized Contributor
Flag Nimes
Thanks Meter: 5,478
 
4,769 posts
Join Date:Joined: Aug 2008
Donate to Me
Good job.

Envoyé depuis mon GT-I9100 avec Tapatalk
Suarez7
26th January 2012, 07:42 PM   |  #3  
Guest
Thanks Meter: 0
 
n/a posts
Good job mate but battery calibration does not work on our phones and really whatever method you try means nothing. But anyway good job on your thread very good info you have.
26th January 2012, 09:13 PM   |  #4  
OP Junior Member
Thanks Meter: 9
 
18 posts
Join Date:Joined: Dec 2007
Suarez7 I know that our smartphone uses MAX17042, which is auto-calibrating, but sometimes this feature doesn't work as expected and deleting Batterystats.bin in data/system folder doesn't work either. This method should force the MAX17042 to erase all calibration data allowing a fresh start. I personally tried this with a little skepticism and i was surprised with the results (don't thing is the so called placebo effect ).
Give it a try
Last edited by Armisael; 26th January 2012 at 09:18 PM.
Suarez7
26th January 2012, 09:49 PM   |  #5  
Guest
Thanks Meter: 0
 
n/a posts
Quote:
Originally Posted by Armisael

Suarez7 I know that our smartphone uses MAX17042, which is auto-calibrating, but sometimes this feature doesn't work as expected and deleting Batterystats.bin in data/system folder doesn't work either. This method should force the MAX17042 to erase all calibration data allowing a fresh start. I personally tried this with a little skepticism and i was surprised with the results (don't thing is the so called placebo effect ).
Give it a try

Buddy i tried them all and honestly not noticed sod all. Anyway good luck with the thread. And FYI most kernel developers if you ask will say that calibration really means nothing lately. But anyway besides the point good luck on the thread well put info

Sent from my GT-I9100 using xda premium
26th January 2012, 10:14 PM   |  #6  
OP Junior Member
Thanks Meter: 9
 
18 posts
Join Date:Joined: Dec 2007
Use the following as a reference to know which script is most suitable for you
  • SiyahKernel ArmConfig Extreme = Extreme CPU/GPU undervolt (need a bit of luck)
  • SiyahKernel ArmConfig Standard = Optimal CPU/GPU undervolt (suitable for most users)
  • SiyahKernel ArmConfig Compatibility = Low CPU/GPU undervolt (safe UV values)
  • SiyahKernel ArmConfig NO UV = No CPU/GPU undervolt (default voltages & charge currents)

*Also added to the first post
The Following User Says Thank You to Armisael For This Useful Post: [ View ]
27th January 2012, 11:45 AM   |  #7  
OP Junior Member
Thanks Meter: 9
 
18 posts
Join Date:Joined: Dec 2007
Testing a new Extreme version with a new frequency table

200-400-600-800-1000-1200-1400-1600

27th January 2012, 02:29 PM   |  #8  
OP Junior Member
Thanks Meter: 9
 
18 posts
Join Date:Joined: Dec 2007
This is what I'm testing right now

Code:
#!/system/bin/sh

sleep 5

echo "1600 1400 1200 1000 800 600 400 200" > /sys/devices/system/cpu/cpu0/cpufreq/freq_table
echo 200000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo 1200000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo "1375 1250 1150 1075 975 875 875 800" > /sys/devices/system/cpu/cpu0/cpufreq/UV_mV_table

echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 100000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
echo 5 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential

echo "100 160 267" > /sys/class/misc/gpu_clock_control/gpu_control
echo "90% 50% 90% 50%" > /sys/class/misc/gpu_clock_control/gpu_control
echo "800000 800000 950000" > /sys/class/misc/gpu_voltage_control/gpu_control

echo "0 0 0 1 1 2 2 2" > /sys/devices/system/cpu/cpu0/cpufreq/busfreq_static
echo enabled > /sys/devices/system/cpu/cpu0/cpufreq/busfreq_static

echo 3 > /sys/module/cpuidle/parameters/enable_mask

echo 50 > /sys/devices/virtual/sec/sec_touchscreen/tsp_threshold

echo bfq > /sys/block/mmcblk0/queue/scheduler

echo 2 > /sys/devices/system/cpu/cpu0/cpufreq/smooth_target
echo 2 > /sys/devices/system/cpu/cpu0/cpufreq/smooth_offset
echo 2 > /sys/devices/system/cpu/cpu0/cpufreq/smooth_step

echo 4 > /sys/devices/system/cpu/cpu0/cpufreq/deepsleep_cpulevel
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/deepsleep_buslevel

echo 30 > /sys/class/misc/brightness_curve/min_bl
echo 1 > /sys/class/misc/brightness_curve/min_gamma
echo 24 > /sys/class/misc/brightness_curve/max_gamma

echo 25 > /sys/module/pm_hotplug/parameters/loadl
echo 70 > /sys/module/pm_hotplug/parameters/loadh
echo 45 > /sys/module/pm_hotplug/parameters/loadl_scroff
echo 90 > /sys/module/pm_hotplug/parameters/loadh_scroff
echo 599999 > /sys/module/pm_hotplug/parameters/freq_cpu1on
echo 200 > /sys/module/pm_hotplug/parameters/rate
echo 400 > /sys/module/pm_hotplug/parameters/rate_cpuon
echo 800 > /sys/module/pm_hotplug/parameters/rate_scroff

echo 1 > /sys/devices/system/cpu/sched_mc_power_savings

echo "900 900 450" > /sys/devices/virtual/misc/charge_current/charge_current

echo "on" > /sys/devices/virtual/misc/second_core/hotplug_on
echo "off" > /sys/devices/virtual/misc/second_core/hotplug_on
echo "off" > /sys/devices/virtual/misc/second_core/second_core_on
echo "off" > /sys/devices/virtual/misc/second_core/hotplug_on
echo "on" > /sys/devices/virtual/misc/second_core/second_core_on
Should be very energy efficient but I'm still unconvinced about performance

UPDATE

1) Testing battery consumption at 400MHz 0,875v & 600MHz 0,875v
2) I think 200-1400MHz is still the better solution for performance & battery... I will update my scripts as soon as I can
Last edited by Armisael; 27th January 2012 at 05:16 PM.
The Following User Says Thank You to Armisael For This Useful Post: [ View ]
27th January 2012, 05:53 PM   |  #9  
kaiser_tytnii's Avatar
Senior Member
Flag Toronto
Thanks Meter: 43
 
528 posts
Join Date:Joined: Nov 2007
More
I also edited GPU setting according to AndreiLux’s settings

Quote:

echo "40 133 267" > /sys/class/misc/gpu_clock_control/gpu_control
echo "90% 25% 90% 40%" > /sys/class/misc/gpu_clock_control/gpu_control

27th January 2012, 07:51 PM   |  #10  
Senior Member
Thanks Meter: 21
 
222 posts
Join Date:Joined: Dec 2008
With these scripts both cores are always on. Dynamic hotplug doesn't seem to work.

Post Reply Subscribe to Thread
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes