I am making a init.d script for my kernel and could use another set of eyes that are good with bash script.. I am new to bash script and need to know if this script will work and if not maybe some advice.. I have the on/off correct but need to know if sysfs part is correct more specifically is this line correct: [ "`grep START_BUTTON=$S1 $MAC_CONF`" ] && [ "`grep END_BUTTON!=$S1 $MAC_CONF`" ];
Code:
##########################
# MAC Sweep2Wake Configuration
#
# Sweep2Wake
# 1 to enable Sweep2Wake (default)
# 0 to disable Sweep2Wake
SWEEP2WAKE=1
# Sweep2Wake sysfs
#
S0="BACK"
S1="HOME"
S3="MENU"
# Start button
# BACK
# HOME
START_BUTTON=$S0
# End button
#
# MENU
# HOME
END_BUTTON=$S3
##########################
Code:
#!/system/bin/sh
MAC_CONF="/system/etc/mac.conf"
#Sweep2Wake
#
if [ "`grep SWEEP2WAKE=0 $MAC_CONF`" ]; then
echo 0 > /sys/android_touch/sweep2wake;
echo "[03S2W]: Sweep2Wake disabled.";
else
echo 1 > /sys/android_touch/sweep2wake;
echo "[03S2W]: Sweep2Wake enabled.";
fi
# Sweep2Wake sysfs
# Start
#
if [ "`grep START_BUTTON=$S0 $MAC_CONF`" ]; then
echo "Start Key -$S0-"
echo 'BACK' > /sys/android_touch/sweep2wake_startbutton
elif [ "`grep START_BUTTON=$S1 $MAC_CONF`" ] && [ "`grep END_BUTTON!=$S1 $MAC_CONF`" ]; then
echo "Start Key -$S1-"
echo 'HOME' > /sys/android_touch/sweep2wake_startbutton
else
echo "End Key Not Found"
fi
# Sweep2Wake sysfs
# End
#
if [ "`grep END_BUTTON=$S3 $MAC_CONF`" ]; then
echo "End Key -$S3-"
echo 'MENU' > /sys/android_touch/sweep2wake_endbutton
elif [ "`grep END_BUTTON=$S1 $MAC_CONF`" ] && [ "`grep START_BUTTON!=$S1 $MAC_CONF`"]; then
echo "Start Key -$S2-"
echo 'HOME' > /sys/android_touch/sweep2wake_startbutton
else
echo "End Key Not Found"
fi
ok fixed
Code:
##########################
# MAC Sweep2Wake Configuration
#
# Sweep2Wake
# 1 to enable Sweep2Wake (default)
# 0 to disable Sweep2Wake
SWEEP2WAKE=1
# Sweep2Wake sysfs
#
S0="BACK"
S1="HOME"
S3="MENU"
# Start button
# BACK
# HOME
START_BUTTON=$S0
# End button
#
# MENU
# HOME
END_BUTTON=$S3
##########################
#!/system/bin/sh
MAC_CONF="/sdcard/mac.conf"
#Sweep2Wake
#
if [ "`grep SWEEP2WAKE=0 $MAC_CONF`" ]; then
echo 0 > /sys/android_touch/sweep2wake;
echo "[03S2W]: Sweep2Wake disabled.";
else
echo 1 > /sys/android_touch/sweep2wake;
echo "[03S2W]: Sweep2Wake enabled.";
fi
# Sweep2Wake sysfs
# Start
#
if [ "`grep START_BUTTON=$S0 $MAC_CONF`" ]; then
echo "Start Key -$S0-"
echo 'BACK' > /sys/android_touch/sweep2wake_startbutton
elif [ "`grep START_BUTTON=$S1 $MAC_CONF`" ] && [ "`grep END_BUTTON=$S3 $MAC_CONF`" ]; then
echo "Start Key -$S1-"
echo 'HOME' > /sys/android_touch/sweep2wake_startbutton
else
echo "Start Key Not Found"
fi
# Sweep2Wake sysfs
# End
#
if [ "`grep END_BUTTON=$S3 $MAC_CONF`" ]; then
echo "End Key -$S3-"
echo 'MENU' > /sys/android_touch/sweep2wake_endbutton
elif [ "`grep START_BUTTON=$S0 $MAC_CONF`" ] && [ "`grep END_BUTTON=$S1 $MAC_CONF`" ]; then
echo "End Key -$S1-"
echo 'HOME' > /sys/android_touch/sweep2wake_startbutton
else
echo "End Key Not Found"
fi
Related
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?
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
While doing stuff on Fenris ( http://w11.zetaboards.com/Pwnie_Express/topic/10168884/1/#new ) i discovered a LOT of init.d scripts out there so decided to unify all the useful and working tweaks into one single bash script
EDIT.......... after a massive ammount of testing and tweaking, the result is the modifications to the script
it is mostly universal and includes functions for direct config of the elemental x kernel and glitch kernel,
The speed benefits are noticeable but not massive
Please note bin previous version since it was full of bugs inherited from script snippets had picked up from xda roms
Code:
#!/system/bin/sh
BBox="/system/xbin/busybox"
LC="log -p i -t cm"
##########################################################################################
#elemental x 2.10.1 kernel settings
elex_settings() {
$LC "Jubei-->Function--> ENTER......elementalx_kernel"
##########Set FASTCHARGE
#echo 1 > /sys/kernel/fast_charge/force_fast_charge
#$LC "Jubei-->USB Fastcharge enabled"
echo 0 > /sys/kernel/fast_charge/force_fast_charge
$LC "Jubei-->USB Fastcharge disabled"
###########Set SWEEP2WAKE
echo 0 > /sys/android_touch/sweep2wake
$LC "Jubei-->Sweep2wake disabled"
#echo 2 > /sys/android_touch/sweep2wake
#$LC "Jubei-->Sweep2sleep enabled"
#echo 1 > /sys/android_touch/sweep2wake
#$LC "Jubei-->Sweep2wake/Sweep2sleep enabled"
########Set S2W SHORTSWEEP
#echo 1 > /sys/android_touch/shortsweep;
#$LC "Jubei-->Sweep2wake shortsweep enabled"
echo 0 > /sys/android_touch/shortsweep
$LC "Jubei-->Sweep2wake shortsweep disabled"
#Set S2W ORIENTATION
#echo 1 > /sys/android_touch/orientation
#$LC "Jubei-->Disabled sweep2sleep in landscape mode"
#echo 2 > /sys/android_touch/orientation
#$LC "Jubei-->Disabled sweep2sleep in portrait mode"
echo 0 > /sys/android_touch/orientation
$LC "Jubei--> sweep2sleep disabled"
#Set DOUBLETAP2WAKE
#echo 1 > /sys/android_touch/doubletap2wake
#$LC "Jubei--> DoubleTap2Wake enabled"
echo 0 > /sys/android_touch/doubletap2wake
$LC "Jubei--> DoubleTap2Wake disabled"
#Set S2W/DT2W Power key toggle
#echo 1 > /sys/android_touch/pwrkey_suspend;
#$LC "Jubei--> Power key toggle for S2W/DT2W enabled"
echo 0 > /sys/android_touch/pwrkey_suspend
$LC "Jubei--> Power key toggle for S2W/DT2W disabled"
#Set S2W/DT2W Magnetic cover toggle
#echo 1 > /sys/android_touch/lid_suspend;
#$LC "Jubei--> Magnetic cover toggle for S2W/DT2W enabled"
echo 0 > /sys/android_touch/lid_suspend;
$LC "Jubei--> Magnetic cover toggle for S2W/DT2W disabled"
#Set Magnetic on/off
#echo 0 > /sys/module/lid/parameters/enable_lid;
#$LC "Jubei--> Magnetic on/off disabled"
echo 1 > /sys/module/lid/parameters/enable_lid;
$LC "Jubei--> Magnetic on/off enabled"
#battery life extender
#echo 4200 > /sys/devices/i2c-0/0-006a/float_voltage;
#Lower charge voltage to 4.2V
#echo 4100 > /sys/devices/i2c-0/0-006a/float_voltage;
#Lower charge voltage to 4.1V
#echo 4000 > /sys/devices/i2c-0/0-006a/float_voltage;
#Lower charge voltage to 4.0V
$LC "Jubei--> battery life extender disabled"
#max scroff
#echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/max_screen_off;
#$LC "Jubei--> Max screen off disabled"
$LC "Jubei--> Max screen off enabled"
#Set fsync
echo 0 > /sys/module/sync/parameters/fsync_enabled;
$LC "Jubei--> fsync disabled"
#echo 1 > /sys/module/sync/parameters/fsync_enabled;
#$LC "Jubei--> fsync enabled"
#exFAT support
insmod /system/lib/modules/exfat.ko;
$LC "Jubei--> exFAT module loaded"
#Color/gamma support
insmod /system/lib/modules/msm_kcal_ctrl.ko;
$LC "Jubei-->Color/gamma module loaded"
#USB Host mode charging
#echo Y > /sys/module/msm_otg/parameters/usbhost_charge_mode;
#USB OTG+Charge mode enabled
$LC "Jubei-->Function--> EXIT......elementalx_kernel"
#Backlight dimmer option
#echo 10 > /sys/module/msm_fb/parameters/backlight_dimmer;
#$LC "Jubei-->Backlight dimmer enabled\: $BLD"
#thermal settings
echo 80,82,90,100 > /sys/module/msm_thermal/parameters/limit_temp_degC;
$LC "Jubei--> run cool"
#echo 85,90,97,105 > /sys/module/msm_thermal/parameters/limit_temp_degC;
#run hot
#GPU Frequency settings
#Stock GPU
#echo 450000000 > /sys/devices/platform/kgsl-3d0.0/kgsl/kgsl-3d0/max_gpuclk;
#$LC "Jubei-->GPU freq 450MHz"
echo 477000000 > /sys/devices/platform/kgsl-3d0.0/kgsl/kgsl-3d0/max_gpuclk;
$LC "Jubei-->GPU freq 477MHz"
#echo 490500000 > /sys/devices/platform/kgsl-3d0.0/kgsl/kgsl-3d0/max_gpuclk;
#$LC "Jubei--> GPU freq 491MHz"
#echo 504000000 > /sys/devices/platform/kgsl-3d0.0/kgsl/kgsl-3d0/max_gpuclk;
#GPU freq 504MHz
#echo 531000000 > /sys/devices/platform/kgsl-3d0.0/kgsl/kgsl-3d0/max_gpuclk;
#GPU freq 531MHz
#echo 558000000 > /sys/devices/platform/kgsl-3d0.0/kgsl/kgsl-3d0/max_gpuclk;
#GPU freq 558MHz
#echo 585000000 > /sys/devices/platform/kgsl-3d0.0/kgsl/kgsl-3d0/max_gpuclk;
#GPU freq 585MHz
#GPU Governor settings
#echo simple > /sys/devices/platform/kgsl-3d0.0/kgsl/kgsl-3d0/pwrscale/trustzone/governor;
#$LC "Jubei--> Simple GPU Governor"
#echo performance > /sys/devices/platform/kgsl-3d0.0/kgsl/kgsl-3d0/pwrscale/trustzone/governor;
#$LC "Jubei--> Performance GPU Governor"
echo ondemand > /sys/devices/platform/kgsl-3d0.0/kgsl/kgsl-3d0/pwrscale/trustzone/governor;
$LC "Jubei--> Ondemand GPU Governor"
#io scheduler settings
#echo cfq > /sys/block/mmcblk0/queue/scheduler;
#$LC "Jubei--> CFQ io scheduler"
#echo row > /sys/block/mmcblk0/queue/scheduler;
#$LC "Jubei--> ROW io scheduler"
#echo fiops > /sys/block/mmcblk0/queue/scheduler;
#$LC "Jubei--> FIOPS io scheduler"
#echo sio > /sys/block/mmcblk0/queue/scheduler;
#$LC "Jubei--> SIO io scheduler"
echo deadline > /sys/block/mmcblk0/queue/scheduler;
$LC "Jubei--> deadline io scheduler"
#ElementalX Governor
echo 1 > /sys/devices/system/cpu/cpu0/online;
echo elementalx > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor;
echo 1 > /sys/devices/system/cpu/cpu1/online;
echo elementalx > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor;
echo 1 > /sys/devices/system/cpu/cpu2/online;
echo elementalx > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor;
echo 1 > /sys/devices/system/cpu/cpu3/online;
echo elementalx > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor;
$LC "Jubei--> ElementalX CPU governor"
#Readahead settings
echo 1024 > /sys/block/mmcblk0/queue/read_ahead_kb
$LC "Jubei-->Readahead size 1024"
#gboost settings
#echo 0 > /sys/devices/system/cpu/cpufreq/elementalx/gboost;
#$LC "Jubei--> gboost disabled"
$LC "Jubei--> gboost enabled"
$LC "Jubei-->Function--> EXIT......elementalx_kernel"
}
##########################################################################################
#glitch 142 kernel settings
glitch_kernel() {
$LC "Jubei-->Function--> ENTER......glitch_kernel"
#Max CPU_FREQ
#set safe value for boot and early processes
MAXF="`cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq`"
$LC "Jubei-->Maximum kern freq is $MAXF"
$LC "Jubei-->Boot Maximum kern freq is 1512000hz"
echo 1512000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq;
echo 1512000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq;
echo 1512000 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq;
echo 1512000 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq;
#Min CPU_FREQ
#set safe value for boot and early processes
MINF="`cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq`"
$LC "Jubei-->Min kern freq is $MINF"
$LC "Jubei-->Boot Min kern freq is 384000hz"
echo 384000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq;
echo 384000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq;
echo 384000 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq;
echo 384000 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq;
#I/O scheduler
#echo "cfq" > /sys/block/mmcblk0/queue/scheduler;
#$LC "Jubei-->io scheduler: cfq"
#echo "row" > /sys/block/mmcblk0/queue/scheduler;
#$LC "Jubei-->io scheduler: row"
#echo "deadline" > /sys/block/mmcblk0/queue/scheduler;
#$LC "Jubei-->io scheduler: deadline"
#echo "fiops" > /sys/block/mmcblk0/queue/scheduler;
#$LC "Jubei-->io scheduler: fiops"
#echo "sio" > /sys/block/mmcblk0/queue/scheduler;
#$LC "Jubei-->io scheduler: sio"
echo "noop" > /sys/block/mmcblk0/queue/scheduler;
$LC "Jubei-->io scheduler: noop"
#Read-ahead
#echo 128 > /sys/block/mmcblk0/queue/read_ahead_kb;
#$LC "Jubei-->Read-ahead: 128"
echo 256 > /sys/block/mmcblk0/queue/read_ahead_kb;
$LC "Jubei-->Read-ahead: 256"
#echo 512 > /sys/block/mmcblk0/queue/read_ahead_kb;
#$LC "Jubei-->Read-ahead: 512"
#echo 1024 > /sys/block/mmcblk0/queue/read_ahead_kb;
#$LC "Jubei-->Read-ahead: 1024"
#echo 2048 > /sys/block/mmcblk0/queue/read_ahead_kb;
#$LC "Jubei-->Read-ahead: 2048"
#FAST CHARGE
#echo 1 > /sys/kernel/fast_charge/force_fast_charge;
#$LC "Jubei-->fast charge enabled"
echo 0 > /sys/kernel/fast_charge/force_fast_charge;
$LC "Jubei-->fast charge disabled"
#Set HOTPLUGDRV
#echo 1 > /sys/kernel/msm_mpdecision/conf/enabled;
#echo 0 > /sys/module/intelli_plug/parameters/intelli_plug_active;
#$LC "Jubei-->msm_mpdecision enabled"
#echo 0 > /sys/kernel/msm_mpdecision/conf/enabled;
#echo 1 > /sys/module/intelli_plug/parameters/intelli_plug_active;
#$LC "Jubei-->intelli_plug enabled"
echo 0 > /sys/kernel/msm_mpdecision/conf/enabled;
echo 0 > /sys/module/intelli_plug/parameters/intelli_plug_active;
$LC "Jubei-->qualcomm_mpdecision enabled"
#Set SWEEP2WAKE
echo 0 > /sys/android_touch/sweep2wake;
$LC "Jubei-->Sweep2wake disabled"
#echo 2 > /sys/android_touch/sweep2wake;
#$LC "Jubei-->Sweep2sleep enabled"
#echo 1 > /sys/android_touch/sweep2wake;
#$LC "Jubei-->Sweep2wake enabled"
#Set S2S_ORIENTATION
#echo 1 > /sys/android_touch/orientation;
#$LC "Jubei-->orientation portrait"
#echo 2 > /sys/android_touch/orientation;
#$LC "Jubei-->orientation landscape"
echo 0 > /sys/android_touch/orientation;
$LC "Jubei-->orientation both"
#Set PWR_TOGGLE
#echo 1 > /sys/android_touch/pwrkey_suspend;
#$LC "Jubei-->power_toggle enabled"
echo 0 > /sys/android_touch/pwrkey_suspend;
$LC "Jubei-->power_toggle disabled"
#Set SHORTSWEEP
#echo 1 > /sys/android_touch/shortsweep;
#$LC "Jubei-->Shortsweep enabled"
echo 0 > /sys/android_touch/shortsweep;
$LC "Jubei-->Shortsweep disabled"
#Set DOUBLETAP2WAKE
#echo 1 > /sys/android_touch/doubletap2wake;
#$LC "Jubei-->DoubleTap2Wake enabled"
echo 0 > /sys/android_touch/doubletap2wake;
$LC "Jubei-->DoubleTap2Wake disabled"
#Set Magnetic on/off
#echo 0 > /sys/module/lid/parameters/enable_lid;
#$LC "Jubei-->Magnetic on/off disabled"
echo 1 > /sys/module/lid/parameters/enable_lid;
$LC "Jubei-->Magnetic on/off enabled"
#USB Host mode charging
#echo Y > /sys/module/msm_otg/parameters/usbhost_charge_mode;
#$LC "Jubei-->USB OTG+Charge mode enabled"
#Input boost
#echo 0 > /sys/kernel/msm_mpdecision/conf/boost_enabled;
#$LC "Jubei-->Input-Boost disabled"
echo 1 > /sys/kernel/msm_mpdecision/conf/boost_enabled;
$LC "Jubei-->Input-Boost enabled"
#Gentle Fair Sleepers
#echo 0 > /sys/kernel/sched/gentle_fair_sleepers;
#$LC "Jubei-->Gentle Fair Sleepers disabled"
echo 1 > /sys/kernel/sched/gentle_fair_sleepers;
$LC "Jubei-->Gentle Fair Sleepers enabled"
#MC Power savings
#echo 2 > /sys/devices/system/cpu/sched_mc_power_savings;
#$LC "Jubei-->Maximum MC power savings"
$LC "Jubei-->MC power savings disabled"
#thermal settings
#echo 80,82,90,100 > /sys/module/msm_thermal/parameters/limit_temp_degC;
#$LC "Jubei-->run cool"
#echo 85,90,97,105 > /sys/module/msm_thermal/parameters/limit_temp_degC;
#$LC "Jubei-->run hot"
$LC "Jubei-->run normal"
#GPU Clock settings
#echo 320000000 > /sys/devices/platform/kgsl-3d0.0/kgsl/kgsl-3d0/max_gpuclk;
#$LC "Jubei-->320MHz GPU"
echo 450000000 > /sys/devices/platform/kgsl-3d0.0/kgsl/kgsl-3d0/max_gpuclk;
$LC "Jubei-->450MHz GPU"
#echo 504000000 > /sys/devices/platform/kgsl-3d0.0/kgsl/kgsl-3d0/max_gpuclk;
#$LC "Jubei-->504MHz GPU"
#echo 545000000 > /sys/devices/platform/kgsl-3d0.0/kgsl/kgsl-3d0/max_gpuclk;
#$LC "Jubei-->545MHz GPU"
#echo 600000000 > /sys/devices/platform/kgsl-3d0.0/kgsl/kgsl-3d0/max_gpuclk;
#$LC "Jubei-->600MHz GPU"
#echo 627000000 > /sys/devices/platform/kgsl-3d0.0/kgsl/kgsl-3d0/max_gpuclk;
#$LC "Jubei-->627MHz GPU"
#echo 400000000 > /sys/devices/platform/kgsl-3d0.0/kgsl/kgsl-3d0/max_gpuclk;
#$LC "Jubei-->400MHz GPU"
#GPU Governor settings
#echo interactive > /sys/devices/platform/kgsl-3d0.0/kgsl/kgsl-3d0/pwrscale/trustzone/governor;
#$LC "Jubei-->Interactive GPU Governor"
#echo performance > /sys/devices/platform/kgsl-3d0.0/kgsl/kgsl-3d0/pwrscale/trustzone/governor;
#$LC "Jubei-->Performance GPU Governor"
echo ondemand > /sys/devices/platform/kgsl-3d0.0/kgsl/kgsl-3d0/pwrscale/trustzone/governor;
$LC "Jubei-->Ondemand GPU Governor"
#GPU uV settings
#printf "920000\n1025000\n1125000\n" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels_GPU;
#$LC "Jubei-->-25mV GPU uV"
#printf "895000\n1000000\n1100000\n" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels_GPU;
#$LC "Jubei-->-50mV GPU uV"
#printf "870000\n975000\n1075000\n" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels_GPU;
#$LC "Jubei-->-75mV GPU uV"
#printf "845000\n950000\n1050000\n" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels_GPU;
#$LC "Jubei-->-100mV GPU uV"
#printf "820000\n925000\n1025000\n" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels_GPU;
#$LC "Jubei-->-125mV GPU uV"
#printf "795000\n900000\n1000000\n" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels_GPU;
#$LC "Jubei-->-150mV GPU uV"
printf "945000\n1050000\n1150000\n" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels_GPU;
$LC "Jubei-->Stock GPU voltage"
#max scroff
#echo 594000 > /sys/devices/system/cpu/cpu0/cpufreq/screen_off_max_freq;
#$LC "Jubei-->594MHz max screen off"
#echo 702000 > /sys/devices/system/cpu/cpu0/cpufreq/screen_off_max_freq;
#$LC "Jubei-->702MHz max screen off"
#echo 810000 > /sys/devices/system/cpu/cpu0/cpufreq/screen_off_max_freq;
#$LC "Jubei-->810MHz max screen off"
#echo 1026000 > /sys/devices/system/cpu/cpu0/cpufreq/screen_off_max_freq;
#$LC "Jubei-->1026MHz max screen off"
#echo 1242000 > /sys/devices/system/cpu/cpu0/cpufreq/screen_off_max_freq;
#$LC "Jubei-->1242MHz max screen off"
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/screen_off_max;
$LC "Jubei-->max screen off freq disabled"
#Battery life extender
#echo 4200 > /sys/devices/i2c-0/0-006a/float_voltage;
#$LC "Jubei-->4.2V charge voltage"
#echo 4100 > /sys/devices/i2c-0/0-006a/float_voltage;
#$LC "Jubei-->4.1V charge voltage"
#echo 4000 > /sys/devices/i2c-0/0-006a/float_voltage;
#$LC "Jubei-->4.0V charge voltage"
echo 4300 > /sys/devices/i2c-0/0-006a/float_voltage;
$LC "Jubei-->Stock charge voltage"
#exFAT support
insmod /system/lib/modules/exfat.ko;
$LC "Jubei-->exFAT module loaded"
#Wait a bit before applying governor changes
sleep 2
#CPU governor
#interactive
#intellidemand
#smartmax
#ondemand
echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor;
$LC "Jubei-->CPU Governor: $governor"
$LC "Jubei-->Function--> EXIT......glitch_kernel"
}
##########################################################################################
# ICUP FUNI CULURSZ
$LC "Jubei--> Vanir first"
# ICUP FUNI CULURSZ
[ -e /sys/class/misc/colorcontrol/v1_offset ] && chown system.system /sys/class/misc/colorcontrol/v1_offset && chmod 0666 /sys/class/misc/colorcontrol/v1_offset
[ -e /sys/class/misc/colorcontrol/multiplier ] && chown system.system /sys/class/misc/colorcontrol/multiplier && chmod 0666 /sys/class/misc/colorcontrol/multiplier
[ -e /sys/devices/platform/omapdss/manager0/gamma ] && chown system.system /sys/devices/platform/omapdss/manager0/gamma && chmod 0666 /sys/devices/platform/omapdss/manager0/gamma
# Expand kernel perms
[ -e /dev/cpuctl/apps/cpu.notify_on_migrate ] && chown system.system /dev/cpuctl/apps/cpu.notify_on_migrate && chmod 0666 /dev/cpuctl/apps/cpu.notify_on_migrate
#use ksm
[ -e /sys/kernel/mm/uksm ] && echo 1 > /sys/kernel/mm/uksm/run && echo 0 > /sys/kernel/mm/ksm/run || echo 1 > /sys/kernel/mm/ksm/run
$LC "Jubei--> ......merge_sysctl"
sysctl -p /system/etc/sysctl.conf
##########################################################################################crond
$LC "Jubei-->......cron_deamon"
# crond has "/bin/sh" hardcoded
mount -o remount,rw rootfs
if [ ! -h /bin ]; then
ln -s /system/bin /bin
fi
mount -o remount,ro rootfs /
# set timezone (if you're not between -0500 and -0800 you get PST)
# todo - support other timezones
local timezone=`date +%z`
if [ $timezone = "-0800" ]; then
TZ=PST8PDT
elif [ $timezone = "-0700" ]; then
TZ=MST7MDT
elif [ $timezone = "-0600" ]; then
TZ=CST6CDT
elif [ $timezone = "-0500" ]; then
TZ=EST5EDT
else
TZ=PST8PDT
fi
export TZ
# use /data/cron, call the crontab file "root"
if [ -e /data/cron/root ]; then
mkdir -p /data/cron
cat > /data/cron/root << EOF
0 20 * * * sync; echo 3 > /proc/sys/vm/drop_caches
0 20 * * * sync; fstrim -v /system
0 20 * * * sync; fstrim -v /data
0 20 * * * sync; fstrim -v /cache
0 20 * * * sync; sysctl -w vm.drop_caches=3
01 * * * * run-parts /system/etc/cron/cron.hourly
02 4 * * * run-parts /system/etc/cron/cron.daily
22 4 * * 0 run-parts /system/etc/cron/cron.weekly
EOF
fi
crond -c /data/cron
##########################################################################################
sync
mount -o remount,rw /system
$LC "Jubei-->......boost_sd"
if [ -e /sys/devices/virtual/bdi/179:0/read_ahead_kb ]; then
echo 1024 > /sys/devices/virtual/bdi/179:0/read_ahead_kb
fi
$LC "Jubei-->......vacume_sqlite"
for i in `find /data -iname "*.db"`; do
/system/xbin/sqlite3 $i 'VACUUM;'
/system/xbin/sqlite3 $i 'REINDEX;'
done
if [ -d "/dbdata" ]; then
for i in `find /dbdata -iname "*.db"`; do
/system/xbin/sqlite3 $i 'VACUUM;'
/system/xbin/sqlite3 $i 'REINDEX;'
done
fi
if [ -d "/datadata" ]; then
for i in `find /datadata -iname "*.db"`; do
/system/xbin/sqlite3 $i 'VACUUM;'
/system/xbin/sqlite3 $i 'REINDEX;'
done
fi
for i in `find /sdcard -iname "*.db"`; do
/system/xbin/sqlite3 $i 'VACUUM;'
/system/xbin/sqlite3 $i 'REINDEX;'
done
##########################################################################################setrenice
$LC "Jubei-->......set_renice"
renice 18 `pidof kswapd0`
for i in {1..20}; do
sleep 1
renice -20 `pidof mediaserver`;
renice -20 `pidof admsrv`;
renice -20 `pidof android.process.media`;
renice -19 `pidof com.android.inputmethod.latin`
renice -18 `pidof com.sec.android.app.controlpanel` # Task manager
renice -17 `pidof com.android.systemui`
renice -10 `pidof com.google.android.apps.googlevoice`
renice -9 `pidof com.android.settings`
renice -9 `pidof com.android.vending`
renice -6 `pidof com.sec.android.app.camera`
done
ionice `pidof mediaserver` rt 0;
ionice `pidof admsrv` rt 0;
ionice `pidof android.process.media` rt 0;
sleep 3
#####################################################################################selinux relable
$LC "Jubei-->......selinux relable"
LABELDATA=0
LABELDALVIKCACHE=0
# Test /data
ls -Zd /data/system | grep -q unlabeled
if [ $? -eq 0 ]; then
$LC "Jubei....userdata is unlabeled, fixing..."
LABELDATA=1
fi
# Double-check other files under /data
ls -Z /data/misc/wifi/wpa_supplicant.conf | grep -q "wifi_"
if [ $? -eq 1 ]; then
$LC "Jubei....data is mis-labeled, fixing..."
LABELDATA=1
fi
ls -Zd /data/dalvik-cache | grep -q unlabeled
if [ $? -eq 0 ]; then
$LC "Jubei....dalvik-cache is unlabeled, fixing..."
LABELDALVIKCACHE=1
fi
ls -Zd /cache/dalvik-cache | grep -q unlabeled
if [ $? -eq 0 ]; then
$LC "Jubei....dalvik-cache is unlabeled, fixing..."
LABELDALVIKCACHE=1
fi
if [ $LABELDATA = "1" ]; then
$LC "Jubei..../data relabel starting..."
restorecon -R /data
$LC "Jubei..../data relabel complete"
$LC "Jubei..../cache relabel starting..."
restorecon -R /cache
$LC "Jubei..../cache relabel complete"
fi
if [ $LABELDALVIKCACHE = "1" ]; then
$LC "Jubei....dalvik-cache relabel starting..."
restorecon -R /data/dalvik-cache
restorecon -R /cache/dalvik-cache
$LC "Jubei....dalvik-cache relabel complete"
fi
##########################################################################################
#
# General Queue Tweaks
#
$LC "Jubei-->......queue_tweaks"
for i in /sys/block/*/queue; do
echo 512 > $i/nr_requests
echo 2 > $i/rq_affinity
echo 0 > $i/nomerges
echo 0 > $i/add_random
echo 0 > $i/rotational
done
# kill iostats hardbad
for i in `find /sys/devices/platform -name iostats`; do
echo "0" > $i
done
##########################################################################################sound mod
$LC "Jubei-->......sound"
#Full Access To ALSA
chmod 777 /dev/snd/*
chown 0.0 /dev/snd/*
#Using ALSA Drivers
export AUDIODRIVER=alsa
##########################################################################################
$LC "Jubei-->......remount"
busybox mount -o remount,noatime,noauto_da_alloc,nodiratime,barrier=0 /system
for m in "/data" "/cache"; do
busybox mount -o remount,barrier=0,nomblk_io_submit,noauto_da_alloc,errors=continue,noatime,nodiratime,nosuid,nodev $m
done
sync
##########################################################################################
$LC "Jubei-->......trim_drop"
sync
fstrim -v /system
fstrim -v /data
fstrim -v /cache
sysctl -w vm.drop_caches=3
sync
Results
Noticeable increase in speed and smoothness of the ui, especially when using nova for a launcher ( gpu rendering support ? )
To emphasise DO NOT USE PREVIOUS VERSION, it has bugs inherited from foreign scripts
I'm trying to create a script to modify the build.prop file 'automatically'.
I want the script to check for entries I define and:
1. If they do not exist add them
2. If they do exist, check the value, and if it does not match what I've define modify it.
I found a much older (2012) thread and took a script from there. But it doesn't work.
It runs but outputs nothing, not changing the build.prop
I've attached the script. Is it correct?
Code:
#!/system/bin/sh
# Definitions
file=/system/build.prop
tmpf=/system.buildprop.bak
line_list="wifi.supplicant_scan_interval=120 ro.sf.lcd_density=480"
# Function to get args as needed for loop
getargs() {
par=$1
line=`echo $par |cut -d"=" -f1`
arg=`echo $par |cut -d"=" -f2`
}
# Loop to make all changes in line_list
for x in $line_lst; do
# Get all needed arguments
getargs $x
# Write this change to a tmp file to check on it
oldarg=`grep $line $file |cut -d"=" -f2`
sed "s/$line=.*/$line=${arg}/g" $file > $tmpf
# Check if the change was made
chknewarg=`grep $line $tmpf |cut -d"=" -f2`
if [ "$chknewarg" = "$arg" ]; then
cp $tmpf $file
if [ -f $tmpf ]; then
rm $tmpf
fi
echo "File edited"
else
if [ -f $tmpf ]; then
rm $tmpf
fi
echo "Expected $arg, got $chknewarg instead"
exit 1
fi
# If it doesn't exist at all append it to the file
chkexists=`grep -c $line $file`
if [ $chkexists -eq 0 ]; then
echo "$x" >> $file
fi
done
exit 0
I would certainly like to also know how to do this via update script.
Can anyone help me solve this issue?
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
This is the boot script i am using
PHP:
###########################################
# Linux boot script V9 for Android #
# Built by Zachary Powell (zacthespack) #
# and Martin Møller (Tuxling) #
# Thanks to: #
# Johan Vromans #
# Marshall Levin #
# and to everyone at XDA! #
# Updated to work on Lenovo Tablets and #
# with ext4 .img files by Robherc #
# Feel free to edit/use this script as you#
# like but credit Linuxonandroid.org #
###########################################
# $ver: V9 #
###########################################
###########################################
# This is a function we use to stop the #
# script in case of errors #
###########################################
error_exit() {
echo "Error: $1"
exit 1
}
###########################################
# Set up variables #
###########################################
if [ -f /data/data/com.zpwebsites.linuxonandroid/files/busybox ]; then
export bbox=/data/data/com.zpwebsites.linuxonandroid/files/busybox
elif [ -f /data/data/com.zpwebsites.linuxonandroid.opensource/files/busybox ]; then
export bbox=/data/data/com.zpwebsites.linuxonandroid.opensource/files/busybox
else
export bbox=/system/xbin/busybox
fi
export usermounts=android # Base folder all user mounts are done in, should be moved to app later
export imgfile=$(dirname $0)/ubuntu.img # Default image file, another can be set by using an argument
export bin=/system/bin
export mnt=/data/local/mnt
export USER=root
if [[ ! -d $mnt ]]; then mkdir $mnt; fi
export PATH=$bin:/usr/bin:/usr/local/bin:/usr/sbin:/bin:/usr/local/sbin:/usr/games:$PATH
export TERM=linux
export HOME=/root
export SdMounted=no
###########################################
# Handle arguments if present #
###########################################
if [ $# -ne 0 ]; then
if [ -f $1 ]; then # Is full path present?
imgfile=$1
elif [ -f $(dirname $0)/$1 ]; then # Is only a filename present?
imgfile=$(dirname $0)/$1
else
error_exit "Image file not found!($1)"
fi
fi
###########################################
# If a md5 file is found we check it here #
###########################################
if [ -f $imgfile.md5 ]; then
echo "MD5 file found, use to check .img file? (y/n)"
read answer
if [ $answer == y ]; then
echo -n "Validating image checksum... "
$bbox md5sum -c -s $imgfile.md5
if [ $? -ne 0 ];then
echo "FAILED!"
error_exit "Checksum failed! The image is corrupted!"
else
echo "OK"
rm $imgfile.md5
fi
fi
fi
################################
# Find and read config file #
# or use defaults if not found #
################################
use_swap=no
cfgfile=$imgfile.config # Default config file if not specified
if [ -f $imgfile.config ]; then
source $imgfile.config
fi
###########################################
# Set Swap up if wanted #
# #
###########################################
if [ $use_swap == yes ]; then
if [ -f $imgfile.swap ]; then
echo "Swap file found, using file"
echo "Turning on swap (if it errors here you do not have swap support)"
swapon $imgfile.swap
else
echo "Creating Swap file"
dd if=/dev/zero of=$imgfile.swap bs=1048576 count=1024
mkswap $imgfile.swap
echo "Turning on swap (if it errors here you do not have swap support)"
swapon $imgfile.swap
fi
fi
###########################################
# Set up loop device and mount image #
###########################################
echo -n "Checking loop device... "
if [ -b /dev/block/loop255 ]; then
echo "FOUND"
else
echo "MISSING"
# Loop device not found so we create it and verify it was actually created
echo -n "Creating loop device... "
$bbox mknod /dev/block/loop255 b 7 255
if [ -b /dev/block/loop255 ]; then
echo "OK"
else
echo "FAILED"
error_exit "Unable to create loop device!"
fi
fi
$bbox losetup /dev/block/loop255 $imgfile
if [ $? -ne 0 ];then error_exit "Unable to attach image to loop device! (Image = $imgfile)"; fi
$bbox mount -t auto /dev/block/loop255 $mnt
if [ $? -ne 0 ];then error_exit "Unable to mount the loop device!"; fi
###########################################
# Mount all required partitions #
###########################################
$bbox mount -o bind /dev $mnt/dev
if [ $? -ne 0 ];then error_exit "Unable to mount $mnt/dev!"; fi
$bbox mount -t devpts devpts $mnt/dev/pts
if [ $? -ne 0 ];then error_exit "Unable to mount $mnt/dev/pts!"; fi
$bbox mount -t proc proc $mnt/proc
if [ $? -ne 0 ];then error_exit "Unable to mount $mnt/proc!"; fi
$bbox mount -t sysfs sysfs $mnt/sys
if [ $? -ne 0 ];then error_exit "Unable to mount $mnt/sys!"; fi
$bbox mount -o bind /sdcard $mnt/sdcard
if [ $? -ne 0 ];then error_exit "Unable to bind $mnt/sdcard!"; fi
if [[ ! -d $mnt/root/cfg ]]; then mkdir $mnt/root/cfg; fi
$bbox mount -o bind $(dirname $imgfile) $mnt/root/cfg
###########################################
# Checks if you have a external sdcard #
# and mounts it if you do #
###########################################
if [ -d /sdcard/external_sd ]; then
$bbox mount -o bind /sdcard/external_sd $mnt/external_sd
if [ $? == 0 ];then SdMounted="Yes"; fi
elif [ -d /Removable/MicroSD ]; then
$bbox mount -o bind /Removable/MicroSD $mnt/external_sd
if [ $? == 0 ];then SdMounted="Yes"; fi
elif [ -d /storage/sdcard1 ]; then
$bbox mount -o bind /storage/sdcard1 $mnt/external_sd
if [ $? == 0 ];then SdMounted="Yes"; fi
elif [ -d /storage/extSdCard ]; then
$bbox mount -o bind /storage/extSdCard $mnt/external_sd
if [ $? == 0 ];then SdMounted="Yes"; fi
# This last elif statemet will mount internal memory to /external_sd
# within the chroot environment on some devices.
# You may wish to comment it out if this behavior affects you
elif [ -d /storage ]; then
$bbox mount -o bind /storage $mnt/external_sd
if [ $? == 0 ];then SdMounted="Yes"; fi
# This is the end of the statement to comment out
fi
###########################################
# Mount all user defined mounts if any #
###########################################
if [ -f $imgfile.mounts ]; then
olddir=$(pwd)
echo "Mounting user mounts"
cd $mnt
if [[ ! -d $mnt/$usermounts ]]; then $bbox mkdir -p $usermounts; fi
echo "# Script to unmount user defined mounts, do not delete or edit!" > $imgfile.shutdown
echo "cd $mnt/$usermounts" > $imgfile.shutdown
cd $mnt/$usermounts
for entry in $(cat "$imgfile.mounts"); do
ANDROID=${entry%;*}
LINUX=${entry#*;}
if [[ -d $ANDROID ]]; then
echo -n "Mounting $ANDROID to $usermounts/$LINUX... "
if [[ ! -d $mnt/$usermounts/$LINUX ]]; then $bbox mkdir -p $LINUX; fi
$bbox mount -o bind $ANDROID $mnt/$usermounts/$LINUX &> /dev/null
if [ $? -ne 0 ];then
echo FAIL
if [[ -d $mnt/$usermounts/$LINUX ]]; then $bbox rmdir -p $LINUX; fi
else
echo OK
echo "$bbox umount $mnt/$usermounts/$LINUX" >> $imgfile.shutdown
echo "$bbox rmdir -p $LINUX" >> $imgfile.shutdown
fi
else
echo "Android folder not found: $ANDROID"
fi
done
echo "cd $mnt" >> $imgfile.shutdown
echo "$bbox rmdir -p $usermounts" >> $imgfile.shutdown
cd $olddir
else
echo "No user defined mount points"
fi
###########################################
# Sets up network forwarding #
###########################################
$bbox sysctl -w net.ipv4.ip_forward=1
if [ $? -ne 0 ];then error_exit "Unable to forward network!"; fi
# If NOT $mnt/root/DONOTDELETE.txt exists we setup hosts and resolv.conf now
if [ ! -f $mnt/root/DONOTDELETE.txt ]; then
echo "nameserver 8.8.8.8" > $mnt/etc/resolv.conf
if [ $? -ne 0 ];then error_exit "Unable to write resolv.conf file!"; fi
echo "nameserver 8.8.4.4" >> $mnt/etc/resolv.conf
echo "127.0.0.1 localhost" > $mnt/etc/hosts
if [ $? -ne 0 ];then error_exit "Unable to write hosts file!"; fi
fi
###########################################
# Chroot into ubuntu #
###########################################
$bbox chroot $mnt /root/init.sh $(basename $imgfile)
###########################################
# Shut down ubuntu #
###########################################
echo "Shutting down Linux ARM"
#for pid in `lsof | grep $mnt | sed -e's/ / /g' | cut -d' ' -f2`; do kill -9 $pid >/dev/null 2>&1; done
for pid in `$bbox lsof | $bbox grep $mnt | $bbox sed -e's/ / /g' | $bbox cut -d' ' -f2`; do $bbox kill -9 $pid >/dev/null 2>&1; done
sleep 5
###########################################
# Unmount all user defined mounts if any #
###########################################
if [ -f $imgfile.shutdown ]; then
echo "Unmounting user defined mounts"
sh $imgfile.shutdown
rm $imgfile.shutdown
fi
$bbox umount $mnt/root/cfg
$bbox umount $mnt/sdcard
if [ $SdMounted == "Yes" ];then $bbox umount $mnt/external_sd; fi
$bbox umount $mnt/dev/pts
$bbox umount $mnt/dev
$bbox umount $mnt/proc
$bbox umount $mnt/sys
$bbox umount $mnt
$bbox losetup -d /dev/block/loop255 &> /dev/null