Undervoltage for Evo3D - HTC EVO 3D

don't know if under-voltage helps for battery consumption
Done the Stress test with antutu and 'stress test' from market for 2hours, after each under voltage test for each clock rate
and here is my result for 6days testing
#! 700000 712500 725000 737500 750000 762500 787500 800000 812500 825000 837500 850000 887500 900000 912500 937500 962500 987500 1000000 1012500 1037500 1062500 1087500 1112500 1125000 1162500 1200000 1250000 1275000 1325000
echo "192000 700000" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
echo "310500 712500" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
echo "384000 725000" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
echo "432000 737500" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
echo "486000 750000" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
echo "540000 762500" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
echo "594000 787500" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
echo "648000 800000" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
echo "702000 812500" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
echo "756000 825000" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
echo "810000 837500" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
echo "864000 850000" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
echo "918000 887500" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
echo "972000 900000" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
echo "1026000 912500" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
echo "1080000 937500" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
echo "1134000 962500" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
echo "1188000 987500" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
echo "1242000 1000000" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
echo "1296000 1012500" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
echo "1350000 1037500" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
echo "1404000 1062500" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
echo "1458000 1087500" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
echo "1512000 1112500" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
echo "1566000 1125000" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
echo "1620000 1162500" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
echo "1674000 1200000" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
echo "1728000 1250000" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
echo "1782000 1275000" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
echo "1836000 1325000" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels

What kernel are you using?
Sent from my PG86100 using Tapatalk 2

bayp4amd said:
What kernel are you using?
Sent from my PG86100 using Tapatalk 2
Click to expand...
Click to collapse
CoolZ EvoG v2.3 by coolexe

Related

CyanogenMod brightness Issue FIXED

I have installed Cyanogenmod , it is super fast and perfect rom
only one issue that is very major issue for me , is low brightness. I tried many things but no success
Today i got solution , it is very easy
After installing cyanogenmod , install root explorer
go to sysyem/etc directory
Find hw_config.sh file
Tap and hold on this hw_config.sh file , select edit in text viewer option from the menu
Scroll down to the bottom , there you will see this code (i am using FXP054 cyanogenmod , for other versions it may vary)
# LMU AS3676 Configuration
dev=/sys/devices/i2c-0/0-0040/leds
echo 1,65,255,24,24,5,128 > $dev/lcd-backlight/als/curve # ALS curve for group1
echo 2,0,0,0 > $dev/lcd-backlight/als/params #[gain],[filter_up],[filter_down],[offset]
echo 1 > $dev/lcd-backlight/als/enable #Sensor on/off. 1 = on, reg 90h
echo 450 > $dev/button-backlight/max_current
Change above code to
# LMU AS3676 Configuration
dev=/sys/devices/i2c-0/0-0040/leds
echo 0,0,0,0,0,0,0 > $dev/lcd-backlight/als/curve # ALS curve for group1
echo 2,0,0,0 > $dev/lcd-backlight/als/params #[gain],[filter_up],[filter_down],[offset]
echo 1 > $dev/lcd-backlight/als/enable #Sensor on/off. 1 = on, reg 90h
echo 450 > $dev/button-backlight/max_current
Reboot your phone and voila you have fixed brightness problem :
Thanks to xutienan9520
You can also hit thanks button for me
my hero!
10000000000000000000000000000 thanks .... life saver
Many thanks,
I've just tried to do this on FXP106 CM7.2, but the original text in my sh_config.sh is different to yours by a couple of lines so I just want to check what I should be doing before I break something...
It's currently
# LMU AS3676 Configuration
dev=/sys/devices/i2c-0/0-0040/leds/
echo 0,0,0,0 > $dev/lcd-backlight/als/params #[gain],[filter_up],[filter_down],[offset]
echo 0 > $dev/lcd-backlight/als/enable #Sensor on/off. 1 = on, reg 90h
Should I replace it with this?
# LMU AS3676 Configuration
dev=/sys/devices/i2c-0/0-0040/leds
echo 0,0,0,0,0,0,0 > $dev/lcd-backlight/als/curve # ALS curve for group1
echo 2,0,0,0 > $dev/lcd-backlight/als/params #[gain],[filter_up],[filter_down],[offset]
echo 1 > $dev/lcd-backlight/als/enable #Sensor on/off. 1 = on, reg 90h
echo 450 > $dev/button-backlight/max_current
Any help gratefullly received. I don't really know what this all means so I'm a bit apprehensive to just try it in case it breaks something.
richratt said:
Many thanks,
I've just tried to do this on FXP106 CM7.2, but the original text in my sh_config.sh is different to yours by a couple of lines so I just want to check what I should be doing before I break something...
It's currently
# LMU AS3676 Configuration
dev=/sys/devices/i2c-0/0-0040/leds/
echo 0,0,0,0 > $dev/lcd-backlight/als/params #[gain],[filter_up],[filter_down],[offset]
echo 0 > $dev/lcd-backlight/als/enable #Sensor on/off. 1 = on, reg 90h
Should I replace it with this?
# LMU AS3676 Configuration
dev=/sys/devices/i2c-0/0-0040/leds
echo 0,0,0,0,0,0,0 > $dev/lcd-backlight/als/curve # ALS curve for group1
echo 2,0,0,0 > $dev/lcd-backlight/als/params #[gain],[filter_up],[filter_down],[offset]
echo 1 > $dev/lcd-backlight/als/enable #Sensor on/off. 1 = on, reg 90h
echo 450 > $dev/button-backlight/max_current
Any help gratefullly received. I don't really know what this all means so I'm a bit apprehensive to just try it in case it breaks something.
Click to expand...
Click to collapse
Yes i have done this and worked fine for me on FXP 106
hi! it is same me.
but it work very well!
Thank a lot!it is work well in fxp 108
will this work on any xperia phone.i want to try it on my xperia mini..
akshay13071990 said:
will this work on any xperia phone.i want to try it on my xperia mini..
Click to expand...
Click to collapse
yes it will work on any xperia phone with cyanogenmod
here is my hw_config.sh:
Code:
# Audio jack configuration
dev=/sys/devices/platform/simple_remote.0
echo 0,201,1600 > $dev/accessory_min_vals # default = 0,200,1600
echo 200,1599 > $dev/accessory_max_vals # default = 200,1600
echo 0,100,280,500,700 > $dev/button_min_vals # default = 0,100,300,600,700
echo 99,199,399,699,5000 > $dev/button_max_vals # default = 99,199,399,699,5000
echo 512 > $dev/btn_trig_period_freq # Button Period Freq(Hz) default = 512
echo 16 > $dev/btn_trig_period_time # Button Period Time(cycle) default = 16
echo 512 > $dev/btn_trig_hyst_freq # Button Hysteresis Freq(Hz) default = 512
echo 16 > $dev/btn_trig_hyst_time # Button Hysteresis Time(Cycle) default = 16
echo 500 > $dev/btn_trig_level # default = 500
# Proximity sensor configuration
dev=/sys/bus/i2c/devices/0-0054/
val_cycle=0
val_nburst=26
val_freq=0
val_threshold=2
val_filter=0
nv_param_loader 60240 prox_cal
val_calibrated=$?
case $val_calibrated in
1)
nv_param_loader 60240 threshold
val_threshold=$?
nv_param_loader 60240 rfilter
val_filter=$?
;;
esac
echo $val_cycle > $dev/cycle # Duration Cycle. Valid range is 0 - 3.
echo $val_nburst > $dev/nburst # Number of pulses in burst. Valid range is 0 - 15. 16 - 31 is a special range for smultron only (SP)
echo $val_freq > $dev/freq # Burst frequency. Valid range is 0 - 3.
echo $val_threshold > $dev/threshold # sensor threshold. Valid range is 0 - 15 (0.12V - 0.87V)
echo $val_filter > $dev/filter # RFilter. Valid range is 0 - 3.
# LMU AS3676 Configuration
dev=/sys/devices/i2c-0/0-0040/leds
echo 1 > $dev/lcd-backlight/als/enable #Sensor on/off. 1 = on, reg 90h
echo 3,2,2,0 > $dev/lcd-backlight/als/params #[gain],[filter_up],[filter_down],[offset]
echo 8000 > $dev/button-backlight-rgb1/max_current
echo 8000 > $dev/button-backlight-rgb2/max_current
echo 1,30,255,54,52,1,65 > $dev/lcd-backlight/als/curve # ALS curve display BL [grp],[Y0],[Y3],[K1],[K2],[X1],[X2]
echo 2,48,0,128,128,4,10 > $dev/button-backlight-rgb1/als/curve # ALS curve key LED 1 [grp],[Y0],[Y3],[K1],[K2],[X1],[X2]
echo 2,48,0,128,128,4,10 > $dev/button-backlight-rgb2/als/curve # ALS curve key LED 2 [grp],[Y0],[Y3],[K1],[K2],[X1],[X2]
echo 3,71,255,64,32,5,37 > $dev/red/als/curve # ALS curve RGB(red) [grp],[Y0],[Y3],[K1],[K2],[X1],[X2]
echo 3,71,255,64,32,5,37 > $dev/green/als/curve # ALS curve RGB(green) [grp],[Y0],[Y3],[K1],[K2],[X1],[X2]
echo 3,71,255,64,32,5,37 > $dev/blue/als/curve # ALS curve RGB(blue) [grp],[Y0],[Y3],[K1],[K2],[X1],[X2]
# Touch panel
dev=/sys/devices/platform/spi_qsd.0/spi0.0
app_id=`cat $dev/appid`
case "$app_id" in
"0x0505")
fw=touch_smultron_innolux.hex
;;
"0x0105")
fw=touch_smultron_sony.hex
;;
"0x0015")
fw=touch_smultron_sony.hex
;;
*)
fw=touch_smultron_sony.hex
;;
esac
cyttsp_fwloader -dev $dev -fw /system/etc/firmware/$fw
# TI BQ275xx firmware loader
bq275xx_fwloader
I'm using cyanogenmod 7.1.0.1, i would like to upgrade to 7.1.0.2 but cyanogenmod just hangs on the animation booting so i've had to stick to this, i don't know which version of FXP i have but i'd like to upgrade to the latest if someone could help with that too.
What should i change to allow me to increase the brightness as it is rather dull?
I'm using Xperia mini btw, not xperia mini pro.
EDIT: just tried changing:
echo 1,30,255,54,52,1,65 > $dev/lcd-backlight/als/curve # ALS curve display BL [grp],[Y0],[Y3],[K1],[K2],[X1],[X2]
to:
echo 0,0,0,0,0,0,0 > $dev/lcd-backlight/als/curve # ALS curve display BL [grp],[Y0],[Y3],[K1],[K2],[X1],[X2]
but that didn't work, not sure which version of FXP i'm using i'm using cyanogenmod 7.1.0.1.
Hi, congratulations for the fix!! It solved my problem \o! But I'm curious, what is the hw_config.sh file and what the changing into 0 values we did do to the system? THankss!
Maudiefech said:
Hi, congratulations for the fix!! It solved my problem \o! But I'm curious, what is the hw_config.sh file and what the changing into 0 values we did do to the system? THankss!
Click to expand...
Click to collapse
yeah, I really want to try, but before I do, I kinda what to know why it works and what I am actually doing to the phone to achieve the fix?
Auto brightness working
I think putting the Ambient Light Sensor(als) parameters to 0 effectively disactivates it setting brightness to static aka what's in the configuration app/brightness.
I've gotten the auto brightness working by changing the # LMU AS3676 Configuration to reflect arcatarc's work on his post here :
http://forum.xda-developers.com/showpost.php?p=20001136&postcount=1.
Here's my section:
Code:
# LMU AS3676 Configuration
dev=/sys/devices/i2c-0/0-0040/leds/
echo 3,2,2,0 > $dev/lcd-backlight/als/params #[gain],[filter_up],[filter_down],[offset]
echo 1 > $dev/lcd-backlight/als/enable #Sensor on/off. 1 = on, reg 90h
echo 12900 > $dev/button-backlight/max_current
I also copied in his als_curve.conf as attached.
solve backlight fix
http://forum.xda-developers.com/showthread.php?t=1662819 easily flasch with cwm
xperia ray said:
I have installed Cyanogenmod , it is super fast and perfect rom
only one issue that is very major issue for me , is low brightness. I tried many things but no success
Today i got solution , it is very easy
After installing cyanogenmod , install root explorer
go to sysyem/etc directory
Find hw_config.sh file
Tap and hold on this hw_config.sh file , select edit in text viewer option from the menu
Scroll down to the bottom , there you will see this code (i am using FXP054 cyanogenmod , for other versions it may vary)
# LMU AS3676 Configuration
dev=/sys/devices/i2c-0/0-0040/leds
echo 1,65,255,24,24,5,128 > $dev/lcd-backlight/als/curve # ALS curve for group1
echo 2,0,0,0 > $dev/lcd-backlight/als/params #[gain],[filter_up],[filter_down],[offset]
echo 1 > $dev/lcd-backlight/als/enable #Sensor on/off. 1 = on, reg 90h
echo 450 > $dev/button-backlight/max_current
Change above code to
# LMU AS3676 Configuration
dev=/sys/devices/i2c-0/0-0040/leds
echo 0,0,0,0,0,0,0 > $dev/lcd-backlight/als/curve # ALS curve for group1
echo 2,0,0,0 > $dev/lcd-backlight/als/params #[gain],[filter_up],[filter_down],[offset]
echo 1 > $dev/lcd-backlight/als/enable #Sensor on/off. 1 = on, reg 90h
echo 450 > $dev/button-backlight/max_current
Reboot your phone and voila you have fixed brightness problem :
Thanks to xutienan9520
You can also hit thanks button for me
Click to expand...
Click to collapse
thanx a lot..... you are awesome
its working on CM9.1 and CM10
Is this fix working for FXP137
aq_aq said:
thanx a lot..... you are awesome
its working on CM9.1 and CM10
Click to expand...
Click to collapse
Hi aq_aq,
I am running CM 9.1 FXP137. and i am facing the same brightness issue will this fix work for FXP 138?
thanks in advance!
it will work.
take note that what you will see there now is this :
Change above code to
# LMU AS3676 Configuration
dev=/sys/devices/i2c-0/0-0040/leds
echo 0,0,0,0,0,0,0 > $dev/lcd-backlight/als/curve # ALS curve for group1
echo 2,0,0,0 > $dev/lcd-backlight/als/params #[gain],[filter_up],[filter_down],[offset]
echo 1 > $dev/lcd-backlight/als/enable #Sensor on/off. 1 = on, reg 90h
echo 450 > $dev/button-backlight/max_current
Change
echo 1 > $dev/lcd-backlight/als/enable #Sensor on/off. 1 = on, reg 90h
To
echo 0 > $dev/lcd-backlight/als/enable #Sensor on/off. 1 = on, reg 90h
There is an easier way to do it!
OR you can download this file http://www.mediafire.com/?t619gplc0x0tex7
And flash it with CWM (recovery mode).
It solved my issue
Here's my file:
# LMU AS3676 Configuration
dev=/sys/devices/i2c-0/0-0040/leds
echo 0 > $dev/lcd-backlight/als/enable #Sensor on/off. 1 = on, reg 90h
echo 0 > $dev/button-backlight-rgb1/als/enable #Sensor on/off. 1 = on, reg 90h
echo 0 > $dev/button-backlight-rgb2/als/enable #Sensor on/off. 1 = on, reg 90h
echo 0 > $dev/button-backlight/als/enable
echo 0 > $dev/keyboard-backlight/als/enable
echo 0 > $dev/red/als/enable #Sensor on/off. 1 = on, reg 90h
echo 0 > $dev/green/als/enable #Sensor on/off. 1 = on, reg 90h
echo 0 > $dev/blue/als/enable #Sensor on/off. 1 = on, reg 90h
echo 3,2,2,0 > $dev/lcd-backlight/als/params #[gain],[filter_up],[filter_down],[offset]
echo 8000 > $dev/button-backlight-rgb1/max_current
echo 8000 > $dev/button-backlight-rgb2/max_current
echo 1,30,255,54,52,1,65 > $dev/lcd-backlight/als/curve # ALS curve display BL [grp],[Y0],[Y3],[K1],[K2],[X1],[X2]
echo 2,48,0,128,128,4,10 > $dev/button-backlight-rgb1/als/curve # ALS curve key LED 1 [grp],[Y0],[Y3],[K1],[K2],[X1],[X2]
echo 2,48,0,128,128,4,10 > $dev/button-backlight-rgb2/als/curve # ALS curve key LED 2 [grp],[Y0],[Y3],[K1],[K2],[X1],[X2]
echo 3,71,255,64,32,5,37 > $dev/red/als/curve # ALS curve RGB(red) [grp],[Y0],[Y3],[K1],[K2],[X1],[X2]
echo 3,71,255,64,32,5,37 > $dev/green/als/curve # ALS curve RGB(green) [grp],[Y0],[Y3],[K1],[K2],[X1],[X2]
echo 3,71,255,64,32,5,37 > $dev/blue/als/curve # ALS curve RGB(blue) [grp],[Y0],[Y3],[K1],[K2],[X1],[X2]
What should I change? Thanks!

My script makes my phone unbootable :(

Code:
#!/system/bin/sh
AWAKE_CORE_STATUS="on";
SLEEP_CORE_STATUS="off";
AWAKE_GOVERNOR="pegasusq";
SLEEP_GOVERNOR="lulzactive";
(while [ 1 ];
do
AWAKE=`cat /sys/power/wait_for_fb_wake`;
if [ $AWAKE = "awake" ]; then
sleep 2 && {
echo $AWAKE_GOVERNOR > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor;
echo $AWAKE_CORE_STATUS > /sys/devices/virtual/misc/second_core/hotplug_on;
}
# ==============================================================
# Pegasusq
# ==============================================================
if [ -e /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/up_threshold ]; then
echo "85" > /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/up_threshold;
echo "10" > /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/down_differential;
#echo "1" > /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/io_is_busy;
echo "1" > /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/sampling_down_factor;
echo "20000" > /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/sampling_rate;
echo "100" > /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/freq_step;
echo "5" > /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/cpu_up_rate;
echo "20" > /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/cpu_down_rate;
echo "100000" > /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/freq_for_responsiveness;
fi;
if [ -e /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/up_threshold ]; then
echo "85" > /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/up_threshold;
echo "10" > /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/down_differential;
#echo "1" > /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/io_is_busy;
echo "1" > /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/sampling_down_factor;
echo "20000" > /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/sampling_rate;
echo "100" > /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/freq_step;
echo "5" > /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/cpu_up_rate;
echo "20" > /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/down_rate;
echo "100000" > /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/freq_for_responsiveness;
fi;
if [ -e /sys/devices/system/cpu/cpufreq/pegasusq/up_threshold ]; then
echo "85" > /sys/devices/system/cpu/cpufreq/pegasusq/up_threshold;
echo "10" > /sys/devices/system/cpu/cpufreq/pegasusq/down_differential;
#echo "1" > /sys/devices/system/cpu/cpufreq/pegasusq/io_is_busy;
echo "1" > /sys/devices/system/cpu/cpufreq/pegasusq/sampling_down_factor;
echo "20000" > /sys/devices/system/cpu/cpufreq/pegasusq/sampling_rate;
echo "100" > /sys/devices/system/cpu/cpufreq/pegasusq/freq_step;
echo "5" > /sys/devices/system/cpu/cpufreq/pegasusq/cpu_up_rate;
echo "20" > /sys/devices/system/cpu/cpufreq/pegasusq/cpu_down_rate;
echo "100000" > /sys/devices/system/cpu/cpufreq/pegasusq/freq_for_responsiveness;
fi;
AWAKE=;
fi;
SLEEPING=`cat /sys/power/wait_for_fb_sleep`;
if [ $SLEEPING = "sleeping" ]; then
sleep 2 && {
echo $SLEEP_GOVERNOR > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor;
echo $SLEEP_CORE_STATUS > /sys/devices/virtual/misc/second_core/hotplug_on;
echo $SLEEP_CORE_STATUS > /sys/devices/virtual/misc/second_core/second_core_on;
}
# ==============================================================
# lulzactive
# ==============================================================
if [ -e /sys/devices/system/cpu/cpufreq/lulzactive/inc_cpu_load ]; then
echo "95" > /sys/devices/system/cpu/cpufreq/lulzactive/inc_cpu_load;
#echo "1" > /sys/devices/system/cpu/cpufreq/lulzactive/pump_up_step;
echo "1" > /sys/devices/system/cpu/cpufreq/lulzactive/pump_down_step;
echo "100000" > /sys/devices/system/cpu/cpufreq/lulzactive/up_sample_time;
echo "100000" > /sys/devices/system/cpu/cpufreq/lulzactive/down_sample_time;
#echo "4" > /sys/devices/system/cpu/cpufreq/lulzactive/screen_off_min_step;
fi;
SLEEPING=;
fi;
done &);
I made this to exchange the status of hotplug and cpu governor between awake and sleepling.
I'll apply with pushing this script as init.d on latest siyah kernel.
It works well when executing manually after boot, but this makes phone unbootable when I put this in init.d.
Phone stays bootlogo and can't go to bootanimation
What should I change in this code to boots the phone and executes itself well?

[INIT.D][SCRIPT] SetCPU like Profiles with init.d!

I was perusing the internets and found a init.d script to change governors based on screen state and I thought "Maybe I can take this one step further."
I originally made it just for a new Bionic Blurry JB update, but then figured I should share it with all of you!
*This script will only set CPU frequencies if Tweakerz OC Modules are installed*
*This script is currently set up with Stock Bionic frequencies.*​
What does the script do?
It automatically changes the governor, scheduler, and CPU frequencies based on screen state, current battery level, and battery state. It originally had a CPU slot # check, but the razr doesnt have that problem so I removed it.
How does it work?
Note: There is a 10 second timer when the screen turns off. If turned back on within 10 seconds, it will not apply the screen off frequencies.​Infinite While Loop
Battery Discharging
Battery percentage greater than 15%
Screen On
Set CPU Frequencies to (300,600,800,1000,1200)
Set Governor to HotplugX
Set Scheduler to Noop
Screen Off
Set CPU Frequencies to (300,350,450,525,600)
Set Governor to PegasusQ
Set Scheduler to SIO
Battery percentage less than or equal to 15%
Screen On
Set CPU Frequencies to (300,450,600,800,1000)
Set Governor to PegasusQ
Set Scheduler to SIO
Screen Off
Set CPU Frequencies to (300,350,450,525,600)
Set Governor to PegasusQ
Set Scheduler to SIO
Battery Charging
Screen On
Set CPU Frequencies to (300,600,800,1000,1200)
Set Governor to HotplugX
Set Scheduler to Noop
Screen Off
Set CPU Frequencies to (300,350,450,525,600)
Set Governor to PegasusQ
Set Scheduler to SIO
End Infinite While Loop
*Its purposely set up to underclock the phone when less than 15% to save battery life till you can get to a charger. Obviously this can be changed with some simple editing.*
What if I dont have the Tweakerz OC Modules Installed?
Dont fret, it will still work. Instead of having 300, 350, 450, 525, and 600Mhz as available frequencies when locked, itll only have 300 and 600Mhz when locked. It wont save as much battery, but itll save more than not having it.
Infinite While Loop... Isnt that bad for the CPU?
Traditionally yes, but this doesnt work like a traditional while loop. Thats because of the way /sys/power/wait_for_fb_wake and /sys/power/wait_for_fb_sleep work. Instead of just checking for the screen state, these files actually pause the script until that screen state is true. Basically, the script sets the awake profile then pauses until the screen turns off. Then it tries to apply the sleep profile. If the sleep profile is applied successfully, it pauses the script until the screen turns back on. Then the process repeats.
Customization:
I tried to set the script up so its fairly easy to understand and customize to your needs. Remember to change the governor, scheduler, and CPU frequencies to match your needs.
Installation:
I would include a link to the tweakerz modules but it wont let me post URLs with under 10 posts
Download the script from below and place it in /system/etc/init.d on your phone and set permissions to 0755 and owner:group to 0:2000. Reboot, and enjoy!
Download:
Attachment at bottom of post
Script Code:
Code:
#!/system/bin/sh
#Custom CPU Profiles
#By MarkusMcNugen
##################################################################################
####################Load Tweakerz Modules and Set Permissions#####################
##################################################################################
# Load Modules
insmod /system/lib/modules/symsearch.ko
insmod /system/lib/modules/cpu_control.ko
insmod /system/lib/modules/sio-iosched.ko
insmod /system/lib/modules/cpufreq_interactiveX.ko
insmod /system/lib/modules/cpufreq_smartass2.ko
insmod /system/lib/modules/cpufreq_pegasusq.ko
insmod /system/lib/modules/cpufreq_boostedASS2.ko
insmod /system/lib/modules/cpufreq_hotplugX.ko
#Scheduler Permissions
chmod 777 /sys/block/mmcblk0/queue/scheduler
chmod 777 /sys/block/mmcblk1/queue/scheduler
##################################################################################
################################Start of options##################################
##################################################################################
###################AWAKE GOVERNORS####################
#AWAKE_GOVERNOR="boostedASSv2"
#AWAKE_GOVERNOR="ondemand"
AWAKE_GOVERNOR="hotplugx"
#AWAKE_GOVERNOR="interactive"
#AWAKE_GOVERNOR="interactiveX"
#AWAKE_GOVERNOR="performance"
#AWAKE_GOVERNOR="smartassV2"
#AWAKE_GOVERNOR="pegasusq"
#AWAKE_GOVERNOR="hotplug"
###################AWAKE SCHEDULERS###################
AWAKE_SCHEDULER="noop"
#AWAKE_SCHEDULER="deadline"
#AWAKE_SCHEDULER="cfq"
#AWAKE_SCHEDULER="sio"
###################SLEEP GOVERNORS####################
#SLEEP_GOVERNOR="boostedASSv2"
SLEEP_GOVERNOR="pegasusq"
#SLEEP_GOVERNOR="ondemand"
#SLEEP_GOVERNOR="hotplugx"
#SLEEP_GOVERNOR="interactive"
#SLEEP_GOVERNOR="interactiveX"
#SLEEP_GOVERNOR="hotplug"
#SLEEP_GOVERNOR="smartassV2"
#SLEEP_GOVERNOR="performance"
#SLEEP_GOVERNOR="userspace"
###################SLEEP SCHEDULERS####################
#SLEEP_SCHEDULER="noop"
#SLEEP_SCHEDULER="deadline"
#SLEEP_SCHEDULER="cfq"
SLEEP_SCHEDULER="sio"
###################BATTERY LIMIT####################
BATTERY_LIMIT="15"
##################PAUSE VARIABLES###################
SCREEN_PAUSE=11
ALREADY_AWAKE=0
ALREADY_SLEEP=0
##################################################################################
#################################End of options###################################
##################################################################################
#Infinite while loop to make sure correct governor, scheduler, and frequencies always applied
while [ 1 ]
do
#Read the current battery status
BATTERY_STATE=`cat /sys/class/power_supply/battery/status`
##################################################################################
#####Function to set scheduler, governor, and frequencies based on variables######
##################################################################################
set_cpu_freq() {
if [ $BATTERY_STATE = "Discharging" ]; then
#Read the current battery percentage
BATTERY=`cat /sys/class/power_supply/battery/capacity`
####If current battery percentage greater then BATTERY_LIMIT apply awake and sleep profiles####
if [ $BATTERY -gt $BATTERY_LIMIT ]; then
if [ $ALREADY_AWAKE = 0 ]; then
AWAKE=`cat /sys/power/wait_for_fb_wake`
if [ $AWAKE = "awake" ]; then
awake_overblimit_freq
fi;
AWAKE=;
elif [ $ALREADY_SLEEP = 0 ]; then
SLEEPING=`cat /sys/power/wait_for_fb_sleep`
if [ $SLEEPING = "sleeping" ]; then
sleep_loop
fi;
SLEEP=;
fi;
####If current battery percentage less than or equal BATTERY_LIMIT apply awake and sleep profiles####
elif [ $BATTERY -le $BATTERY_LIMIT ]; then
if [ $ALREADY_AWAKE = 0 ]; then
AWAKE=`cat /sys/power/wait_for_fb_wake`
if [ $AWAKE = "awake" ]; then
awake_underblimit_freq
ALREADY_AWAKE=1
ALREADY_SLEEP=0
fi;
AWAKE=;
elif [ $ALREADY_SLEEP = 0 ]; then
SLEEPING=`cat /sys/power/wait_for_fb_sleep`
if [ $SLEEPING = "sleeping" ]; then
sleep_loop
fi;
SLEEP=;
fi;
fi;
##################################################
####If battery is charging then apply profiles####
##################################################
elif [ $BATTERY_STATE = "Charging" ]; then
if [ $ALREADY_AWAKE = 0 ]; then
AWAKE=`cat /sys/power/wait_for_fb_wake`
if [ $AWAKE = "awake" ]; then
awake_charge_freq
ALREADY_AWAKE=1
ALREADY_SLEEP=0
fi;
AWAKE=;
elif [ $ALREADY_SLEEP = 0 ]; then
SLEEPING=`cat /sys/power/wait_for_fb_sleep`
if [ $SLEEPING = "sleeping" ]; then
sleep_loop
fi;
SLEEP=;
fi;
BATTERY=;
fi;
}
##################################################################################
###############Function to Set Awake and Over Battery Limit Profile###############
##################################################################################
awake_overblimit_freq() {
###################AWAKE CPU FREQUENCY###################
echo 0 300 1025 > /proc/cpu_control/tweak_cpu
echo 1 600 1200 > /proc/cpu_control/tweak_cpu
echo 2 800 1325 > /proc/cpu_control/tweak_cpu
echo 3 1000 1388 > /proc/cpu_control/tweak_cpu
echo 4 1200 1398 > /proc/cpu_control/tweak_cpu
###################AWAKE CPU GOVERNOR####################
echo $AWAKE_GOVERNOR > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
###################AWAKE CPU SCHEDULER###################
echo $AWAKE_SCHEDULER > /sys/block/mmcblk0/queue/scheduler
echo $AWAKE_SCHEDULER > /sys/block/mmcblk1/queue/scheduler
#####################GOVERNOR TWEAKS#####################
if [ -e /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold ]; then
echo "95" > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold;
echo "1" > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/io_is_busy;
echo "1" > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_down_factor;
echo "10000" > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate;
elif [ -e /sys/devices/system/cpu/cpu1/cpufreq/ondemand/up_threshold ]; then
echo "95" > /sys/devices/system/cpu/cpu1/cpufreq/ondemand/up_threshold;
echo "1" > /sys/devices/system/cpu/cpu1/cpufreq/ondemand/io_is_busy;
echo "1" > /sys/devices/system/cpu/cpu1/cpufreq/ondemand/sampling_down_factor;
echo "10000" > /sys/devices/system/cpu/cpu1/cpufreq/ondemand/sampling_rate;
elif [ -e /sys/devices/system/cpu/cpufreq/ondemand/up_threshold ]; then
echo "95" > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold;
echo "1" > /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy;
echo "1" > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor;
echo "10000" > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate;
fi;
ALREADY_AWAKE=1
ALREADY_SLEEP=0
}
awake_underblimit_freq() {
###################AWAKE CPU FREQUENCY###################
echo 0 300 1025 > /proc/cpu_control/tweak_cpu
echo 1 450 1150 > /proc/cpu_control/tweak_cpu
echo 2 600 1200 > /proc/cpu_control/tweak_cpu
echo 3 800 1325 > /proc/cpu_control/tweak_cpu
echo 4 1000 1388 > /proc/cpu_control/tweak_cpu
###################AWAKE CPU GOVERNOR####################
echo $SLEEP_GOVERNOR > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
###################AWAKE CPU SCHEDULER###################
echo $SLEEP_SCHEDULER > /sys/block/mmcblk0/queue/scheduler
echo $SLEEP_SCHEDULER > /sys/block/mmcblk1/queue/scheduler
#####################GOVERNOR TWEAKS#####################
if [ -e /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/up_threshold ]; then
echo "85" > /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/up_threshold;
echo "10" > /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/down_differential;
echo "1" > /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/io_is_busy;
echo "1" > /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/sampling_down_factor;
echo "20000" > /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/sampling_rate;
echo "100" > /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/freq_step;
echo "5" > /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/cpu_up_rate;
echo "20" > /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/cpu_down_rate;
echo "100000" > /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/freq_for_responsiveness;
elif [ -e /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/up_threshold ]; then
echo "85" > /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/up_threshold;
echo "10" > /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/down_differential;
echo "1" > /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/io_is_busy;
echo "1" > /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/sampling_down_factor;
echo "20000" > /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/sampling_rate;
echo "100" > /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/freq_step;
echo "5" > /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/cpu_up_rate;
echo "20" > /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/cpu_down_rate;
echo "100000" > /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/freq_for_responsiveness;
elif [ -e /sys/devices/system/cpu/cpufreq/pegasusq/up_threshold ]; then
echo "85" > /sys/devices/system/cpu/cpufreq/pegasusq/up_threshold;
echo "10" > /sys/devices/system/cpu/cpufreq/pegasusq/down_differential;
echo "1" > /sys/devices/system/cpu/cpufreq/pegasusq/io_is_busy;
echo "1" > /sys/devices/system/cpu/cpufreq/pegasusq/sampling_down_factor;
echo "20000" > /sys/devices/system/cpu/cpufreq/pegasusq/sampling_rate;
echo "100" > /sys/devices/system/cpu/cpufreq/pegasusq/freq_step;
echo "5" > /sys/devices/system/cpu/cpufreq/pegasusq/cpu_up_rate;
echo "20" > /sys/devices/system/cpu/cpufreq/pegasusq/cpu_down_rate;
echo "100000" > /sys/devices/system/cpu/cpufreq/pegasusq/freq_for_responsiveness;
fi;
ALREADY_AWAKE=1
ALREADY_SLEEP=0
}
awake_charge_freq() {
###################AWAKE CPU FREQUENCY###################
echo 0 300 1025 > /proc/cpu_control/tweak_cpu
echo 1 600 1200 > /proc/cpu_control/tweak_cpu
echo 2 800 1325 > /proc/cpu_control/tweak_cpu
echo 3 1000 1388 > /proc/cpu_control/tweak_cpu
echo 4 1200 1398 > /proc/cpu_control/tweak_cpu
###################AWAKE CPU GOVERNOR####################
echo $AWAKE_GOVERNOR > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
###################AWAKE CPU SCHEDULER###################
echo $AWAKE_SCHEDULER > /sys/block/mmcblk0/queue/scheduler
echo $AWAKE_SCHEDULER > /sys/block/mmcblk1/queue/scheduler
#####################GOVERNOR TWEAKS#####################
if [ -e /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/up_threshold ]; then
echo "85" > /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/up_threshold;
echo "10" > /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/down_differential;
echo "1" > /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/io_is_busy;
echo "1" > /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/sampling_down_factor;
echo "20000" > /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/sampling_rate;
echo "100" > /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/freq_step;
echo "5" > /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/cpu_up_rate;
echo "20" > /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/cpu_down_rate;
echo "100000" > /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/freq_for_responsiveness;
elif [ -e /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/up_threshold ]; then
echo "85" > /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/up_threshold;
echo "10" > /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/down_differential;
echo "1" > /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/io_is_busy;
echo "1" > /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/sampling_down_factor;
echo "20000" > /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/sampling_rate;
echo "100" > /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/freq_step;
echo "5" > /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/cpu_up_rate;
echo "20" > /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/cpu_down_rate;
echo "100000" > /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/freq_for_responsiveness;
elif [ -e /sys/devices/system/cpu/cpufreq/pegasusq/up_threshold ]; then
echo "85" > /sys/devices/system/cpu/cpufreq/pegasusq/up_threshold;
echo "10" > /sys/devices/system/cpu/cpufreq/pegasusq/down_differential;
echo "1" > /sys/devices/system/cpu/cpufreq/pegasusq/io_is_busy;
echo "1" > /sys/devices/system/cpu/cpufreq/pegasusq/sampling_down_factor;
echo "20000" > /sys/devices/system/cpu/cpufreq/pegasusq/sampling_rate;
echo "100" > /sys/devices/system/cpu/cpufreq/pegasusq/freq_step;
echo "5" > /sys/devices/system/cpu/cpufreq/pegasusq/cpu_up_rate;
echo "20" > /sys/devices/system/cpu/cpufreq/pegasusq/cpu_down_rate;
echo "100000" > /sys/devices/system/cpu/cpufreq/pegasusq/freq_for_responsiveness;
fi;
ALREADY_AWAKE=1
ALREADY_SLEEP=0
}
##################################################################################
###################Function to Initiate the 10 Second Sleep Timer#################
##################################################################################
sleep_loop() {
SEC_COUNT=0
while [ $SEC_COUNT -lt 10 ]
do
sleep 1
SEC_COUNT=$((SEC_COUNT+1))
####Write dumpsys of window policy to /data/governordumpsys####
dumpsys window policy > /data/governordumpsys
grep -q "mScreenOnFully=true" /data/governordumpsys
SCREEN=$?
####If /data/governordumpsys returns Screen On reset set_cpu_freq function and break counter####
if [ $SCREEN -eq "0" ]; then
ALREADY_AWAKE=0
ALREADY_SLEEP=0
set_cpu_freq
SCREEN=;
break
fi;
done
##################################################################################
###########################Function to Set Sleep Profile##########################
##################################################################################
sleep_set_freq() {
###################SLEEP CPU FREQUENCY###################
echo 0 300 1025 > /proc/cpu_control/tweak_cpu
echo 1 350 1087 > /proc/cpu_control/tweak_cpu
echo 2 450 1150 > /proc/cpu_control/tweak_cpu
echo 3 525 1187 > /proc/cpu_control/tweak_cpu
echo 4 600 1200 > /proc/cpu_control/tweak_cpu
###################SLEEP CPU GOVERNOR####################
echo $SLEEP_GOVERNOR > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
###################SLEEP CPU SCHEDULER###################
echo $SLEEP_SCHEDULER > /sys/block/mmcblk0/queue/scheduler
echo $SLEEP_SCHEDULER > /sys/block/mmcblk1/queue/scheduler
#####################GOVERNOR TWEAKS#####################
if [ -e /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/up_threshold ]; then
echo "85" > /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/up_threshold;
echo "10" > /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/down_differential;
echo "1" > /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/io_is_busy;
echo "1" > /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/sampling_down_factor;
echo "20000" > /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/sampling_rate;
echo "100" > /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/freq_step;
echo "5" > /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/cpu_up_rate;
echo "20" > /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/cpu_down_rate;
echo "100000" > /sys/devices/system/cpu/cpu0/cpufreq/pegasusq/freq_for_responsiveness;
elif [ -e /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/up_threshold ]; then
echo "85" > /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/up_threshold;
echo "10" > /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/down_differential;
echo "1" > /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/io_is_busy;
echo "1" > /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/sampling_down_factor;
echo "20000" > /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/sampling_rate;
echo "100" > /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/freq_step;
echo "5" > /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/cpu_up_rate;
echo "20" > /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/cpu_down_rate;
echo "100000" > /sys/devices/system/cpu/cpu1/cpufreq/pegasusq/freq_for_responsiveness;
elif [ -e /sys/devices/system/cpu/cpufreq/pegasusq/up_threshold ]; then
echo "85" > /sys/devices/system/cpu/cpufreq/pegasusq/up_threshold;
echo "10" > /sys/devices/system/cpu/cpufreq/pegasusq/down_differential;
echo "1" > /sys/devices/system/cpu/cpufreq/pegasusq/io_is_busy;
echo "1" > /sys/devices/system/cpu/cpufreq/pegasusq/sampling_down_factor;
echo "20000" > /sys/devices/system/cpu/cpufreq/pegasusq/sampling_rate;
echo "100" > /sys/devices/system/cpu/cpufreq/pegasusq/freq_step;
echo "5" > /sys/devices/system/cpu/cpufreq/pegasusq/cpu_up_rate;
echo "20" > /sys/devices/system/cpu/cpufreq/pegasusq/cpu_down_rate;
echo "100000" > /sys/devices/system/cpu/cpufreq/pegasusq/freq_for_responsiveness;
fi;
}
####Write dumpsys of window policy to /data/governordumpsys again####
dumpsys window policy > /data/governordumpsys
grep -q "mScreenOnFully=true" /data/governordumpsys
SCREEN=$?
####If /data/governordumpsys returns Screen Off start sleep_set_freq function####
if [ $SCREEN -eq "1" ]; then
sleep_set_freq
ALREADY_AWAKE=0
ALREADY_SLEEP=1
fi;
SCREEN=;
}
#####################Call set_cpu_freq Function#####################
set_cpu_freq
BATTERY_STATE=;
done
awesome work.thanks

[Q] [SOLVED] Scheduler code init.d code not running

So I have a script I am working on and it all works expect for one line and I can figure out what is going on! I would love some advice. Anyways, here is the part that isnt working.
Code:
##SCHEDULER
if [ "$SCHED" == "bfq" ]; then
echo bfq > /sys/block/mmcblk0/queue/scheduler;
echo BFQ io scheduler >> $UBER_LOGFILE;
elif [ "$SCHED" == "cfq" ]; then
echo cfq > /sys/block/mmcblk0/queue/scheduler;
echo CFQ io scheduler >> $UBER_LOGFILE;
elif [ "$SCHED" == "deadline" ]; then
echo deadline > /sys/block/mmcblk0/queue/scheduler;
echo deadline io scheduler >> $UBER_LOGFILE;
elif [ "$SCHED" == "fifo" ]; then
echo fifo > /sys/block/mmcblk0/queue/scheduler;
echo FIFO io scheduler >> $UBER_LOGFILE;
elif [ "$SCHED" == "fiops" ]; then
echo fiops > /sys/block/mmcblk0/queue/scheduler;
echo FIOPS io scheduler >> $UBER_LOGFILE;
elif [ "$SCHED" == "sio" ]; then
echo sio > /sys/block/mmcblk0/queue/scheduler;
echo SIO io scheduler >> $UBER_LOGFILE;
elif [ "$SCHED" == "tripndroid" ]; then
echo tripndroid > /sys/block/mmcblk0/queue/scheduler;
echo tripndroid io scheduler >> $UBER_LOGFILE;
elif [ "$SCHED" == "vr" ]; then
echo vr > /sys/block/mmcblk0/queue/scheduler;
echo VR io scheduler >> $UBER_LOGFILE;
elif [ "$SCHED" == "zen" ]; then
echo zen > /sys/block/mmcblk0/queue/scheduler;
echo ZEN io scheduler >> $UBER_LOGFILE;
else
echo row > /sys/block/mmcblk0/queue/scheduler;
echo ROW io scheduler >> $UBER_LOGFILE;
fi
So I have SCHED set to bfq in
. /system/etc/uber.cfg\
However BFQ doesnt get set as the Scheduler. HOWEVER, (This is the confusing part), BFQ io scheduler is placed in the Uber log as if the command ran. so I went to /sys/block/mmcblk0/queue/scheduler and made sure that the file was there. and i deleted all the other scirpts so it is the only one. I have no apps on the device, just the rom gapps and the script. And the Set on boot command in settings menu is uncheck for all of the kernel settings. So I am super confused on what is happening here.
Device: Nexus 5
Rom: Custom Vanir
Kernel: Uber
Rest of Script:
Code:
#!/system/bin/sh
UBER_LOGFILE="/data/local/tmp/uber.log"
UBER_CFG="/system/etc/uber.cfg"
. /system/etc/uber.cfg\
if [ -f $UBER_LOGFILE ]; then
mv $UBER_LOGFILE $UBER_LOGFILE.2;
fi
echo $(date) >> $UBER_LOGFILE
if $ENABLED; then
##FRANDOM
if $FRANDOM; then
chmod 644 /dev/frandom
chmod 644 /dev/erandom
mv /dev/random /dev/random.ori
mv /dev/urandom /dev/urandom.ori
ln /dev/frandom /dev/random
chmod 644 /dev/random
ln /dev/erandom /dev/urandom
chmod 644 /dev/urandom
echo Frandom On >> $UBER_LOGFILE;
else
echo Frandom Off >> $UBER_LOGFILE;
fi
##FILE SYSTEM TRIM
if $FSTRIM; then
fstrim -v /cache| tee -a $UBER_LOGFILE;
fstrim -v /data| tee -a $UBER_LOGFILE;
echo Fstrim On >> $UBER_LOGFILE;
else
echo Fstrim Off >> $UBER_LOGFILE;
fi
##COLOR PRESET
if $COLORS; then
# Red Positive = /sys/module/dsi_panel/kgamma_rp
echo "0 12 19 30 39 48 56 72 83 105 118 126 121 114 109 102 93 73 63 54 40 33 20" > /sys/module/dsi_panel/kgamma_rp
# Red Negative = /sys/module/dsi_panel/kgamma_rn
echo "0 12 19 30 39 48 56 72 83 105 118 130 121 115 114 102 82 76 63 54 40 33 20" > /sys/module/dsi_panel/kgamma_rn
# Green Positive = /sys/module/dsi_panel/kgamma_gp
echo "0 12 19 30 39 54 61 78 84 107 123 132 117 110 108 97 90 71 61 52 45 37 21" > /sys/module/dsi_panel/kgamma_gp
# Green Negative = /sys/module/dsi_panel/kgamma_gn
echo "0 12 19 30 39 54 61 78 84 107 121 130 119 112 107 99 76 72 57 50 45 37 21" > /sys/module/dsi_panel/kgamma_gn
# Blue Positive = /sys/module/dsi_panel/kgamma_bp
echo "0 12 19 30 39 48 56 72 83 105 121 126 119 112 107 99 91 71 63 53 44 36 22" > /sys/module/dsi_panel/kgamma_bp
# Blue Negative = /sys/module/dsi_panel/kgamma_bn
echo "0 12 19 30 39 48 56 72 83 105 121 134 119 113 110 98 78 72 59 50 44 36 22" > /sys/module/dsi_panel/kgamma_bn
# White Point = /sys/module/dsi_panel/kgamma_w
echo "28" > /sys/module/dsi_panel/kgamma_w
echo Colors Cl3Keners Fav >> $UBER_LOGFILE;
else
echo Stock Colors >> $UBER_LOGFILE;
fi
##FRANCO/FAUX SOUND CONTROL
if [ "$SOUND" == "franco" ]; then
echo $CALL >> /sys/devices/virtual/misc/soundcontrol/headset_boost;
echo $MIC >> /sys/devices/virtual/misc/soundcontrol/mic_boost;
echo $SPEAKER >> /sys/devices/virtual/misc/soundcontrol/speaker_boost;
echo $VOLUME >> /sys/devices/virtual/misc/soundcontrol/volume_boost;
echo Franco Sound >> $UBER_LOGFILE;
fi
if [ "$SOUND" == "faux" ]; then
echo "$FCAM" > /sys/kernel/sound_control_3/gpl_cam_mic_gain
echo "$FHEAD $FHEAD" > /sys/kernel/sound_control_3/gpl_headphone_gain
echo "$FPOW $FPOW" > /sys/kernel/sound_control_3/gpl_headphone_pa_gain
echo "$FMIC" > /sys/kernel/sound_control_3/gpl_mic_gain
echo "$FLOCK" > /sys/kernel/sound_control_3/gpl_sound_control_locked
echo "$FSPEAKER $FSPEAKER" > /sys/kernel/sound_control_3/gpl_speaker_gain
echo Faux Sound >> $UBER_LOGFILE;
else
echo Stock Sound >> $UBER_LOGFILE;
fi
##BACKLIGHT
if $BACKLIGHT; then
echo 1 > /sys/module/lm3630_bl/parameters/backlight_dimmer
echo Backlight Dimmer Enabled >> $UBER_LOGFILE;
else
echo Backlight Dimmer Disabled >> $UBER_LOGFILE;
fi
##KSM
if $KSM; then
echo "1" > /sys/kernel/mm/ksm/run
echo KSM On >> $UBER_LOGFILE;
else
echo KSM Off >> $UBER_LOGFILE;
fi
##SCHEDULER
if [ "$SCHED" == "bfq" ]; then
echo bfq > /sys/block/mmcblk0/queue/scheduler;
echo BFQ io scheduler >> $UBER_LOGFILE;
elif [ "$SCHED" == "cfq" ]; then
echo cfq > /sys/block/mmcblk0/queue/scheduler;
echo CFQ io scheduler >> $UBER_LOGFILE;
elif [ "$SCHED" == "deadline" ]; then
echo deadline > /sys/block/mmcblk0/queue/scheduler;
echo deadline io scheduler >> $UBER_LOGFILE;
elif [ "$SCHED" == "fifo" ]; then
echo fifo > /sys/block/mmcblk0/queue/scheduler;
echo FIFO io scheduler >> $UBER_LOGFILE;
elif [ "$SCHED" == "fiops" ]; then
echo fiops > /sys/block/mmcblk0/queue/scheduler;
echo FIOPS io scheduler >> $UBER_LOGFILE;
elif [ "$SCHED" == "sio" ]; then
echo sio > /sys/block/mmcblk0/queue/scheduler;
echo SIO io scheduler >> $UBER_LOGFILE;
elif [ "$SCHED" == "tripndroid" ]; then
echo tripndroid > /sys/block/mmcblk0/queue/scheduler;
echo tripndroid io scheduler >> $UBER_LOGFILE;
elif [ "$SCHED" == "vr" ]; then
echo vr > /sys/block/mmcblk0/queue/scheduler;
echo VR io scheduler >> $UBER_LOGFILE;
elif [ "$SCHED" == "zen" ]; then
echo zen > /sys/block/mmcblk0/queue/scheduler;
echo ZEN io scheduler >> $UBER_LOGFILE;
else
echo row > /sys/block/mmcblk0/queue/scheduler;
echo ROW io scheduler >> $UBER_LOGFILE;
fi
##IO READAHEAD
echo $IOREAD >> /sys/block/mmcblk0/queue/read_ahead_kb
echo IO Read ahead size\: $IOREAD >> $UBER_LOGFILE;
##SDCARD READAHEAD
echo $SDCARD >> /sys/devices/virtual/bdi/179:0/read_ahead_kb;
echo SDCARD Read ahead size\: $SDCARD >> $UBER_LOGFILE;
##CPU SETTINGS
if $CPU; then
##GOVERNOR
if [ "$GOV" != "false" ]; then
echo "1" > /sys/devices/system/cpu/cpu0/online;
echo $GOV > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor;
echo CPU0 $GOV >> $UBER_LOGFILE;
echo "1" > /sys/devices/system/cpu/cpu1/online;
echo $GOV > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor;
echo CPU1 $GOV >> $UBER_LOGFILE;
echo "1" > /sys/devices/system/cpu/cpu2/online;
echo $GOV > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor;
echo CPU2 $GOV >> $UBER_LOGFILE;
echo "1" > /sys/devices/system/cpu/cpu3/online;
echo $GOV > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor;
echo CPU3 $GOV >> $UBER_LOGFILE;
else
echo Stock CPU GOVs >> $UBER_LOGFILE;
fi
##CPU FREQS
if $CPUFREQ; then
echo $CPUMAX > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq;
echo CPU0 $CPUMAX Hz >> $UBER_LOGFILE;
echo $CPUMAX > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq;
echo CPU1 $CPUMAX Hz >> $UBER_LOGFILE;
echo $CPUMAX > /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq;
echo CPU2 $CPUMAX MHz >> $UBER_LOGFILE;
echo $CPUMAX > /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq;
echo CPU3 $CPUMAX Hz >> $UBER_LOGFILE;
echo $CPU0MIN > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq;
echo CPU0 $CPU0MIN Hz >> $UBER_LOGFILE;
echo $CPUMIN > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq;
echo CPU1 $CPUMIN Hz >> $UBER_LOGFILE;
echo $CPUMIN > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq;
echo CPU2 $CPUMIN Hz >> $UBER_LOGFILE;
echo $CPUMIN > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq;
echo CPU3 $CPUMIN Hz >> $UBER_LOGFILE;
else
echo Stock CPU FREQs >> $UBER_LOGFILE;
fi
##UNDERVOLTING
if $UV; then
echo "1" > /sys/devices/system/cpu/cpu0/online;
echo "730 730 755 755 755 775 785 805 815 825 845 855 890 905 935 975 1030 1045 1060 1080 1115 1130" > /sys/devices/system/cpu/cpu0/cpufreq/UV_mV_table
echo "1" > /sys/devices/system/cpu/cpu1/online;
echo "730 730 755 755 755 775 785 805 815 825 845 855 890 905 935 975 1030 1045 1060 1080 1115 1130" > /sys/devices/system/cpu/cpu1/cpufreq/UV_mV_table
echo "1" > /sys/devices/system/cpu/cpu2/online;
echo "730 730 755 755 755 775 785 805 815 825 845 855 890 905 935 975 1030 1045 1060 1080 1115 1130" > /sys/devices/system/cpu/cpu2/cpufreq/UV_mV_table
echo "1" > /sys/devices/system/cpu/cpu3/online;
echo "730 730 755 755 755 775 785 805 815 825 845 855 890 905 935 975 1030 1045 1060 1080 1115 1130" > /sys/devices/system/cpu/cpu3/cpufreq/UV_mV_table
echo Under Voltz >> $UBER_LOGFILE;
else
echo Stock Voltz >> $UBER_LOGFILE;
fi
else
echo Stock CPU Values >> $UBER_LOGFILE;
fi
##TOUCH BOOST
if $TOUCH; then
echo "1" > /sys/kernel/msm_mpdecision/conf/boost_enabled
echo Touch Boost On >> $UBER_LOGFILE;
else
echo "0" > /sys/kernel/msm_mpdecision/conf/boost_enabled
echo Touch Boost Off >> $UBER_LOGFILE;
fi
##FSYNC
if $FSYNC; then
echo "1" > /sys/kernel/dyn_fsync/Dyn_fsync_active
echo FSync Enabled >> $UBER_LOGFILE;
else
echo "0" > /sys/kernel/dyn_fsync/Dyn_fsync_active
echo FSync Disabled >> $UBER_LOGFILE;
fi
##WAKE CONTROLS
if $WAKE; then
##DOUBLETAP2WAKE
echo $DT2W > /sys/android_touch/doubletap2wake
##SWEEP2WAKE
echo $S2W > /sys/android_touch/sweep2wake
##S2W/DT2W POWER KEY TOGGLE
echo $PWRKEY > /sys/module/qpnp_power_on/parameters/pwrkey_suspend
##S2W/DT2W TIMEOUT
echo $TIMEOUT > /sys/android_touch/wake_timeout
echo S2W/DT2W Timeout\: $TIMEOUT >> $UBER_LOGFILE;
else
echo WAKE CONTROLLS Disabled >> $UBER_LOGFILE;
fi
##FASTCHARGE
if $FASTCHARGE; then
echo 1 > /sys/kernel/fast_charge/force_fast_charge
echo USB Fastcharge enabled >> $UBER_LOGFILE;
else
echo 0 > /sys/kernel/fast_charge/force_fast_charge
echo USB Fastcharge disabled >> $UBER_LOGFILE;
fi
##GPU SETTINGS
if $GPU; then
##GPU GOVERNOR SETTINGS
if $GPUPRE; then
echo performance >> /sys/class/kgsl/kgsl-3d0/pwrscale/trustzone/governor;
echo Performance GPU Governor >> $UBER_LOGFILE;
else
echo ondemand >> /sys/class/kgsl/kgsl-3d0/pwrscale/trustzone/governor;
echo Ondemand GPU Governor >> $UBER_LOGFILE;
fi
##GPU FREQUANCY
echo $GPU_FREQ > /sys/devices/fdb00000.qcom,kgsl-3d0/kgsl/kgsl-3d0/max_gpuclk
echo GPU $GPU_FREQ hz >> $UBER_LOGFILE;
else
echo GOV SETTINGS disabled >> $UBER_LOGFILE;
fi
##EXFAT
if $EXFAT; then
insmod /system/lib/modules/exfat.ko;
echo ExFAT Module Loaded >> $UBER_LOGFILE;
fi
##VIBRATOR SETTINGS
echo $VIB > /sys/class/timed_output/vibrator/amp
echo Vibration Strength\: $VIB >> $UBER_LOGFILE;
##ZRAM SETTINGS
if $ZRAM; then
echo "1" /sys/devices/virtual/block/zram0/initstate;
echo ZRAM ON >> $UBER_LOGFILE;
echo $ZRDK /sys/devices/virtual/block/zram0/size;
echo ZRAM Compression: $ZRDK >> $UBER_LOGFILE;
#ZRam compression changer
echo $ZCOM > /sys/block/zram0/comp_algorithm;
echo ZRAM Compression: $ZCOM >> $UBER_LOGFILE;
else
echo ZRAM OFF >> $UBER_LOGFILE;
fi
##HOTPLUG
if $MPD; then
echo 130 > /sys/kernel/msm_mpdecision/conf/delay
echo "1" > /sys/kernel/msm_mpdecision/conf/enabled
echo "0" > /sys/kernel/msm_mpdecision/conf/boost_enabled
echo $CPUMIN > /sys/kernel/msm_mpdecision/conf/idle_freq
echo "4" > /sys/kernel/msm_mpdecision/conf/max_cpus
echo "1" > /sys/kernel/msm_mpdecision/conf/min_cpus
echo "1" > /sys/kernel/msm_mpdecision/conf/scroff_single_core
echo "12" > /sys/kernel/msm_mpdecision/conf/nwns_threshold_0
echo "0" > /sys/kernel/msm_mpdecision/conf/nwns_threshold_1
echo "16" > /sys/kernel/msm_mpdecision/conf/nwns_threshold_2
echo "34" > /sys/kernel/msm_mpdecision/conf/nwns_threshold_3
echo "20" > /sys/kernel/msm_mpdecision/conf/nwns_threshold_4
echo "39" > /sys/kernel/msm_mpdecision/conf/nwns_threshold_5
echo "0" > /sys/kernel/msm_mpdecision/conf/nwns_threshold_6
echo "46" > /sys/kernel/msm_mpdecision/conf/nwns_threshold_7
echo "140" > /sys/kernel/msm_mpdecision/conf/twts_threshold_0
echo "0" > /sys/kernel/msm_mpdecision/conf/twts_threshold_1
echo "140" > /sys/kernel/msm_mpdecision/conf/twts_threshold_2
echo "100" > /sys/kernel/msm_mpdecision/conf/twts_threshold_3
echo "140" > /sys/kernel/msm_mpdecision/conf/twts_threshold_4
echo "100" > /sys/kernel/msm_mpdecision/conf/twts_threshold_5
echo "0" > /sys/kernel/msm_mpdecision/conf/twts_threshold_6
echo "100" > /sys/kernel/msm_mpdecision/conf/twts_threshold_7
echo MPDECISION Preset Enabled >> $UBER_LOGFILE;
else
echo MPDECISION Preset Disabled >> $UBER_LOGFILE;
fi
##DIRTY RATIOS
echo $DIRTY > /proc/sys/vm/dirty_ratio
echo $DIRTYBACK > /proc/sys/vm/dirty_background_ratio
else
echo UBER PRESETS Disabled >> $UBER_LOGFILE;
fi
exit 0
UPDATE: If I remove all the rest of the script and just have the Sched stuff it still doesnt run correctly.
UPDATE 2: Doesnt work for cfq either
UPDATE 3: This runs fine
Code:
##SCHEDULER
if [ "$SCHED" == "bfq" ]; then
echo bfq > /sys/block/mmcblk0/queue/scheduler;
echo BFQ io scheduler >> $UBER_LOGFILE
else
echo row > /sys/block/mmcblk0/queue/scheduler;
echo ROW io scheduler >> $UBER_LOGFILE;
fi
So its somehing with those elifs
SOLUTION: add sleep 1; in so rom doesnt overwrite the setting!

Padfone S WW 12.2.2.43 SKU Battery Tweaks

Here i publish my every day battery tweaks.
I use a Tasker Device Boot Task to apply these tweaks.
You need root, busybox and tasker or init.d support to use these tweaks.
I prefer the Tasker way because it is handier to modify or disable these tweaks.
You DO NOT NEED to factory reset your phone or wipe dalvik cache also a reboot is NOT REQUIRED.
Code:
setenforce 0 &
/system/xbin/daemonsu --auto-daemon &
# io scheduler
# default: noop deadline [row] cfq
echo "cfq" > /sys/block/mmcblk0/queue/scheduler
echo "cfq" > /sys/block/mmcblk1/queue/scheduler
echo ####
echo CPU Governor
echo default: interactive
echo ####
echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo ####
echo Scheduler Queue Deep
echo default: 128
echo ####
echo "192" > /sys/block/mmcblk0/queue/nr_requests
echo "192" > /sys/block/mmcblk1/queue/nr_requests
echo ####
echo Virtual memory management tweaks
echo ####
echo "4096" > /proc/sys/vm/min_free_kbytes
echo "0" > /proc/sys/vm/oom_kill_allocating_task
echo "0" > /proc/sys/vm/panic_on_oom
echo "0" > /proc/sys/vm/laptop_mode
echo "0" > /proc/sys/vm/swappiness
echo "50" > /proc/sys/vm/vfs_cache_pressure
echo "90" > /proc/sys/vm/dirty_ratio
echo "70" > /proc/sys/vm/dirty_background_ratio
echo ####
echo Strict minfree handler tweak
echo nothing changed
echo ####
#echo "256,768,1024,1792,2048,2560" > /sys/module/lowmemorykiller/parameters/minfree
#echo "1536,2048,4096,5120,5632,6144" > /sys/module/lowmemorykiller/parameters/minfree
#echo "2048,3072,6144,15360,17920,20480" > /sys/module/lowmemorykiller/parameters/minfree
#echo "1024,2048,4096,8192,12288,16384" > /sys/module/lowmemorykiller/parameters/minfree
#echo "1024,2048,2560,4096,6144,8192" > /sys/module/lowmemorykiller/parameters/minfree
echo ####
echo Internet speed tweaks
echo ####
echo "0" > /proc/sys/net/ipv4/tcp_timestamps
echo "1" > /proc/sys/net/ipv4/tcp_tw_reuse
echo "1" > /proc/sys/net/ipv4/tcp_sack
echo "1" > /proc/sys/net/ipv4/tcp_tw_recycle
echo "1" > /proc/sys/net/ipv4/tcp_window_scaling
echo "5" > /proc/sys/net/ipv4/tcp_keepalive_probes
echo "30" > /proc/sys/net/ipv4/tcp_keepalive_intvl
echo "30" > /proc/sys/net/ipv4/tcp_fin_timeout
echo "404480" > /proc/sys/net/core/wmem_max
echo "404480" > /proc/sys/net/core/rmem_max
echo "256960" > /proc/sys/net/core/rmem_default
echo "256960" > /proc/sys/net/core/wmem_default
echo "4096 16384 404480" > /proc/sys/net/ipv4/tcp_wmem
echo "4096 87380 404480" > /proc/sys/net/ipv4/tcp_rmem
echo ####
echo Battery Tweaks
echo ####
echo "500" > /proc/sys/vm/dirty_expire_centisecs
echo "1000" > /proc/sys/vm/dirty_writeback_centisecs
echo ####
echo stop market if running
echo ####
busybox killall com.android.vending

Categories

Resources