[script][tool] stuff.sh - Android Software/Hacking General [Developers Only]

Code:
# Custom settings for session behaviour
# values for all settings should either be 1 or 0.
# Check Busybox Applet Generator 2.4.
run_Busybox_Applet_Generator=1
# Check Superuser.
run_Superuser=
# Use /dev/urandom for print_RANDOM_BYTE.
use_urand=1
# invert print_RANDOM_BYTE.
invert_rand=1
until [[ "$1" != --verbose ]] && [[ "$1" != --supass ]] && [[ "$1" != --bbpass ]] && [[ "$1" != --urand ]] && [[ "$1" != --invrand ]] && [[ "$1" != --renice ]]; do
if [[ "$1" == --verbose ]]; then
set -x
elif [[ "$1" == --supass ]] && [[ "$run_Superuser" != 0 ]]; then
readonly run_Superuser=0
elif [[ "$1" == --bbpass ]] && [[ "$run_Busybox_Applet_Generator" != 0 ]]; then
readonly run_Busybox_Applet_Generator=0
elif [[ "$1" == --urand ]] && [[ "$use_urand" != 1 ]]; then
readonly use_urand=1
elif [[ "$1" == --invrand ]] && [[ "$invert_rand" != 1 ]]; then
readonly invert_rand=1
elif [[ "$1" == --renice ]]; then
if [[ ! "$(echo $2 | tr [0-9] ' ' | sed 's/^-//' | sed 's/ //g')" ]]; then
if [[ "$2" -le 19 ]] && [[ "$2" -ge -20 ]]; then
renice $2 $$ 1>/dev/null
else
echo "parameter input out-of-range!"
exit 1
fi
else
echo "invalid parameter input!"
exit 1
fi
shift
fi
shift
done
readonly version="0.0.2"
readonly BASE_NAME=$(basename $0)
readonly NO_EXTENSION=$(echo $BASE_NAME | sed 's/\..*//')
readonly backup_PATH=$PATH
readonly set_PATH=$(dirname $0 | sed 's/^\.//')
readonly set_PATH2=$(pwd)
if [[ "$set_PATH" ]]; then
if [[ "$(ls / | grep $(echo $set_PATH | tr -s / \\n | head -n2 | tr -s \\n / | sed 's/\/$//' | sed 's/^\///'))" ]] ; then
export PATH=$set_PATH:$PATH
else
export PATH=$set_PATH2:$PATH
fi
else
export PATH=$set_PATH2:$PATH
fi
reg_name=$(which $BASE_NAME 2>/dev/null) # somewhat seems to be incompatible with 1.22.1-stericson.
if [[ ! "$reg_name" ]]; then
echo "you are not running this program in proper location. this may cause trouble for codes that use this function: DIR_NAME"
readonly DIR_NAME="NULL" #'NULL' will go out instead of an actual directory name
else
readonly DIR_NAME=$(dirname $reg_name | sed 's/^\.//')
fi
export PATH=$backup_PATH # revert back to default
readonly FULL_NAME=$(echo $DIR_NAME/$BASE_NAME)
print_PARTIAL_DIR_NAME(){
echo $(echo $DIR_NAME | tr -s / \\n | head -n$(($1+1)) | tr -s \\n / | sed 's/\/$//')
}
readonly ROOT_DIR=$(print_PARTIAL_DIR_NAME 1)
print_RANDOM_BYTE(){
if [[ "$use_urand" != 1 ]]; then
rand=$(($(od -An -N2 -i /dev/random)%32767))
else
rand=$(($(od -An -N2 -i /dev/urandom)%32767))
fi
if [[ "$invert_rand" == 1 ]]; then
if [[ "$rand" -lt 0 ]]; then
rand=$(($((rand*-1))-1))
fi
fi
echo $rand #output
}
debug_shell(){
echo "welcome to the debug_shell program! type in: 'help' for more information."
echo -e -n "\e[1;32mdebug-\e[1;33m$version\e[0m"
if [[ "$su_check" == 0 ]]; then
echo -n '# '
else
echo -n '$ '
fi
while eval read i; do
case $i in
randtest)
while true; do echo -n $(print_RANDOM_BYTE); done
;;
help)
echo -e "this debug shell is \e[1;31mONLY\e[0m used for testing conditions inside this program!
it is not a complete shell as you CANNOT use any regex with it.
such includes:
-functions
-variables
-built-in sh or bash commands
instead, you can use these commands built-in to this program:
-print_PARTIAL_DIR_NAME
-print_RANDOM_BYTE
-Busybox_Applet_Generator
-Superuser
-any other functions built-in to this program...
you can use set command to view all the functions and variables built-in to this program.
you can also use these built-in commands in debug_shell:
-randtest (tests if print_RANDOM_BYTE is functioning properly)
-help (brings out this message)
debug_shell \e[1;33mv$version\e[0m
Copyright (C) 2013-2015 [email protected]"
;;
return*)
exit
;;
*)
$i
;;
esac
echo -e -n "\e[1;32mdebug-\e[1;33m$version\e[0m"
if [[ "$su_check" == 0 ]]; then
echo -n '# '
else
echo -n '$ '
fi
done
}
install(){
local loc # prevent breaks
n=0
for i in $(echo $PATH | sed 's/:/ /g'); do
n=$(($n+1))
export slot$n=$i
done
if [[ "$1" == -i ]]; then
for i in $(seq -s ' $slot' 0 $n | sed 's/^0//'); do
eval echo $i
done
else
echo $n hits.
for i in $(seq -s ' $slot' 0 $n | sed 's/^0//'); do
v=$(eval echo $i)
echo -n "would you like to install it in $v? (y/n) "
while true; do
read f
case $f in
y* | Y*)
loc=$v
break
;;
n* | N*)
break
;;
q* | Q*)
return 0
;;
*)
random=$(print_RANDOM_BYTE)
random=$((random%4+1))
if [[ "$random" -eq 1 ]]; then
echo -n 'what? '
elif [[ "$random" -eq 2 ]]; then
echo -n 'i dont understand. '
elif [[ "$random" -eq 3 ]]; then
echo -n 'come on mate, you could do better than that! '
elif [[ "$random" -eq 4 ]]; then
echo -n 'if i were you, i would choose the chicken. '
fi
;;
esac
done
if [[ "$loc" ]]; then
break
fi
done
if [[ ! "$loc" ]]; then
echo couldnt install, sorry. :p
return 1
fi
echo 'please wait...'
loc_DIR_NAME=$(echo $loc | tr -s / \\n | head -n2 | tr -s \\n / | sed 's/\/$//')
mountstat=$(grep $loc_DIR_NAME /proc/mounts | head -n1)
if [[ "$mountstat" ]]; then
if [[ "$(echo $mountstat | grep ro)" ]]; then
ro=1
echo -n -e '\rmounting...'
mount -o remount,rw $loc_DIR_NAME
fi
if [[ "$(echo $mountstat | grep rw)" ]]; then
echo -n -e '\rcopying files...'
cp $0 $loc/$NO_EXTENSION
if [[ "$?" == 1 ]]; then
return 1
fi
chmod 755 $loc/$NO_EXTENSION
if [[ "$ro" == 1 ]]; then
mount -o remount,ro $loc_DIR_NAME
fi
else
error=1
fi
else
error=1 # exception error
fi
if [[ "$error" == 1 ]]; then
echo -e "internal error! please use '--verbose' and try again. \e[1;31m\"error code 1\"\e[0m"
return 1
else
echo
long_line 2
echo install complete!
echo type $NO_EXTENSION to run the program!
fi
fi
}
long_line(){
for i in $(seq 1 $(tput cols 2>/dev/null)); do
if [[ "$1" -le 1 ]]; then
echo -n '-'
else
echo -n '='
fi
done
if [[ "$i" == 1 ]]; then
echo -n -e '\r'
if [[ "$1" -le 1 ]]; then # 80 columns
echo -n '--------------------------------------------------------------------------------'
else
echo -n '================================================================================'
fi
fi
echo
}
# chklnk.sh
#
# Copyright (C) 2013-2015 [email protected]
#
# Everyone is permitted to copy and distribute verbatim copies
# of this code, but changing it is not allowed.
#
# Changelogs:
# alpha version
# 0.0.1 - first release
# 0.0.2 - permission error support added.
# - revamped return command.
# - some codes borrowed from avcore.sh
# - skeleton.sh
set +e #error proof
# Busybox Applet Generator 2.4
# You can type in any commands you would want it to check.
# It will start by checking from cmd1, and its limit is up to cmd224.
cmd1=dirname
cmd2=basename
cmd3=ls
cmd4=grep
cmd5=head
cmd6=awk
cmd7=cat
cmd8=pgrep
cmd9=ps
cmd= # It notifies the generator how many cmds are available for check. Leave it as blank.
silent_mode=1 # enabling this will hide errors.
# This feature might not be compatible with some other multi-call binaries.
# if similar applets are found and Busybox do not have them, it will still continue but leave out some error messages regarding compatibility issues.
Busybox_Applet_Generator(){
local n i busyboxloc busyboxenv fail
if [[ ! "$(busybox)" ]]; then #allow non-Busybox users to continue.
if [[ "$silent_mode" != 1 ]]; then
echo "Busybox does not exist! Busybox is required for best compatibility!"
fi
if [[ "$cmd" ]]; then
if [[ "$cmd" -lt 0 ]]; then
cmd=0
fi
else
cmd=224
fi
for i in $(seq -s ' $cmd' 0 $cmd | sed 's/^0//'); do
v=$(eval echo $i)
if [[ "$v" ]]; then
if [[ ! "$(which $v)" ]]; then
if [[ "$silent_mode" != 1 ]]; then
echo "required applet: '$v' does not exist!"
fi
fail=1 #fail later
fi
else
break #reduce cycle
fi
done
else
busyboxloc=$(dirname $(which busybox))
n=0
for i in $(echo $PATH | sed 's/:/ /g'); do
n=$(($n+1))
export slot$n=$i
if [[ "$i" == "$busyboxloc" ]]; then
busyboxenv=slot$n
fi
done
if [[ "$busyboxenv" != slot1 ]]; then
export PATH=$(echo -n $busyboxloc
for i in $(seq -s ' $slot' 0 $n | sed 's/^0//'); do
v=$(eval echo $i)
if [[ "$v" != "$busyboxloc" ]]; then
echo -n ":$v"
fi
done)
fi
if [[ "$cmd" ]]; then
if [[ "$cmd" -lt 0 ]]; then
cmd=0
fi
else
cmd=224
fi
for i in $(seq -s ' $cmd' 0 $cmd | sed 's/^0//'); do
v=$(eval echo $i)
if [[ "$v" ]]; then
if [[ ! "$(busybox | grep "\<$v\>")" ]]; then
if [[ "$silent_mode" != 1 ]]; then
echo -n "required applet: '$v' not embedded in Busybox!"
fi
if [[ ! "$(which $v)" ]]; then
if [[ "$silent_mode" != 1 ]]; then
echo "...and also does not exist!"
fi
fail=1 #fail later
else
if [[ "$silent_mode" != 1 ]]; then
echo
fi
fi
fi
if [[ ! -e "$busyboxloc"/"$v" ]]; then
alias $i="busybox $i"
fi
else
break #reduce cycle
fi
done
fi 2>/dev/null
if [[ "$fail" == 1 ]]; then #the fail manager!
echo -e "process terminated. \e[1;31m\"error code 1\"\e[0m"
return 1
fi
}
# Check Superuser.
su_check= # root availability
Superuser(){
su_check=0
if [[ "$(grep -i "^Uid:" /proc/$$/status | awk '{print $2}')" != 0 ]]; then
su_check=1
echo "Permission denied, are you root?"
return 1
fi
}
# Session behaviour
Roll_Down(){
local return
if [[ "$run_Busybox_Applet_Generator" == 1 ]]; then
Busybox_Applet_Generator
return=$?
if [[ "$return" -ne 0 ]]; then
exit $return
fi
fi
if [[ "$run_Superuser" == 1 ]]; then
Superuser
return=$?
if [[ "$return" -ne 0 ]]; then
exit $return
fi
fi
}
Roll_Down
# Main script
case $1 in
-h | --help)
echo "$BASE_NAME v$version
Copyright (C) 2013-2015 [email protected]
Usage: $BASE_NAME [LOCATION] -h
"
shift
exit 0
;;
*)
if [[ ! "$1" ]]; then
exit 0
fi
;;
esac
file=$1
dir=$(dirname $file)
base=$(basename $file)
if [ ! -e "$file" ] && [ ! -d "$file" ]; then
echo "$file: not found"
exit 127
fi
count=0
for i in $(ls -l $dir | grep $base | head -1); do
count=$((count+1))
if [ "$i" == "->" ]; then
found=y
break
fi
done 2>/dev/null
return=$?
if [ "$return" != 0 ]; then
echo "$file: operation not permitted"
exit $return
fi
if [ ! "$found" ] || [ "$file" == "/" ]; then
echo "$file: is not a symlink"
exit 1
fi
#link=$((count-1))
orig=$((count+1))
linked_file=$(ls -l $dir | grep $base | head -1 | awk '{print $'"$orig"'}')
echo "$linked_file"
exit 0 #EOF

Code:
# Custom settings for session behaviour
# values for all settings should either be 1 or 0.
# Check Busybox Applet Generator 2.4.
run_Busybox_Applet_Generator=1
# Check Superuser.
run_Superuser=1
# Use /dev/urandom for print_RANDOM_BYTE.
use_urand=1
# invert print_RANDOM_BYTE.
invert_rand=1
until [[ "$1" != --verbose ]] && [[ "$1" != --supass ]] && [[ "$1" != --bbpass ]] && [[ "$1" != --urand ]] && [[ "$1" != --invrand ]] && [[ "$1" != --renice ]]; do
if [[ "$1" == --verbose ]]; then
set -x
elif [[ "$1" == --supass ]] && [[ "$run_Superuser" != 0 ]]; then
readonly run_Superuser=0
elif [[ "$1" == --bbpass ]] && [[ "$run_Busybox_Applet_Generator" != 0 ]]; then
readonly run_Busybox_Applet_Generator=0
elif [[ "$1" == --urand ]] && [[ "$use_urand" != 1 ]]; then
readonly use_urand=1
elif [[ "$1" == --invrand ]] && [[ "$invert_rand" != 1 ]]; then
readonly invert_rand=1
elif [[ "$1" == --renice ]]; then
if [[ ! "$(echo $2 | tr [0-9] ' ' | sed 's/^-//' | sed 's/ //g')" ]]; then
if [[ "$2" -le 19 ]] && [[ "$2" -ge -20 ]]; then
renice $2 $$ 1>/dev/null
else
echo "parameter input out-of-range!"
exit 1
fi
else
echo "invalid parameter input!"
exit 1
fi
shift
fi
shift
done
readonly version="0.1"
readonly BASE_NAME=$(basename $0)
readonly NO_EXTENSION=$(echo $BASE_NAME | sed 's/\..*//')
readonly backup_PATH=$PATH
readonly set_PATH=$(dirname $0 | sed 's/^\.//')
readonly set_PATH2=$(pwd)
if [[ "$set_PATH" ]]; then
if [[ "$(ls / | grep $(echo $set_PATH | tr -s / \\n | head -n2 | tr -s \\n / | sed 's/\/$//' | sed 's/^\///'))" ]] ; then
export PATH=$set_PATH:$PATH
else
export PATH=$set_PATH2:$PATH
fi
else
export PATH=$set_PATH2:$PATH
fi
reg_name=$(which $BASE_NAME 2>/dev/null) # somewhat seems to be incompatible with 1.22.1-stericson.
if [[ ! "$reg_name" ]]; then
echo "you are not running this program in proper location. this may cause trouble for codes that use this function: DIR_NAME"
readonly DIR_NAME="NULL" #'NULL' will go out instead of an actual directory name
else
readonly DIR_NAME=$(dirname $reg_name | sed 's/^\.//')
fi
export PATH=$backup_PATH # revert back to default
readonly FULL_NAME=$(echo $DIR_NAME/$BASE_NAME)
print_PARTIAL_DIR_NAME(){
echo $(echo $DIR_NAME | tr -s / \\n | head -n$(($1+1)) | tr -s \\n / | sed 's/\/$//')
}
readonly ROOT_DIR=$(print_PARTIAL_DIR_NAME 1)
print_RANDOM_BYTE(){
if [[ "$use_urand" != 1 ]]; then
rand=$(($(od -An -N2 -i /dev/random)%32767))
else
rand=$(($(od -An -N2 -i /dev/urandom)%32767))
fi
if [[ "$invert_rand" == 1 ]]; then
if [[ "$rand" -lt 0 ]]; then
rand=$(($((rand*-1))-1))
fi
fi
echo $rand #output
}
debug_shell(){
echo "welcome to the debug_shell program! type in: 'help' for more information."
echo -e -n "\e[1;32mdebug-\e[1;33m$version\e[0m"
if [[ "$su_check" == 0 ]]; then
echo -n '# '
else
echo -n '$ '
fi
while eval read i; do
case $i in
randtest)
while true; do echo -n $(print_RANDOM_BYTE); done
;;
help)
echo -e "this debug shell is \e[1;31mONLY\e[0m used for testing conditions inside this program!
it is not a complete shell as you CANNOT use any regex with it.
such includes:
-functions
-variables
-built-in sh or bash commands
instead, you can use these commands built-in to this program:
-print_PARTIAL_DIR_NAME
-print_RANDOM_BYTE
-Busybox_Applet_Generator
-Superuser
-any other functions built-in to this program...
you can use set command to view all the functions and variables built-in to this program.
you can also use these built-in commands in debug_shell:
-randtest (tests if print_RANDOM_BYTE is functioning properly)
-help (brings out this message)
debug_shell \e[1;33mv$version\e[0m
Copyright (C) 2013-2015 [email protected]"
;;
return*)
exit
;;
*)
$i
;;
esac
echo -e -n "\e[1;32mdebug-\e[1;33m$version\e[0m"
if [[ "$su_check" == 0 ]]; then
echo -n '# '
else
echo -n '$ '
fi
done
}
install(){
local loc # prevent breaks
n=0
for i in $(echo $PATH | sed 's/:/ /g'); do
n=$(($n+1))
export slot$n=$i
done
if [[ "$1" == -i ]]; then
for i in $(seq -s ' $slot' 0 $n | sed 's/^0//'); do
eval echo $i
done
else
echo $n hits.
for i in $(seq -s ' $slot' 0 $n | sed 's/^0//'); do
v=$(eval echo $i)
echo -n "would you like to install it in $v? (y/n) "
while true; do
read f
case $f in
y* | Y*)
loc=$v
break
;;
n* | N*)
break
;;
q* | Q*)
return 0
;;
*)
random=$(print_RANDOM_BYTE)
random=$((random%4+1))
if [[ "$random" -eq 1 ]]; then
echo -n 'what? '
elif [[ "$random" -eq 2 ]]; then
echo -n 'i dont understand. '
elif [[ "$random" -eq 3 ]]; then
echo -n 'come on mate, you could do better than that! '
elif [[ "$random" -eq 4 ]]; then
echo -n 'if i were you, i would choose the chicken. '
fi
;;
esac
done
if [[ "$loc" ]]; then
break
fi
done
if [[ ! "$loc" ]]; then
echo couldnt install, sorry. :p
return 1
fi
echo 'please wait...'
loc_DIR_NAME=$(echo $loc | tr -s / \\n | head -n2 | tr -s \\n / | sed 's/\/$//')
mountstat=$(grep $loc_DIR_NAME /proc/mounts | head -n1)
if [[ "$mountstat" ]]; then
if [[ "$(echo $mountstat | grep ro)" ]]; then
ro=1
echo -n -e '\rmounting...'
mount -o remount,rw $loc_DIR_NAME
fi
if [[ "$(echo $mountstat | grep rw)" ]]; then
echo -n -e '\rcopying files...'
cp $0 $loc/$NO_EXTENSION
if [[ "$?" == 1 ]]; then
return 1
fi
chmod 755 $loc/$NO_EXTENSION
if [[ "$ro" == 1 ]]; then
mount -o remount,ro $loc_DIR_NAME
fi
else
error=1
fi
else
error=1 # exception error
fi
if [[ "$error" == 1 ]]; then
echo -e "internal error! please use '--verbose' and try again. \e[1;31m\"error code 1\"\e[0m"
return 1
else
echo
long_line 2
echo install complete!
echo type $NO_EXTENSION to run the program!
fi
fi
}
long_line(){
for i in $(seq 1 $(tput cols 2>/dev/null)); do
if [[ "$1" -le 1 ]]; then
echo -n '-'
else
echo -n '='
fi
done
if [[ "$i" == 1 ]]; then
echo -n -e '\r'
if [[ "$1" -le 1 ]]; then # 80 columns
echo -n '--------------------------------------------------------------------------------'
else
echo -n '================================================================================'
fi
fi
echo
}
# skeleton.sh
#
# Copyright (C) 2013-2015 [email protected]
#
# Everyone is permitted to copy and distribute verbatim copies
# of this code, but changing it is not allowed.
#
# Changelogs:
set +e #error proof
# Busybox Applet Generator 2.4
# You can type in any commands you would want it to check.
# It will start by checking from cmd1, and its limit is up to cmd224.
cmd1=dirname
cmd2=basename
cmd3=ls
cmd4=grep
cmd5=head
cmd6=awk
cmd7=cat
cmd8=pgrep
cmd9=ps
cmd10=chrt
cmd11=cp
cmd= # It notifies the generator how many cmds are available for check. Leave it as blank.
silent_mode= # enabling this will hide errors.
# This feature might not be compatible with some other multi-call binaries.
# if similar applets are found and Busybox do not have them, it will still continue but leave out some error messages regarding compatibility issues.
Busybox_Applet_Generator(){
local n i busyboxloc busyboxenv fail
if [[ ! "$(busybox)" ]]; then #allow non-Busybox users to continue.
if [[ "$silent_mode" != 1 ]]; then
echo "Busybox does not exist! Busybox is required for best compatibility!"
fi
if [[ "$cmd" ]]; then
if [[ "$cmd" -lt 0 ]]; then
cmd=0
fi
else
cmd=224
fi
for i in $(seq -s ' $cmd' 0 $cmd | sed 's/^0//'); do
v=$(eval echo $i)
if [[ "$v" ]]; then
if [[ ! "$(which $v)" ]]; then
if [[ "$silent_mode" != 1 ]]; then
echo "required applet: '$v' does not exist!"
fi
fail=1 #fail later
fi
else
break #reduce cycle
fi
done
else
busyboxloc=$(dirname $(which busybox))
n=0
for i in $(echo $PATH | sed 's/:/ /g'); do
n=$(($n+1))
export slot$n=$i
if [[ "$i" == "$busyboxloc" ]]; then
busyboxenv=slot$n
fi
done
if [[ "$busyboxenv" != slot1 ]]; then
export PATH=$(echo -n $busyboxloc
for i in $(seq -s ' $slot' 0 $n | sed 's/^0//'); do
v=$(eval echo $i)
if [[ "$v" != "$busyboxloc" ]]; then
echo -n ":$v"
fi
done)
fi
if [[ "$cmd" ]]; then
if [[ "$cmd" -lt 0 ]]; then
cmd=0
fi
else
cmd=224
fi
for i in $(seq -s ' $cmd' 0 $cmd | sed 's/^0//'); do
v=$(eval echo $i)
if [[ "$v" ]]; then
if [[ ! "$(busybox | grep "\<$v\>")" ]]; then
if [[ "$silent_mode" != 1 ]]; then
echo -n "required applet: '$v' not embedded in Busybox!"
fi
if [[ ! "$(which $v)" ]]; then
if [[ "$silent_mode" != 1 ]]; then
echo "...and also does not exist!"
fi
fail=1 #fail later
else
if [[ "$silent_mode" != 1 ]]; then
echo
fi
fi
fi
if [[ ! -e "$busyboxloc"/"$v" ]]; then
alias $i="busybox $i"
fi
else
break #reduce cycle
fi
done
fi 2>/dev/null
if [[ "$fail" == 1 ]]; then #the fail manager!
echo -e "process terminated. \e[1;31m\"error code 1\"\e[0m"
return 1
fi
}
# Check Superuser.
su_check= # root availability
Superuser(){
su_check=0
if [[ "$(grep -i "^Uid:" /proc/$$/status | awk '{print $2}')" != 0 ]]; then
su_check=1
echo "Permission denied, are you root?"
return 1
fi
}
# Session behaviour
Roll_Down(){
local return
if [[ "$run_Busybox_Applet_Generator" == 1 ]]; then
Busybox_Applet_Generator
return=$?
if [[ "$return" -ne 0 ]]; then
exit $return
fi
fi
if [[ "$run_Superuser" == 1 ]]; then
Superuser
return=$?
if [[ "$return" -ne 0 ]]; then
exit $return
fi
fi
}
Roll_Down
process=$1
suddencharge=$2
sleep=$3
task(){
stat=$(cat /proc/$1/task/$2/stat)
rm=${stat#*)}
last_prio=$(echo $rm | cut -d' ' -f17)
proctime=$(echo $rm | cut -d' ' -f12)
while true
do
if [[ ! $(cat /proc/$1/task/$2/stat) ]]; then
exit
fi
prev_proctime=$proctime
stat=$(cat /proc/$1/task/$2/stat)
rm=${stat#*)}
proctime=$(echo $rm | cut -d' ' -f12)
buffer=$(echo $proctime $prev_proctime $4 | awk '{printf "%d\n", ($1-$2)/$3}')
#buffer=$(echo $proctime $prev_proctime $4 | awk '{print ($1-$2)/$3}' | cut -d'.' -f1)
if [[ $buffer -gt $3 ]]; then
renice $5 $2
else
renice $last_prio $2
fi
sleep $4
done | tee 2>&1 /data/log/skeleton.log
}
fork(){
until [[ $(pgrep $1) ]]
do
sleep 1
done
pid=$(pgrep $1)
if [[ $(ls /proc/$pid/task) ]]; then
for i in $(ls /proc/$pid/task)
do
task $pid $i $2 $3 $4 &
done
fi 2>/dev/null
}
#fork $process $suddencharge $sleep $nice
test_task(){
stat=$(cat /proc/$1/task/$2/stat)
rm=${stat#*)}
last_prio=$(echo $rm | cut -d' ' -f17)
proctime=$(echo $rm | cut -d' ' -f12)
while true
do
if [[ ! $(cat /proc/$1/task/$2/stat) ]]; then
exit
fi
prev_proctime=$proctime
stat=$(cat /proc/$1/task/$2/stat)
rm=${stat#*)}
proctime=$(echo $rm | cut -d' ' -f12)
buffer=$(echo $proctime $prev_proctime $4 | awk '{printf "%d\n", ($1-$2)/$3}')
#buffer=$(echo $proctime $prev_proctime $4 | awk '{print ($1-$2)/$3}' | cut -d'.' -f1)
if [[ $buffer -gt $3 ]]; then
renice $5 $2
else
renice $last_prio $2
fi
sleep $4
done | tee 2>&1 /data/log/skeleton.log
}
#exit
#todo: limit threads that illegaly use -20.
#top
testdebug(){
process=$1
sleep=$2
if [[ ! $sleep ]]; then
sleep=5
fi
while true
do
gprocess=$(pgrep $process)
if [[ "$gprocess" ]]; then
for i in $(ls /proc/$gprocess/task); do
echo -e "\e[1;31m$(cat /proc/$gprocess/task/$i/comm)\e[0m -> \e[1;32m$(cat /proc/$gprocess/task/$i/wchan)\e[0m"
stat=$(cat /proc/$gprocess/task/$i/stat)
rm=${stat#*)}
nicelevel=$(echo $rm | cut -d' ' -f17)
echo "nicelevel:$nicelevel"
echo -e $(cat /proc/$gprocess/task/$i/stat)
if [[ "$3" == 1 ]]; then
if [[ $(grep -i 'congestion\|0\|linux' /proc/$gprocess/task/$i/wchan) ]] && [[ $(cat /proc/$gprocess/comm) == $(cat /proc/$gprocess/task/$i/comm) ]]; then
pid=$i
renice -20 $i
else
if [[ $pid != $i ]] && [[ $nicelevel -le -16 ]]; then
#if [[ $(grep -i 'audio' /proc/$gprocess/task/$i/comm) ]]; then
renice 19 $i
#else
#renice 0 $i
#fi
fi
fi
fi
echo
done
else
echo waiting...
fi
sleep $sleep
echo
echo
echo
long_line 2
done | tee 2>&1 /data/log/****.txt
}
test(){
process=$1
sleep=$2
if [[ ! $sleep ]]; then
sleep=5
fi
echo waiting...
until [[ $(pgrep $process) ]]; do sleep 1; done
while true; do
gprocess=$(pgrep $process)
if [[ "$gprocess" ]]; then
clear
echo pid $gprocess is being monitored.
for i in $(ls /proc/$gprocess/task); do
stat=$(cat /proc/$gprocess/task/$i/stat)
rm=${stat#*)}
nicelevel=$(echo $rm | cut -d' ' -f17)
echo $i $nicelevel $(cat /proc/$gprocess/task/$i/wchan)
if [[ $(grep -i 'congestion\|0\|linux' /proc/$gprocess/task/$i/wchan) ]] && [[ $(cat /proc/$gprocess/comm) == $(cat /proc/$gprocess/task/$i/comm) ]] && [[ $gprocess != $i ]]; then
pid=$i
if [[ $3 != 1 ]]; then
renice -20 $i
else
chrt -f -p 1 $i
fi
else
if [[ $pid != $i ]] && [[ $nicelevel -le -16 ]]; then
#if [[ $(grep -i 'audio' /proc/$gprocess/task/$i/comm) ]]; then
renice 19 $i
#else
#renice 0 $i
#fi
fi
fi
done
else
echo process ended.
break
fi
sleep $sleep
done
}
#test range!
#echo $version #show version number
#echo $BASE_NAME
#echo $DIR_NAME
#echo $FULL_NAME
#print_PARTIAL_DIR_NAME 1 #print home directory(will work only when DIR_NAME works)
#print_RANDOM_BYTE #print random number upto 32767
echo thread priority manager beta v0.1
echo only tested in applications that use congestion_wait sched!
long_line 1
if [[ ! "$(echo $(install -i) | grep $DIR_NAME | sed 's/ //g')" ]]; then
echo "type 'install' to begin installation!"
else
echo 'test [app name] [interval] [rt_sched]'
echo '-useful for processes that use congestion_wait scheduler'
echo 'fork [app name] [throttle] [interval(float)] [niceness]'
echo '-useful for preventing processes that randomly spark their thread priority to max'
fi
debug_shell
exit 0 #EOF

Code:
# Custom settings for session behaviour
# values for all settings should either be 1 or 0.
# Check Busybox Applet Generator 2.4.
run_Busybox_Applet_Generator=1
# Check Superuser.
run_Superuser=
# Use /dev/urandom for print_RANDOM_BYTE.
use_urand=1
# invert print_RANDOM_BYTE.
invert_rand=1
until [[ "$1" != --verbose ]] && [[ "$1" != --supass ]] && [[ "$1" != --bbpass ]] && [[ "$1" != --urand ]] && [[ "$1" != --invrand ]] && [[ "$1" != --renice ]]; do
if [[ "$1" == --verbose ]]; then
set -x
elif [[ "$1" == --supass ]] && [[ "$run_Superuser" != 0 ]]; then
readonly run_Superuser=0
elif [[ "$1" == --bbpass ]] && [[ "$run_Busybox_Applet_Generator" != 0 ]]; then
readonly run_Busybox_Applet_Generator=0
elif [[ "$1" == --urand ]] && [[ "$use_urand" != 1 ]]; then
readonly use_urand=1
elif [[ "$1" == --invrand ]] && [[ "$invert_rand" != 1 ]]; then
readonly invert_rand=1
elif [[ "$1" == --renice ]]; then
if [[ ! "$(echo $2 | tr [0-9] ' ' | sed 's/^-//' | sed 's/ //g')" ]]; then
if [[ "$2" -le 19 ]] && [[ "$2" -ge -20 ]]; then
renice $2 $$ 1>/dev/null
else
echo "parameter input out-of-range!"
exit 1
fi
else
echo "invalid parameter input!"
exit 1
fi
shift
fi
shift
done
readonly version="0.2"
readonly BASE_NAME=$(basename $0)
readonly NO_EXTENSION=$(echo $BASE_NAME | sed 's/\..*//')
readonly backup_PATH=$PATH
readonly set_PATH=$(dirname $0 | sed 's/^\.//')
readonly set_PATH2=$(pwd)
if [[ "$set_PATH" ]]; then
if [[ "$(ls / | grep $(echo $set_PATH | tr -s / \\n | head -n2 | tr -s \\n / | sed 's/\/$//' | sed 's/^\///'))" ]] ; then
export PATH=$set_PATH:$PATH
else
export PATH=$set_PATH2:$PATH
fi
else
export PATH=$set_PATH2:$PATH
fi
reg_name=$(which $BASE_NAME 2>/dev/null) # somewhat seems to be incompatible with 1.22.1-stericson.
if [[ ! "$reg_name" ]]; then
echo "you are not running this program in proper location. this may cause trouble for codes that use this function: DIR_NAME"
readonly DIR_NAME="NULL" #'NULL' will go out instead of an actual directory name
else
readonly DIR_NAME=$(dirname $reg_name | sed 's/^\.//')
fi
export PATH=$backup_PATH # revert back to default
readonly FULL_NAME=$(echo $DIR_NAME/$BASE_NAME)
print_PARTIAL_DIR_NAME(){
echo $(echo $DIR_NAME | tr -s / \\n | head -n$(($1+1)) | tr -s \\n / | sed 's/\/$//')
}
readonly ROOT_DIR=$(print_PARTIAL_DIR_NAME 1)
print_RANDOM_BYTE(){
if [[ "$use_urand" != 1 ]]; then
rand=$(($(od -An -N2 -i /dev/random)%32767))
else
rand=$(($(od -An -N2 -i /dev/urandom)%32767))
fi
if [[ "$invert_rand" == 1 ]]; then
if [[ "$rand" -lt 0 ]]; then
rand=$(($((rand*-1))-1))
fi
fi
echo $rand #output
}
debug_shell(){
echo "welcome to the debug_shell program! type in: 'help' for more information."
echo -e -n "\e[1;32mdebug-\e[1;33m$version\e[0m"
if [[ "$su_check" == 0 ]]; then
echo -n '# '
else
echo -n '$ '
fi
while eval read i; do
case $i in
randtest)
while true; do echo -n $(print_RANDOM_BYTE); done
;;
help)
echo -e "this debug shell is \e[1;31mONLY\e[0m used for testing conditions inside this program!
it is not a complete shell as you CANNOT use any regex with it.
such includes:
-functions
-variables
-built-in sh or bash commands
instead, you can use these commands built-in to this program:
-print_PARTIAL_DIR_NAME
-print_RANDOM_BYTE
-Busybox_Applet_Generator
-Superuser
-any other functions built-in to this program...
you can use set command to view all the functions and variables built-in to this program.
you can also use these built-in commands in debug_shell:
-randtest (tests if print_RANDOM_BYTE is functioning properly)
-help (brings out this message)
debug_shell \e[1;33mv$version\e[0m
Copyright (C) 2013-2015 [email protected]"
;;
return*)
exit
;;
*)
$i
;;
esac
echo -e -n "\e[1;32mdebug-\e[1;33m$version\e[0m"
if [[ "$su_check" == 0 ]]; then
echo -n '# '
else
echo -n '$ '
fi
done
}
install(){
local loc # prevent breaks
n=0
for i in $(echo $PATH | sed 's/:/ /g'); do
n=$(($n+1))
export slot$n=$i
done
if [[ "$1" == -i ]]; then
for i in $(seq -s ' $slot' 0 $n | sed 's/^0//'); do
eval echo $i
done
else
echo $n hits.
for i in $(seq -s ' $slot' 0 $n | sed 's/^0//'); do
v=$(eval echo $i)
echo -n "would you like to install it in $v? (y/n) "
while true; do
read f
case $f in
y* | Y*)
loc=$v
break
;;
n* | N*)
break
;;
q* | Q*)
return 0
;;
*)
random=$(print_RANDOM_BYTE)
random=$((random%4+1))
if [[ "$random" -eq 1 ]]; then
echo -n 'what? '
elif [[ "$random" -eq 2 ]]; then
echo -n 'i dont understand. '
elif [[ "$random" -eq 3 ]]; then
echo -n 'come on mate, you could do better than that! '
elif [[ "$random" -eq 4 ]]; then
echo -n 'if i were you, i would choose the chicken. '
fi
;;
esac
done
if [[ "$loc" ]]; then
break
fi
done
if [[ ! "$loc" ]]; then
echo couldnt install, sorry. :p
return 1
fi
echo 'please wait...'
loc_DIR_NAME=$(echo $loc | tr -s / \\n | head -n2 | tr -s \\n / | sed 's/\/$//')
mountstat=$(grep $loc_DIR_NAME /proc/mounts | head -n1)
if [[ "$mountstat" ]]; then
if [[ "$(echo $mountstat | grep ro)" ]]; then
ro=1
echo -n -e '\rmounting...'
mount -o remount,rw $loc_DIR_NAME
fi
if [[ "$(echo $mountstat | grep rw)" ]]; then
echo -n -e '\rcopying files...'
cp $0 $loc/$NO_EXTENSION
if [[ "$?" == 1 ]]; then
return 1
fi
chmod 755 $loc/$NO_EXTENSION
if [[ "$ro" == 1 ]]; then
mount -o remount,ro $loc_DIR_NAME
fi
else
error=1
fi
else
error=1 # exception error
fi
if [[ "$error" == 1 ]]; then
echo -e "internal error! please use '--verbose' and try again. \e[1;31m\"error code 1\"\e[0m"
return 1
else
echo
long_line 2
echo install complete!
echo type $NO_EXTENSION to run the program!
fi
fi
}
long_line(){
for i in $(seq 1 $(tput cols 2>/dev/null)); do
if [[ "$1" -le 1 ]]; then
echo -n '-'
else
echo -n '='
fi
done
if [[ "$i" == 1 ]]; then
echo -n -e '\r'
if [[ "$1" -le 1 ]]; then # 80 columns
echo -n '--------------------------------------------------------------------------------'
else
echo -n '================================================================================'
fi
fi
echo
}
# cpuramcheck.sh
#
# Copyright (C) 2013-2015 [email protected]
#
# Everyone is permitted to copy and distribute verbatim copies
# of this code, but changing it is not allowed.
#
# Changelogs:
set +e #error proof
# Busybox Applet Generator 2.4
# You can type in any commands you would want it to check.
# It will start by checking from cmd1, and its limit is up to cmd224.
cmd1=ls
cmd= # It notifies the generator how many cmds are available for check. Leave it as blank.
silent_mode= # enabling this will hide errors.
# This feature might not be compatible with some other multi-call binaries.
# if similar applets are found and Busybox do not have them, it will still continue but leave out some error messages regarding compatibility issues.
Busybox_Applet_Generator(){
local n i busyboxloc busyboxenv fail
if [[ ! "$(busybox)" ]]; then #allow non-Busybox users to continue.
if [[ "$silent_mode" != 1 ]]; then
echo "Busybox does not exist! Busybox is required for best compatibility!"
fi
if [[ "$cmd" ]]; then
if [[ "$cmd" -lt 0 ]]; then
cmd=0
fi
else
cmd=224
fi
for i in $(seq -s ' $cmd' 0 $cmd | sed 's/^0//'); do
v=$(eval echo $i)
if [[ "$v" ]]; then
if [[ ! "$(which $v)" ]]; then
if [[ "$silent_mode" != 1 ]]; then
echo "required applet: '$v' does not exist!"
fi
fail=1 #fail later
fi
else
break #reduce cycle
fi
done
else
busyboxloc=$(dirname $(which busybox))
n=0
for i in $(echo $PATH | sed 's/:/ /g'); do
n=$(($n+1))
export slot$n=$i
if [[ "$i" == "$busyboxloc" ]]; then
busyboxenv=slot$n
fi
done
if [[ "$busyboxenv" != slot1 ]]; then
export PATH=$(echo -n $busyboxloc
for i in $(seq -s ' $slot' 0 $n | sed 's/^0//'); do
v=$(eval echo $i)
if [[ "$v" != "$busyboxloc" ]]; then
echo -n ":$v"
fi
done)
fi
if [[ "$cmd" ]]; then
if [[ "$cmd" -lt 0 ]]; then
cmd=0
fi
else
cmd=224
fi
for i in $(seq -s ' $cmd' 0 $cmd | sed 's/^0//'); do
v=$(eval echo $i)
if [[ "$v" ]]; then
if [[ ! "$(busybox | grep "\<$v\>")" ]]; then
if [[ "$silent_mode" != 1 ]]; then
echo -n "required applet: '$v' not embedded in Busybox!"
fi
if [[ ! "$(which $v)" ]]; then
if [[ "$silent_mode" != 1 ]]; then
echo "...and also does not exist!"
fi
fail=1 #fail later
else
if [[ "$silent_mode" != 1 ]]; then
echo
fi
fi
fi
if [[ ! -e "$busyboxloc"/"$v" ]]; then
alias $i="busybox $i"
fi
else
break #reduce cycle
fi
done
fi 2>/dev/null
if [[ "$fail" == 1 ]]; then #the fail manager!
echo -e "process terminated. \e[1;31m\"error code 1\"\e[0m"
return 1
fi
}
# Check Superuser.
su_check= # root availability
Superuser(){
su_check=0
if [[ "$(grep -i "^Uid:" /proc/$$/status | awk '{print $2}')" != 0 ]]; then
su_check=1
echo "Permission denied, are you root?"
return 1
fi
}
# Session behaviour
Roll_Down(){
local return
if [[ "$run_Busybox_Applet_Generator" == 1 ]]; then
Busybox_Applet_Generator
return=$?
if [[ "$return" -ne 0 ]]; then
exit $return
fi
fi
if [[ "$run_Superuser" == 1 ]]; then
Superuser
return=$?
if [[ "$return" -ne 0 ]]; then
exit $return
fi
fi
}
Roll_Down
# Main script
case $1 in
-h | --help)
echo "$BASE_NAME v$version
Copyright (C) 2013-2015 [email protected]
Usage: $BASE_NAME [interval] [bar_length] -h -i -d
"
shift
exit 0
;;
-i)
proto=1
shift
;;
-d | --debug)
debug_shell
shift
;;
esac
if [[ "$proto" == 1 ]]; then
IFS=','
for i in $(grep cpu /proc/stat | tr '\n' ','); do
eval prev_$(echo $i | cut -d' ' -f1)_total=$(IFS=' '; x=0; for j in $(echo $i | cut -d' ' -f2-); do x=$((x+j)); done; echo $x)
eval prev_$(echo $i | cut -d' ' -f1)_idle=$(echo $i | cut -d' ' -f2- | cut -d' ' -f4)
done
unset IFS
while true; do
memfree=$(cat /proc/meminfo | grep -i memfree | awk '{print $2}')
cached=$(cat /proc/meminfo | grep -i cached | awk '{print $2}')
memtotal=$(cat /proc/meminfo | grep -i memtotal | awk '{print $2}')
memused=$(echo $memtotal $cached $memfree | awk '{print $1-$2-$3}')
usedmb=$(($memused/1024))
usedGB=$(echo $usedmb | awk '{printf "%.2f", $1/1024}')
if [[ "$usedmb" -ge 1000 ]]; then
iused="$usedGB"GB
else
iused="$usedmb"MB
fi
totalmb=$(($memtotal/1024))
totalGB=$(echo $totalmb | awk '{printf "%.2f", $1/1024}')
if [[ "$totalmb" -ge 1000 ]]; then
itotal="$totalGB"GB
else
itotal="$totalmb"MB
fi
if [[ "$2" ]]; then
count=$2
else
count=25
fi
ibar=$(echo $usedmb $totalmb $count | awk '{printf "%d", $1/$2*$3}')
isheep=$(for x in $(seq 1 $count); do
if [[ "$x" -le "$ibar" ]]; then
echo -n -e '|'
else
echo -n -e 'o'
fi
done)
echo -n -e "\e[3;m\rtotal " #invert color
IFS=','
for i in $(grep cpu /proc/stat | tr '\n' ','); do
total=$(IFS=' '; x=0; for j in $(echo $i | cut -d' ' -f2-); do x=$((x+j)); done; echo $x)
idle=$(echo $i | cut -d' ' -f2- | cut -d' ' -f4)
eval diff_$(echo $i | cut -d' ' -f1)_total=$(($total-$(eval echo \$prev_$(echo $i | cut -d' ' -f1)_total)))
eval diff_$(echo $i | cut -d' ' -f1)_idle=$(($idle-$(eval echo \$prev_$(echo $i | cut -d' ' -f1)_idle)))
eval prev_$(echo $i | cut -d' ' -f1)_total=$total
eval prev_$(echo $i | cut -d' ' -f1)_idle=$idle
usage=$(($((1000*$(($(eval echo \$diff_$(echo $i | cut -d' ' -f1)_total)-$(eval echo \$diff_$(echo $i | cut -d' ' -f1)_idle)))/$(eval echo \$diff_$(echo $i | cut -d' ' -f1)_total)+5))/10))
if [[ "$usage" -lt 10 ]]; then
echo -n -e "$(echo $i | cut -d' ' -f1) usage: $usage%"
elif [[ "$usage" -lt 100 ]]; then
echo -n -e "$(echo $i | cut -d' ' -f1) usage: $usage%"
else
echo -n -e "$(echo $i | cut -d' ' -f1) usage:$usage%"
fi
echo -n -e " "
done
unset IFS
if [[ "$usedmb" -ge 1000 ]]; then
echo -n -e "RAM usage: $iused/$itotal"
else
if [[ "$usedmb" -lt 10 ]]; then
echo -n -e "RAM usage: $iused/$itotal"
elif [[ "$usedmb" -lt 100 ]]; then
echo -n -e "RAM usage: $iused/$itotal"
elif [[ "$usedmb" -lt 1000 ]]; then
echo -n -e "RAM usage: $iused/$itotal"
fi
fi
echo -n -e " "
echo -n -e $isheep
echo -n -e "\e[0m"
if [[ "$1" ]]; then
sleep $1
else
sleep 1
fi
done
else
prev_total=0
prev_idle=0
while true; do
cpu=$(cat /proc/stat | head -n1 | sed 's/cpu //')
idle=$(echo $cpu | awk '{print $4}')
total=$(echo $cpu | awk '{print $1+$2+$3+$4+$5+$6+$7+$8}')
diff_idle=$(($idle-$prev_idle))
diff_total=$(($total-$prev_total))
usage=$(($((1000*$(($diff_total-$diff_idle))/$diff_total+5))/10))
memfree=$(cat /proc/meminfo | grep -i memfree | awk '{print $2}')
cached=$(cat /proc/meminfo | grep -i cached | awk '{print $2}')
memtotal=$(cat /proc/meminfo | grep -i memtotal | awk '{print $2}')
memused=$(echo $memtotal $cached $memfree | awk '{print $1-$2-$3}')
usedmb=$(($memused/1024))
usedGB=$(echo $usedmb | awk '{printf "%.2f", $1/1024}')
if [[ "$usedmb" -ge 1000 ]]; then
iused="$usedGB"GB
else
iused="$usedmb"MB
fi
totalmb=$(($memtotal/1024))
totalGB=$(echo $totalmb | awk '{printf "%.2f", $1/1024}')
if [[ "$totalmb" -ge 1000 ]]; then
itotal="$totalGB"GB
else
itotal="$totalmb"MB
fi
if [[ "$2" ]]; then
count=$2
else
count=25
fi
ibar=$(echo $usedmb $totalmb $count | awk '{printf "%d", $1/$2*$3}')
isheep=$(for x in $(seq 1 $count); do
if [[ "$x" -le "$ibar" ]]; then
echo -n -e '|'
else
echo -n -e 'o'
fi
done)
echo -n -e "\e[3;m\r" #invert color
if [[ "$usage" -lt 10 ]]; then
echo -n -e "CPU usage: $usage%"
elif [[ "$usage" -lt 100 ]]; then
echo -n -e "CPU usage: $usage%"
else
echo -n -e "CPU usage:$usage%"
fi
echo -n -e " "
if [[ "$usedmb" -ge 1000 ]]; then
echo -n -e "RAM usage: $iused/$itotal"
else
if [[ "$usedmb" -lt 10 ]]; then
echo -n -e "RAM usage: $iused/$itotal"
elif [[ "$usedmb" -lt 100 ]]; then
echo -n -e "RAM usage: $iused/$itotal"
elif [[ "$usedmb" -lt 1000 ]]; then
echo -n -e "RAM usage: $iused/$itotal"
fi
fi
echo -n -e " "
echo -n -e $isheep
echo -n -e "\e[0m"
prev_total=$total
prev_idle=$idle
if [[ "$1" ]]; then
sleep $1
else
sleep 1
fi
done
fi
exit 0 #EOF

Here, take my thanks (for RTMixManager) hahahah

bump

bump

Related

[For DEV][Build.prop Tweak's]All tweaks

Tweaks Increase download/upload/3G speeds
Code:
ro.ril.hsxpa=2
ro.ril.gprsclass=10
ro.ril.hep=1
ro.ril.enable.dtm=0
ro.ril.hsdpa.category=8 (or 10,12,14) Still looking for more of these though.
ro.ril.enable.a53=1
ro.ril.enable.3g.prefix=1
ro.ril.htcmaskw1.bitmask=4294967295
ro.ril.htcmaskw1=14449
ro.ril.hsupa.category=6
net.tcp.buffersize.default=4096,87380,256960,4096,16384,256960
net.tcp.buffersize.wifi=4096,87380,256960,4096,16384,256960
net.tcp.buffersize.umts=4096,87380,256960,4096,16384,256960
net.tcp.buffersize.gprs=4096,87380,256960,4096,16384,256960
net.tcp.buffersize.edge=4096,87380,256960,4096,16384,256960
Power Save Tweak
Code:
Allows the phone to sleep better
ro.ril.disable.power.collapse=0
Saves power when phone is sleep
pm.sleep_mode=1
Allows your wifi to scan less, saving more battery
wifi.supplicant_scan_interval=150 or 180 (your choice)
Helps Scrolling Responsiveness
windowsmgr.max_events_per_sec=150
Increase overal touch responsivenss
debug.performance.tuning=1
video.accelerate.hw=1
MEDIA TWEAKS
Code:
Makes streaming videos stream faster
media.stagefright.enable-player=true
media.stagefright.enable-meta=true
media.stagefright.enable-scan=true
media.stagefright.enable-http=true
media.stagefright.enable-record=false
Increases quality of photo and videos
ro.media.dec.jpeg.memcap=8000000
ro.media.enc.hprof.vid.bps=8000000
Raises quality of JPEG images
ro.media.enc.jpeg.quality=90 or 100 (your choice)
BOOT TWEAKS
Code:
Gives your phone no boot animation
debug.sf.nobootanimation=1
SYSTEM TWEAKS
Code:
Forces your home launcher into memory
ro.HOME_APP_ADJ=1
Change the Dalvik VM heap size
dalvik.vm.heapsize=64m #or 48mb
To disable usb debugging popup
persist.adb.notify=0
To stop the phone from waking up when pressing the volume key
ro.config.hwfeature_wakeupkey=0
To make the phone ring faster when dialing out
ro.telephony.call_ring.delay=800
Disable black screen issue after call
ro.lge.proximity.delay=25
mot.proximity.delay=25
dalvik.vm.startheapsize = 4м
Screen ppi or font density
[B]ro.sf.lcd_density=240
Other Tweaks
Code:
mot.proximity.delay=150
debug.sf.hw=1 #Render UI with GPU
ro.kernel.android.checkjni=0
persist.sys.purgeable_assets=1
download link ? does it work in miui ?
anna0811 said:
download link ? does it work in miui ?
Click to expand...
Click to collapse
You add it to build.prop on your own.
Cheers
Sent from my GT-i9003 powered by MIUI
anna0811 said:
download link ? does it work in miui ?
Click to expand...
Click to collapse
read it it is for dev only
I am using must of them so no need to change it.Thanks Frank for collecting.
tarunagg said:
read it it is for dev only
Click to expand...
Click to collapse
i know it is for devs but i want to try it if there is a download link
btw can you tell me how to flash it
anna0811 said:
i know it is for devs but i want to try it if there is a download link
btw can you tell me how to flash it
Click to expand...
Click to collapse
all hail the king of troll
it has to be changed manually.not a flashable file.
anna0811 said:
i know it is for devs but i want to try it if there is a download link
btw can you tell me how to flash it
Click to expand...
Click to collapse
If you don't know how to apply them just install a rom that surely has some of them
Nice list.
I think ro.ril.disable.power.collapse should read
Code:
ro.ril.disable.power.collapse=0
because you want the power collapse to happen to save energy. Also, all commands should be lower case. Therefore it should be
Code:
debug.performance.tuning=1
video.accelerate.hw=1
with 'd' and 'v' instead of 'D' and 'V' at the beginning.
Further, I use
Code:
dalvik.vm.startheapsize=4m
which in my experience reduces RAM usage by approx. 15 MB on startup.
XDA_Bam said:
Nice list.
I think ro.ril.disable.power.collapse should read
Code:
ro.ril.disable.power.collapse=0
because you want the power collapse to happen to save energy. Also, all commands should be lower case. Therefore it should be
Code:
debug.performance.tuning=1
video.accelerate.hw=1
with 'd' and 'v' instead of 'D' and 'V' at the beginning.
Further, I use
Code:
dalvik.vm.startheapsize=4m
which in my experience reduces RAM usage by approx. 15 MB on startup.
Click to expand...
Click to collapse
Thanks man, i add this later
Nice one frank,ButI think Mediastatefright breaks HD Video
PhosgenMod init.d + build.prop
PhosgenCharger
Code:
echo "0,3,5,7,14,15" > /sys/module/lowmemorykiller/parameters/adj; # OOM Grouping
echo "1536,2048,4096,10240,12800,15360"> /sys/module/lowmemorykiller/parameters/minfree;
PhosgenCore
Code:
if [ -e /sys/devices/virtual/bdi/179:0/read_ahead_kb ]
then
/system/xbin/echo "4096" > /sys/devices/virtual/bdi/179:0/read_ahead_kb;
fi;
if [ -e /sys/devices/virtual/bdi/179:8/read_ahead_kb ]
then
/system/xbin/echo "4096" > /sys/devices/virtual/bdi/179:8/read_ahead_kb;
fi;
if [ -e /sys/devices/virtual/bdi/default/read_ahead_kb ]
then
/system/xbin/echo "4096" > /sys/devices/virtual/bdi/default/read_ahead_kb;
fi;
if [ -e /sys/module/lowmemorykiller/parameters/adj ]; then
echo "0,1,2,4,6,15" > /sys/module/lowmemorykiller/parameters/adj
fi
if [ -e /sys/module/lowmemorykiller/parameters/minfree ]; then
echo "2560,4096,5632,10240,11776,14848" > /sys/module/lowmemorykiller/parameters/minfree
fi
if [ -e /proc/sys/vm/swappiness ]; then
echo "20" > /proc/sys/vm/swappiness
fi
if [ -e /proc/sys/vm/vfs_cache_pressure ]; then
echo "70" > /proc/sys/vm/vfs_cache_pressure
fi
if [ -e /proc/sys/vm/dirty_expire_centisecs ]; then
echo "3000" > /proc/sys/vm/dirty_expire_centisecs
fi
if [ -e /proc/sys/vm/dirty_writeback_centisecs ]; then
echo "450" > /proc/sys/vm/dirty_writeback_centisecs
fi
if [ -e /proc/sys/vm/dirty_ratio ]; then
echo "10" > /proc/sys/vm/dirty_ratio
fi
if [ -e /proc/sys/vm/dirty_background_ratio ]; then
echo "2" > /proc/sys/vm/dirty_background_ratio
fi
LOG_FILE=/data/zipalign.log;
ZIPALIGNDB=/data/zipalign.db;
if [ -e $LOG_FILE ]; then
rm $LOG_FILE;
fi;
if [ ! -f $ZIPALIGNDB ]; then
touch $ZIPALIGNDB;
fi;
echo "Starting FV Automatic ZipAlign $( date +"%m-%d-%Y %H:%M:%S" )" | tee -a $LOG_FILE;
for DIR in /system/app /data/app; do
cd $DIR;
for APK in *.apk; do
if [ $APK -ot $ZIPALIGNDB ] && [ $(grep "$DIR/$APK" $ZIPALIGNDB|wc -l) -gt 0 ]; then
echo "Already checked: $DIR/$APK" | tee -a $LOG_FILE;
else
ZIPCHECK=`/system/xbin/zipalign -c -v 4 $APK | grep FAILED | wc -l`;
if [ $ZIPCHECK == "1" ]; then
echo "Now aligning: $DIR/$APK" | tee -a $LOG_FILE;
/system/xbin/zipalign -v -f 4 $APK /data/local/$APK;
busybox mount -o rw,remount /system;
cp -f -p /data/local/$APK $APK;
grep "$DIR/$APK" $ZIPALIGNDB > /dev/null || echo $DIR/$APK >> $ZIPALIGNDB;
else
echo "Already aligned: $DIR/$APK" | tee -a $LOG_FILE;
grep "$DIR/$APK" $ZIPALIGNDB > /dev/null || echo $DIR/$APK >> $ZIPALIGNDB;
fi;
fi;
done;
done;
busybox mount -o ro,remount /system;
touch $ZIPALIGNDB;
echo "Automatic ZipAlign finished at $( date +"%m-%d-%Y %H:%M:%S" )" | tee -a $LOG_FILE;
MODULES="ipv6"
for i in $MODULES;
do
modprobe $i;
done
sysctl -p /etc/sysctl.conf;
LOOP=`ls -d /sys/block/loop*`;
blk0=`ls -d /sys/block/mmcblk0`;
blk1=`ls -d /sys/block/mmcblk1`;
MMC=`ls -d /sys/block/mmc*`;
for j in $blk0 $blk1; do
echo "0" > $j/queue/rotational;
echo "4096" > $j/queue/read_ahead_kb;
done;
for k in $(busybox mount | grep relatime | cut -d " " -f3) ; do
sync;
busybox mount -o remount,noatime $k;
done;
for i in /sys/block/*/queue/scheduler ; do
echo "noop" > $i;
done;
for a in $blk0 $blk1 $MMC ; do
echo "512" > $a/queue/nr_requests;
done;
for k in $(busybox mount | grep relatime | cut -d " " -f3) ; do
sync
busybox mount -o remount,noatime $k
done
STL=`ls -d /sys/block/stl*`;
BML=`ls -d /sys/block/bml*`;
MMC=`ls -d /sys/block/mmc*`;
ZRM=`ls -d /sys/block/zram*`;
MTD=`ls -d /sys/block/mtd*`;
for i in $STL $BML $MMC $TFSR; do
echo 0 > $i/queue/rotational
echo 1 > $i/queue/iosched/low_latency
echo 1 > $i/queue/iosched/back_seek_penalty
echo 1000000000 > $i/queue/iosched/back_seek_max
echo 3 > $i/queue/iosched/slice_idle
echo 16 > $i/queue/iosched/quantum
echo 1 > $i/queue/iosched/fifo_batch
echo sio > $i/queue/scheduler
done
if [ -n ${up_threshold} ];
then echo ${up_threshold} > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold
fi
if [ -n ${sampling_rate} ];
then echo ${sampling_rate} > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate
fi
if [ -e /sys/module/lowmemorykiller/parameters/adj ]; then
echo "0,1,2,4,7,15" > /sys/module/lowmemorykiller/parameters/adj
fi
if [ -e /sys/module/lowmemorykiller/parameters/minfree ]; then
echo "2560,4096,6144,12288,14336,18432" > /sys/module/lowmemorykiller/parameters/minfree
fi
if [ -e /sys/devices/virtual/bdi/179:0/read_ahead_kb ]; then
echo "3072" > /sys/devices/virtual/bdi/179:0/read_ahead_kb
fi
echo "deadline" > /sys/block/mmcblk0/queue/scheduler
echo "0" > /sys/block/mmcblk0/queue/rotational
echo "2048" > /sys/block/mmcblk0/queue/nr_requests
echo ${READ_AHEAD_KB} > /sys/block/mmcblk0/queue/read_ahead_kb
echo "deadline" > /sys/block/mmcblk1/queue/scheduler
echo "0" > /sys/block/mmcblk1/queue/rotational
echo "2048" > /sys/block/mmcblk1/queue/nr_requests
echo ${READ_AHEAD_KB} > /sys/block/mmcblk1/queue/read_ahead_kb
for i in \ `find /data -iname "*.db"` do \ sqlite3
$i 'VACUUM;'
done
echo "6144 87380 524288" > /proc/sys/net/ipv4/tcp_wmem
echo "6144 87380 524288" > /proc/sys/net/ipv4/tcp_rmem
setprop ro.telephony.call_ring.delay 0
setprop ring.delay 0
setprop windowsmgr.support_rotation_270 true
setprop ro.HOME_APP_ADJ 1
setprop ro.HOME_APP_MEM 2048
echo "500" > /proc/sys/vm/dirty_expire_centisecs
echo "1000" > /proc/sys/vm/dirty_writeback_centisecs
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;
PhosgenKNZO
Code:
b="busybox"; _e () { echo "$1" > "$2"; };
_m () { $b mount -o $mop -t $fs $1 $2 > /dev/nul 2>&1; };
_t1 () { tune2fs -o $1 $2; }; _t2 () { tune2fs -O $1 $2; };
_mt () { mount -o rw -t tmpfs tmpfs /data/data/$1; };
qa="com.aurorasoftworks.quadrant.ui.standard";
qs="com.aurorasoftworks.quadrant.ui.advanced";
_e "Smartassv2" /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor;
for i in /sys/block/*/queue/scheduler; do sync; echo "sio" > /$i; done;
sd="/sys/devices/virtual/bdi";
_e "1024" $sd/179:0/read_ahead_kb; _e "1024" $sd/default/read_ahead_kb;
if [ -e "$sd/179:16/read_ahead_kb" ]; then _e "1024" $sd/179:16/read_ahead_kb; else _e "1024" $sd/179:17/read_ahead_kb; fi;
PhosgenLoopy
Code:
###### Loopy Smoothness Tweak for PhosgenMod (Experimental) #######
sleep 3
renice 18 `pidof kswapd0` # please give credit and thanks to loopy for this line if it works
##### Set nice levels for smoothness loop BEGIN #####
### Let's loop this in the background for a bit
for i in {1..20}
do
sleep 5
### Phone dialer app ###
renice -20 `pidof com.android.phone`
### Launcher apps ###
renice -20 `pidof com.sec.android.app.twlauncher` # TouchWiz Launcher
renice -20 `pidof org.adwfreak.launcher` # ADW Launcher Ex
renice -20 `pidof org.zeam.core` # Zeam launcher
### System apps ###
renice -19 `pidof com.android.mms` # Text message app
renice -19 `pidof com.swype.android.inputmethod` # Swype keyboard
renice -15 `pidof com.sec.android.app.controlpanel` # Task manager
renice -15 `pidof com.android.systemui` # Status bar
renice -9 `pidof com.android.settings` # Settings menu
renice -9 `pidof com.android.browser` # Browser app
renice -9 `pidof com.android.vending` # Market app
renice -20 `pidof com.sec.android.app.camera` # Camera app
renice -6 `pidof com.sec.android.app.fm` # FM Radio app
renice -6 `pidof com.google.android.youtube` # YouTube app
renice -6 `pidof com.google.android.apps.maps` # Maps
renice -3 `pidof android.process.acore`
renice -3 `pidof android.process.media`
### Memory management kernel thread ###
renice 19 `pidof kswapd0` # please give credit and thanks to loopy for this line if it works
done
PhosgenTouch
Code:
echo 7035 > /sys/class/touch/switch/set_touchscreen;
echo 8002 > /sys/class/touch/switch/set_touchscreen;
echo 11000 > /sys/class/touch/switch/set_touchscreen;
echo 13060 > /sys/class/touch/switch/set_touchscreen;
echo 14005 > /sys/class/touch/switch/set_touchscreen;
PhosgenTune
Code:
if [ -e /sys/class/misc/gpu_clock_control/gpu_control ]; then
echo "100 200 267" > /sys/class/misc/gpu_clock_control/gpu_control;
echo "85% 45% 85% 70%" > /sys/class/misc/gpu_clock_control/gpu_control;
#echo "800000 850000 950000" > /sys/devices/virtual/misc/gpu_voltage_control/gpu_control;
fi;
if [ -e /sys/devices/system/cpu/cpu0/cpufreq/UV_mV_table ]; then
#echo "1400 1300 1175 1075 975 850 825 825 " > /sys/devices/system/cpu/cpu0/cpufreq/UV_mV_table;
fi;
for i in \
`busybox find /data -iname "*.db"`;
do \
/system/xbin/sqlite3 $i 'VACUUM;';
/system/xbin/sqlite3 $i 'REINDEX;';
done;
if [ -d "/dbdata" ]; then
for i in \
`busybox find /dbdata -iname "*.db"`;
do \
/system/xbin/sqlite3 $i 'VACUUM;';
/system/xbin/sqlite3 $i 'REINDEX;';
done;
fi;
if [ -d "/datadata" ]; then
for i in \
`busybox find /datadata -iname "*.db"`;
do \
/system/xbin/sqlite3 $i 'VACUUM;';
/system/xbin/sqlite3 $i 'REINDEX;';
done;
fi;
for i in \
`busybox find /sdcard -iname "*.db"`;
do \
/system/xbin/sqlite3 $i 'VACUUM;';
/system/xbin/sqlite3 $i 'REINDEX;';
done;
if [ "`grep 'quadrant.*true' $p`" ]; then
echo "`date` Enabling Quadrant hack..." >>$LOG
dd="/data/data"
qs="com.aurorasoftworks.quadrant.ui.standard"
qa="com.aurorasoftworks.quadrant.ui.advanced"
if [ -d "$dd/$qs" ]; then mount -t tmpfs tmpfs $dd/$qs; renice -20 `pidof $qs`; fi
if [ -d "$dd/$qa" ]; then mount -t tmpfs tmpfs $dd/$qa; renice -20 `pidof $qa`; fi
mount |grep quadrant >>$LOG
fi
if [ -e /sys/devices/system/cpu/cpufreq/smartass/awake_ideal_freq ]; then
echo "800000" > /sys/devices/system/cpu/cpufreq/smartass/awake_ideal_freq;
if [ "`cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq`" -eq 200000 ]; then
echo "200000" > /sys/devices/system/cpu/cpufreq/smartass/sleep_ideal_freq;
else
echo "100000" > /sys/devices/system/cpu/cpufreq/smartass/sleep_ideal_freq;
fi;
echo "800000" > /sys/devices/system/cpu/cpufreq/smartass/sleep_wakeup_freq;
echo "85" > /sys/devices/system/cpu/cpufreq/smartass/max_cpu_load;
echo "75" > /sys/devices/system/cpu/cpufreq/smartass/min_cpu_load;
echo "200000" > /sys/devices/system/cpu/cpufreq/smartass/ramp_down_step;
echo "0" > /sys/devices/system/cpu/cpufreq/smartass/ramp_up_step;
fi;
XDA_Bam said:
Nice list.
I think ro.ril.disable.power.collapse should read
Code:
ro.ril.disable.power.collapse=0
because you want the power collapse to happen to save energy. Also, all commands should be lower case. Therefore it should be
Code:
debug.performance.tuning=1
video.accelerate.hw=1
with 'd' and 'v' instead of 'D' and 'V' at the beginning.
Further, I use
Code:
dalvik.vm.startheapsize=4m
which in my experience reduces RAM usage by approx. 15 MB on startup.
Click to expand...
Click to collapse
ro.ril.disable.power.collapse should be 1 to disable the power collapse
For collection of scripts and tweaks look here
send from gt-i9003 using android keyboard
sirilpta said:
For collection of scripts and tweaks look here
send from gt-i9003 using android keyboard
Click to expand...
Click to collapse
..Thanks!
TheFrankenstain said:
..Thanks!
Click to expand...
Click to collapse
in that link it is written
Code:
ro.ril.disable.power.collapse=0
The sense says it should be=1, so what do we use?
Another thing, we can't use all the build.prop lines of that link is this right?
Originally Posted by TheFrankenstain
..Thanks!
Click to expand...
Click to collapse
in that link it is written
ro.ril.disable.power.collapse=0
The sense says it should be=1, so what do we use?
Another thing, we can't use all the build.prop lines of that link is this right?
Click to expand...
Click to collapse
Just use the tweaks currently in the OP. I believe thefrankenstein will only state the tweaks that work.
Cheers
Sent from my GT-i9003 powered by MIUI
Nice work!
I'd changed the media builds yesterday, however, now i can't playing youtube's videos because when i press play button the Mobile become frigde and i only can to turn off pressing long the power button.
Can you give me thr factory status? I didn't a back up file :s
Thx!!
Enviado desde mi GT-I9003 usando Tapatalk
txitxo0 said:
Nice work!
I'd changed the media builds yesterday, however, now i can't playing youtube's videos because when i press play button the Mobile become frigde and i only can to turn off pressing long the power button.
Can you give me thr factory status? I didn't a back up file :s
Thx!!
Enviado desde mi GT-I9003 usando Tapatalk
Click to expand...
Click to collapse
When you edit build.prop, the phone automatically saves a build.prop.bak in the same location, just under your build.prop. Just rename it to build.prop and delete the bad one.
luiseteyo said:
When you edit build.prop, the phone automatically saves a build.prop.bak in the same location, just under your build.prop. Just rename it to build.prop and delete the bad one.
Click to expand...
Click to collapse
Thx a lot luiseteyo! I fell weird writing on english with you jaja
Enviado desde mi GT-I9003 usando Tapatalk

[SCRIPTS] & [TWEAKS] - Updated 2.22.13

*****************************************************************************************************************
OK! Listen up! A little disclaimer before we begin...
XDA, Dwitherell and I are not responsible for you borking your phone while using these scripts!
Click to expand...
Click to collapse
*****************************************************************************************************************​
Now that, that is done and over with let's begin, shall we?
I have scoured the vast online community, that is the great XDA and have researched and tested various scripts(init.d) and tweaks(build.prop and gps.conf) to help our greatly handicapped Droid Charge somewhat "compete" with the big boys.
Dwitherell has kindly uploaded them to Tweaktools.
You may ask init.d? But we have a stock kernel that doesn't support init.d... Thanks to this post and Dwitherell's genius we have working init.d baked right into our ROM, yes that's right baked in!
P.S. - We now have a custom kernel that is able to use init.d tweaks without any hacks... Lazarus Recharged Kernel
RENICE Tutorial
Renice operates on the principal that the lower the value of the process (the scale is from -20 to +19), the higher the priority the process has on CPU time. In other words, a process that is nice to others, is +19. One that isn’t so nice is at -20. In function then, a process that requires lots of immediate CPU time such as a launcher, benefits from running at a higher priority (thus as a negative on the niceness scale) than, say, Google Maps.
***MAKE SURE TO CHANGE THE FIRST TWO ENTRYS TO YOUR CORRESPONDING PROGRAMS!***
***To add/remove other program names, change the PNAME value.***
Simply open your favorite file explorer(I recomend Script Manager, it is an all around good program), navigate to /data/data and in there are your programs. What I do is long press(in Script Manager) on the program select rename and copy the name, then paste it into the renice script. Simple as that.
Another way is to go to the Play Store find the app that you're trying to re-nice and click the share icon select Gmail or Messaging and you'll get a link. At the end of the link you'll see id=xxx.xxxxxxx.xxxxxxx copy what's after the equals sign and simply paste that into the script.
Feel free to add/delete programs from the list to suit your needs, as well as change the priority values.
Click to expand...
Click to collapse
Anywho, here is a run down of each of the modifications...
init.d
S2dSliceTweaks
[ Updated 1.4.13 ]
Code:
[B][COLOR="Red"]Various tweaks that will be known as [COLOR="black"]S2dSliceTweaks[/COLOR][/COLOR][/B]
#!/system/bin/sh
###################################
# Various tweaks found from XDA #
# - dSlice - #
###################################
# Strict Minfree Handler Tweak
####################################
echo "2048,3072,6144,15360,17920,20480" > /sys/module/lowmemorykiller/parameters/minfree
# Internet Speed Tweaks
#############################
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_dsack;
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 "1" > /proc/sys/net/ipv4/tcp_moderate_rcvbuf;
echo "1" > /proc/sys/net/ipv4/route/flush;
echo "6144" > /proc/sys/net/ipv4/udp_rmem_min;
echo "6144" > /proc/sys/net/ipv4/udp_wmem_min;
echo "1" > /proc/sys/net/ipv4/tcp_rfc1337;
echo "0" > /proc/sys/net/ipv4/ip_no_pmtu_disc;
echo "0" > /proc/sys/net/ipv4/tcp_ecn;
echo "6144 87380 2097152" > /proc/sys/net/ipv4/tcp_wmem;
echo "6144 87380 2097152" > /proc/sys/net/ipv4/tcp_rmem;
echo "1" > /proc/sys/net/ipv4/tcp_fack;
echo "2" > /proc/sys/net/ipv4/tcp_synack_retries;
echo "2" > /proc/sys/net/ipv4/tcp_syn_retries;
echo "1" > /proc/sys/net/ipv4/tcp_no_metrics_save;
echo "1800" > /proc/sys/net/ipv4/tcp_keepalive_time;
echo "0" > /proc/sys/net/ipv4/ip_forward;
echo "0" > /proc/sys/net/ipv4/conf/default/accept_source_route;
echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route;
echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects;
echo "0" > /proc/sys/net/ipv4/conf/default/accept_redirects;
echo "0" > /proc/sys/net/ipv4/conf/all/secure_redirects;
echo "0" > /proc/sys/net/ipv4/conf/default/secure_redirects;
echo "0" > /proc/sys/net/ipv4/ip_dynaddr;
echo "1440000" > /proc/sys/net/ipv4/tcp_max_tw_buckets;
echo "57344 57344 524288" > /proc/sys/net/ipv4/tcp_mem;
echo "1440000" > /proc/sys/net/ipv4/tcp_max_tw_buckets;
echo "2097152" > /proc/sys/net/core/rmem_max;
echo "2097152" > /proc/sys/net/core/wmem_max;
echo "262144" > /proc/sys/net/core/rmem_default;
echo "262144" > /proc/sys/net/core/wmem_default;
echo "20480" > /proc/sys/net/core/optmem_max;
echo "2500" > /proc/sys/net/core/netdev_max_backlog;
echo "50" > /proc/sys/net/unix/max_dgram_qlen;
# VM Management Tweaks
############################
echo 3 > /proc/sys/vm/page-cluster;
echo 3000 > /proc/sys/vm/dirty_expire_centisecs;
echo 500 > /proc/sys/vm/dirty_writeback_centisecs;
echo "5120" > /proc/sys/vm/min_free_kbytes;
echo "0" > /proc/sys/vm/oom_kill_allocating_task;
echo "0" > /proc/sys/vm/panic_on_oom;
echo "35" > /proc/sys/vm/dirty_background_ratio;
echo "70" > /proc/sys/vm/dirty_ratio;
echo "10" > /proc/sys/vm/vfs_cache_pressure;
echo "1" > /proc/sys/vm/overcommit_memory;
echo "4" > /proc/sys/vm/min_free_order_shift;
echo "0" > /proc/sys/vm/laptop_mode;
echo "0" > /proc/sys/vm/block_dump;
echo "1" > /proc/sys/vm/oom_dump_tasks;
# Misc Kernel Tweaks
##########################
echo "500,512000,64,2048" > /proc/sys/kernel/sem;
echo "268435456" > /proc/sys/kernel/shmmax;
echo "2097152" > /proc/sys/kernel/shmall;
echo "4096" > /proc/sys/kernel/shmmni;
echo "2048" > /proc/sys/kernel/msgmni;
echo "64000" > /proc/sys/kernel/msgmax;
echo "30" > /proc/sys/kernel/panic;
echo "0" > /proc/sys/kernel/panic_on_oops;
echo "5000" > /proc/sys/kernel/threads-max;
echo "10" > /proc/sys/fs/lease-break-time;
echo "65536" > /proc/sys/fs/file-max;
# Battery Tweaks
######################
echo "500" > /proc/sys/vm/dirty_expire_centisecs
echo "1000" > /proc/sys/vm/dirty_writeback_centisecs
# Removes Journalism
##########################
tune2fs -o journal_data_writeback /block/path/to/system
tune2fs -O ^has_journal /block/path/to/system
tune2fs -o journal_data_writeback /block/path/to/cache
tune2fs -O ^has_journal /block/path/to/cache
tune2fs -o journal_data_writeback /block/path/to/data
tune2fs -O ^has_journal /block/path/to/data
# Perfect Mount Options
#############################
busybox mount -o remount,noatime,noauto_da_alloc,nodiratime,barrier=0,nobh /system
busybox mount -o remount,noatime,noauto_da_alloc,nosuid,nodev,nodiratime,barrier=0,nobh /data
busybox mount -o remount,noatime,noauto_da_alloc,nosuid,nodev,nodiratime,barrier=0,nobh /cache
# Flags Blocks As Non-Rotational And Increases Cache Size
###############################################################
LOOP=`ls -d /sys/block/loop*`;
RAM=`ls -d /sys/block/ram*`;
MMC=`ls -d /sys/block/mmc*`;
for j in $LOOP $RAM
do
echo "0" > $j/queue/rotational;
echo "2048" > $j/queue/read_ahead_kb;
done
# MicroSD Card Speed Tweak
################################
READ_AHEAD_KB="2049"
if [ -e /sys/devices/virtual/bdi/0:18/read_ahead_kb ]; then
echo $READ_AHEAD_KB > /sys/devices/virtual/bdi/0:18/read_ahead_kb
fi
if [ -e /sys/devices/virtual/bdi/179:0/read_ahead_kb ]; then
echo $READ_AHEAD_KB > /sys/devices/virtual/bdi/179:0/read_ahead_kb
fi
if [ -e /sys/devices/virtual/bdi/7:0/read_ahead_kb ]; then
echo $READ_AHEAD_KB > /sys/devices/virtual/bdi/7:0/read_ahead_kb
fi
if [ -e /sys/devices/virtual/bdi/7:1/read_ahead_kb ]; then
echo $READ_AHEAD_KB > /sys/devices/virtual/bdi/7:1/read_ahead_kb
fi
if [ -e /sys/devices/virtual/bdi/7:2/read_ahead_kb ]; then
echo $READ_AHEAD_KB > /sys/devices/virtual/bdi/7:2/read_ahead_kb
fi
if [ -e /sys/devices/virtual/bdi/7:3/read_ahead_kb ]; then
echo $READ_AHEAD_KB > /sys/devices/virtual/bdi/7:3/read_ahead_kb
fi
if [ -e /sys/devices/virtual/bdi/7:4/read_ahead_kb ]; then
echo $READ_AHEAD_KB > /sys/devices/virtual/bdi/7:4/read_ahead_kb
fi
if [ -e /sys/devices/virtual/bdi/7:5/read_ahead_kb ]; then
echo $READ_AHEAD_KB > /sys/devices/virtual/bdi/7:5/read_ahead_kb
fi
if [ -e /sys/devices/virtual/bdi/7:6/read_ahead_kb ]; then
echo $READ_AHEAD_KB > /sys/devices/virtual/bdi/7:6/read_ahead_kb
fi
if [ -e /sys/devices/virtual/bdi/7:7/read_ahead_kb ]; then
echo $READ_AHEAD_KB > /sys/devices/virtual/bdi/7:7/read_ahead_kb
fi
if [ -e /sys/devices/virtual/bdi/default/read_ahead_kb ]; then
echo $READ_AHEAD_KB > /sys/devices/virtual/bdi/default/read_ahead_kb
fi
# Defrags Database Files
##############################
for i in \
`find /data -iname "*.db"`
do \
sqlite3 $i 'VACUUM;';
done
# Remove Logger
#####################
busybox rm /dev/log/main
# Ondemand Governor Tweaks
################################
SAMPLING_RATE=$(busybox expr `cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_transition_latency` \* 750 / 1000)
echo 95 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
echo $SAMPLING_RATE > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate
# Auto Change Governor and I/O Scheduler
# I/O Scheduler (Best: MTD devices - VR; EMMC devices - SIO) - needs kernel with these
############################################################################################
echo "cfq" > /sys/block/mmcblk0/queue/scheduler
# Governor
################
echo "SmartAssV2" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
# Move Dalvik-Cache To Cache Partition (If It's Big Enough) To Free Up Data Partition Space
#################################################################################################
CACHESIZE=$(df -k /cache | tail -n1 | tr -s ' ' | cut -d ' ' -f2)
if [ $CACHESIZE -gt 80000 ]
then
if [ ! -d /cache/dalvik-cache ]
then
busybox rm -rf /cache/dalvik-cache /data/dalvik-cache
mkdir /cache/dalvik-cache /data/dalvik-cache
fi
busybox chown 1000:1000 /cache/dalvik-cache
busybox chmod 0771 /cache/dalvik-cache
# bind mount dalvik-cache so we can still boot without the sdcard
busybox mount -o bind /cache/dalvik-cache /data/dalvik-cache
busybox chown 1000:1000 /data/dalvik-cache
busybox chmod 0771 /data/dalvik-cache
else
fi
# Disable normalize sleeper
#################################
mount -t debugfs none /sys/kernel/debug
echo NO_NORMALIZED_SLEEPER > /sys/kernel/debug/sched_features
# Clear Junk Caches And Junk Data
#######################################
busybox find /data/data -type d -iname "*cache*" -exec busybox rm -f {}/* ';' -exec echo "Cleared {}" ';'
rm -f /data/local/*.apk
rm -f /data/local/tmp/*.apk
rm -f /data/*.log
rm -f /data/log/*.log
rm -f /cache/*.*
rm -f /cache/recovery/*.*
rm -f /data/system/dropbox/*.txt
rm -f /data/backup/pending/*.tmp
rm -f /data/tombstones/*.*
# Disable IO Stats To Reduce Overhead
###########################################
if [ -e $i/queue/iostats ];
then
echo "0" > $i/queue/iostats;
fi;
# SqLite Optimize
#######################
for i in \
`busybox find /data -iname "*.db"`;
do \
/system/xbin/sqlite3 $i 'VACUUM;';
/system/xbin/sqlite3 $i 'REINDEX;';
done;
if [ -d "/dbdata" ]; then
for i in \
`busybox find /dbdata -iname "*.db"`;
do \
/system/xbin/sqlite3 $i 'VACUUM;';
/system/xbin/sqlite3 $i 'REINDEX;';
done;
fi;
if [ -d "/datadata" ]; then
for i in \
`busybox find /datadata -iname "*.db"`;
do \
/system/xbin/sqlite3 $i 'VACUUM;';
/system/xbin/sqlite3 $i 'REINDEX;';
done;
fi;
for i in \
`busybox find /sdcard -iname "*.db"`;
do \
/system/xbin/sqlite3 $i 'VACUUM;';
/system/xbin/sqlite3 $i 'REINDEX;';
done;
# Ram Optimizers, Allows Ram Switching To Gaming And Multitasking
#######################################################################
if [ -e /sys/module/lowmemorykiller/parameters/adj ]; then
echo "0,1,2,4,6,15" > /sys/module/lowmemorykiller/parameters/adj
fi
if [ -e /sys/module/lowmemorykiller/parameters/minfree ]; then
echo "2560,4096,6144,11264,11776,14336" > /sys/module/lowmemorykiller/parameters/minfree
fi
if [ -e /proc/sys/vm/swappiness ]; then
echo "20" > /proc/sys/vm/swappiness
fi
if [ -e /proc/sys/vm/vfs_cache_pressure ]; then
echo "70" > /proc/sys/vm/vfs_cache_pressure
fi
if [ -e /proc/sys/vm/dirty_expire_centisecs ]; then
echo "3000" > /proc/sys/vm/dirty_expire_centisecs
fi
if [ -e /proc/sys/vm/dirty_writeback_centisecs ]; then
echo "500" > /proc/sys/vm/dirty_writeback_centisecs
fi
if [ -e /proc/sys/vm/dirty_ratio ]; then
echo "15" > /proc/sys/vm/dirty_ratio
fi
if [ -e /proc/sys/vm/dirty_background_ratio ]; then
echo "3" > /proc/sys/vm/dirty_background_ratio
fi
# From Darky's Zipalign Tweak
###################################
LOG_FILE=/data/zipalign.log;
ZIPALIGNDB=/data/zipalign.db;
if [ -e $LOG_FILE ]; then
rm $LOG_FILE;
fi;
if [ ! -f $ZIPALIGNDB ]; then
touch $ZIPALIGNDB;
fi;
echo "Starting FV Automatic ZipAlign $( date +"%m-%d-%Y %H:%M:%S" )" | tee -a $LOG_FILE;
for DIR in /system/app /data/app; do
cd $DIR;
for APK in *.apk; do
if [ $APK -ot $ZIPALIGNDB ] && [ $(grep "$DIR/$APK" $ZIPALIGNDB|wc -l) -gt 0 ]; then
echo "Already checked: $DIR/$APK" | tee -a $LOG_FILE;
else
ZIPCHECK=`/system/xbin/zipalign -c -v 4 $APK | grep FAILED | wc -l`;
if [ $ZIPCHECK == "1" ]; then
echo "Now aligning: $DIR/$APK" | tee -a $LOG_FILE;
/system/xbin/zipalign -v -f 4 $APK /data/local/$APK;
busybox mount -o rw,remount /system;
cp -f -p /data/local/$APK $APK;
grep "$DIR/$APK" $ZIPALIGNDB > /dev/null || echo $DIR/$APK >> $ZIPALIGNDB;
else
echo "Already aligned: $DIR/$APK" | tee -a $LOG_FILE;
grep "$DIR/$APK" $ZIPALIGNDB > /dev/null || echo $DIR/$APK >> $ZIPALIGNDB;
fi;
fi;
done;
done;
busybox mount -o ro,remount /system;
touch $ZIPALIGNDB;
echo "Automatic ZipAlign finished at $( date +"%m-%d-%Y %H:%M:%S" )" | tee -a $LOG_FILE;
# Background Process To Optimize Dialer Process
#####################################################
(while [ 1 ];
do
sleep 10;
MAX_PHONE;
done &);
# Remove Lag When Answering Phone Calls
#############################################
MAX_PHONE()
{
pidphone=`pidof com.android.phone`;
if [ $pidphone ]; # Wait for com.android.phone to start;
then
echo -17 > /proc/$pidphone/oom_adj; # exclude com.android.phone from oom-killer;
renice -20 $pidphone; # set highest nice level for com.android.phone;
log -p i -t SSSwitch_v0.8 "*** MAX phone *** set oom_adj(-17) and nice(-20) for com.android.phone";
exit;
else
sleep 5;
MAX_PHONE;
fi;
}
S1dSliceRenice
[ Updated 1.4.13 ]
Code:
[B][COLOR="Red"]Rewritten RENICE script that is a new name [COLOR="black"]S1dSliceRenice[/COLOR][/COLOR][/B]
#!/system/bin/sh
##########################################################
# Renice processes at wake a.k.a. Loopy Smoothness Tweak #
##########################################################
for n in 1 2
do
USER_LAUNCHER="com.mobint.hololauncher" # Change this to your launcher app #
USER_INPUT_METHOD="com.nuance.swype.input" #Change this to your keyboard app #
################################## ##################################
# Common Launchers # # Common Keyboards #
# ---------------- # # ---------------- #
# com.sec.android.app.twlauncher # # com.swype.android.inputmethod #
# org.adwfreak.launcher # # com.touchtype.swiftkey #
# org.zeam.core # # com.cootek.smartinputv5 #
# com.gau.go.launcherex # # com.dasur.slideit.vt.lite #
################################## ##################################
###################################################
NUMBER_OF_CHECKS=60 # Total number of rechecks before ending 1st loop #
# ----------------------------------------------- #
SLEEP_TIME=3 # Number of seconds between re-checking processes #
#------------------------------------------------ #
PROCESSES_TOTAL=20 # Must be edited to match the #
# number of processes to be checked #
# ----------------------------------------------- #
DEBUG_ECHO=1 # Debug: ON (1) / OFF (0) #
# ----------------------------------------------- #
CHECK_COUNT=0 # DON'T EDIT!!!! DON'T EDIT!!!! DON'T EDIT!!!! #
# ----------------------------------------------- #
P_CHECK=0 # DON'T EDIT!!!! DON'T EDIT!!!! DON'T EDIT!!!! #
# ----------------------------------------------- #
CHECK_OK=0 # UN-USED ^('_')^ #
###################################################
PROCESS_1=0; PROCESS_2=0; PROCESS_3=0; PROCESS_4=0; PROCESS_5=0; PROCESS_6=0;
PROCESS_7=0; PROCESS_8=0; PROCESS_9=0; PROCESS_10=0; PROCESS_11=0; PROCESS_12=0;
PROCESS_13=0; PROCESS_14=0; PROCESS_15=0; PROCESS_16=0; PROCESS_17=0; PROCESS_18=0;
PROCESS_19=0; PROCESS_20=0; PROCESS_21=0; PROCESS_22=0; PROCESS_23=0; PROCESS_24=0;
if [ $n -eq "1" ]; then
if [ $DEBUG_ECHO -eq "1" ]; then
echo ""
echo "LST Debug: $(date)"
echo "LST Debug: Initiate"
fi;
#######################################################################
# Pause and then loop until kswapd0 is found, which should be instant #
#######################################################################
sleep 1
SWAP_SLEEP_TIME=3; SWAP_NUMBER_OF_CHECKS=30; SWAP_CHECK_COUNT=0; SWAP_CHECK_COUNT_OK=0; while [ $SWAP_CHECK_COUNT -lt $SWAP_NUMBER_OF_CHECKS ]; do if [ `pidof kswapd0` ]; then renice 19 `pidof kswapd0`; SWAP_CHECK_COUNT=$SWAP_NUMBER_OF_CHECKS; SWAP_CHECK_COUNT_OK=1; else sleep $SWAP_SLEEP_TIME; fi; SWAP_CHECK_COUNT=`expr $SWAP_CHECK_COUNT + 1`; done; if [ $SWAP_CHECK_COUNT_OK -lt 1 ]; then echo "LST Debug: 'kswapd0' expired after `expr $SWAP_CHECK_COUNT \* $SWAP_SLEEP_TIME` seconds"; fi;
if [ $DEBUG_ECHO -eq "1" ]; then
echo "LST Debug: $(date)";
echo "LST Debug: kswapd0 found";
fi;
fi;
###############################
# Check briefly one more time #
###############################
if [ $n -eq "2" ]; then
if [ $DEBUG_ECHO -eq "1" ]; then
echo "LST Debug: 2nd loop"
fi; ##################
NUMBER_OF_CHECKS=6 # DON'T EDIT!!!! #
SLEEP_TIME=5 # DON'T EDIT!!!! #
fi; ##################
while [ $CHECK_COUNT -lt $NUMBER_OF_CHECKS ];
do
########################
# Resident system apps #
# -------------------- #
# (No Need To Edit) #
########################
if [ $PROCESS_1 -eq "0" ]; then PNAME="com.android.phone"; NICELEVEL=-20; if [ `pidof $PNAME` ]; then renice $NICELEVEL `pidof $PNAME`; PROCESS_1=1; P_CHECK=`expr $P_CHECK + 1`; fi; fi;
if [ $PROCESS_2 -eq "0" ]; then PNAME="com.android.systemui"; NICELEVEL=-18; if [ `pidof $PNAME` ]; then renice $NICELEVEL `pidof $PNAME`; PROCESS_2=1; P_CHECK=`expr $P_CHECK + 1`; fi; fi;
if [ $PROCESS_3 -eq "0" ]; then PNAME="com.android.settings"; NICELEVEL=-18; if [ `pidof $PNAME` ]; then renice $NICELEVEL `pidof $PNAME`; PROCESS_3=1; P_CHECK=`expr $P_CHECK + 1`; fi; fi;
if [ $PROCESS_4 -eq "0" ]; then PNAME="$USER_INPUT_METHOD"; NICELEVEL=-18; if [ `pidof $PNAME` ]; then renice $NICELEVEL `pidof $PNAME`; PROCESS_4=1; P_CHECK=`expr $P_CHECK + 1`; fi; fi;
if [ $PROCESS_5 -eq "0" ]; then PNAME="$USER_LAUNCHER"; NICELEVEL=-18; if [ `pidof $PNAME` ]; then renice $NICELEVEL `pidof $PNAME`; PROCESS_5=1; P_CHECK=`expr $P_CHECK + 1`; fi; fi;
if [ $PROCESS_6 -eq "0" ]; then PNAME="com.android.vending"; NICELEVEL=-18; if [ `pidof $PNAME` ]; then renice $NICELEVEL `pidof $PNAME`; PROCESS_6=1; P_CHECK=`expr $P_CHECK + 1`; fi; fi;
if [ $PROCESS_7 -eq "0" ]; then PNAME="com.android.mms"; NICELEVEL=-19; if [ `pidof $PNAME` ]; then renice $NICELEVEL `pidof $PNAME`; PROCESS_7=1; P_CHECK=`expr $P_CHECK + 1`; fi; fi;
if [ $PROCESS_8 -eq "0" ]; then PNAME="android.process.acore"; NICELEVEL=-3; if [ `pidof $PNAME` ]; then renice $NICELEVEL `pidof $PNAME`; PROCESS_8=1; P_CHECK=`expr $P_CHECK + 1`; fi; fi;
if [ $PROCESS_9 -eq "0" ]; then PNAME="android.process.media"; NICELEVEL=-3; if [ `pidof $PNAME` ]; then renice $NICELEVEL `pidof $PNAME`; PROCESS_9=1; P_CHECK=`expr $P_CHECK + 1`; fi; fi;
#####################
# Other system apps #
#####################
if [ $PROCESS_10 -eq "0" ]; then PNAME="com.sec.android.app.dialertab"; NICELEVEL=-19; if [ `pidof $PNAME` ]; then renice $NICELEVEL `pidof $PNAME`; PROCESS_10=1; P_CHECK=`expr $P_CHECK + 1`; fi; fi;
if [ $PROCESS_11 -eq "0" ]; then PNAME="com.sec.android.app.samsungapps"; NICELEVEL=-19; if [ `pidof $PNAME` ]; then renice $NICELEVEL `pidof $PNAME`; PROCESS_11=1; P_CHECK=`expr $P_CHECK + 1`; fi; fi;
if [ $PROCESS_12 -eq "0" ]; then PNAME="com.sec.android.app.controlpanel"; NICELEVEL=-18; if [ `pidof $PNAME` ]; then renice $NICELEVEL `pidof $PNAME`; PROCESS_12=1; P_CHECK=`expr $P_CHECK + 1`; fi; fi;
if [ $PROCESS_13 -eq "0" ]; then PNAME="com.sec.android.app.camera"; NICELEVEL=-6; if [ `pidof $PNAME` ]; then renice $NICELEVEL `pidof $PNAME`; PROCESS_13=1; P_CHECK=`expr $P_CHECK + 1`; fi; fi;
##############
# Other apps #
##############
if [ $PROCESS_14 -eq "0" ]; then PNAME="com.android.tsm_parts"; NICELEVEL=-15; if [ `pidof $PNAME` ]; then renice $NICELEVEL `pidof $PNAME`; PROCESS_14=1; P_CHECK=`expr $P_CHECK + 1`; fi; fi;
if [ $PROCESS_15 -eq "0" ]; then PNAME="os.tools.scriptmanager"; NICELEVEL=-15; if [ `pidof $PNAME` ]; then renice $NICELEVEL `pidof $PNAME`; PROCESS_15=1; P_CHECK=`expr $P_CHECK + 1`; fi; fi;
if [ $PROCESS_16 -eq "0" ]; then PNAME="com.mobint.locker"; NICELEVEL=-15; if [ `pidof $PNAME` ]; then renice $NICELEVEL `pidof $PNAME`; PROCESS_16=1; P_CHECK=`expr $P_CHECK + 1`; fi; fi;
if [ $PROCESS_17 -eq "0" ]; then PNAME="com.android.browser"; NICELEVEL=-9; if [ `pidof $PNAME` ]; then renice $NICELEVEL `pidof $PNAME`; PROCESS_17=1; P_CHECK=`expr $P_CHECK + 1`; fi; fi;
if [ $PROCESS_18 -eq "0" ]; then PNAME="com.google.android.youtube"; NICELEVEL=-6; if [ `pidof $PNAME` ]; then renice $NICELEVEL `pidof $PNAME`; PROCESS_18=1; P_CHECK=`expr $P_CHECK + 1`; fi; fi;
if [ $PROCESS_19 -eq "0" ]; then PNAME="com.google.android.apps.maps"; NICELEVEL=-6; if [ `pidof $PNAME` ]; then renice $NICELEVEL `pidof $PNAME`; PROCESS_19=1; P_CHECK=`expr $P_CHECK + 1`; fi; fi;
if [ $PROCESS_20 -eq "0" ]; then PNAME="pidof kondemand/0"; NICELEVEL=19; if [ `pidof $PNAME` ]; then renice $NICELEVEL `pidof $PNAME`; PROCESS_20=1; P_CHECK=`expr $P_CHECK + 1`; fi; fi;
####################################################
# If all processes are done, loop can finish early #
####################################################
if [ $P_CHECK -ge $PROCESSES_TOTAL ]; then CHECK_COUNT=$NUMBER_OF_CHECKS; else sleep $SLEEP_TIME; fi;
CHECK_COUNT=`expr $CHECK_COUNT + 1`;
done
if [ $DEBUG_ECHO -eq "1" ]; then
echo "LST Debug: $(date)"
if [ $PROCESS_1 -eq "0" ]; then echo "LST Debug: PROCESS_1 expired after `expr $CHECK_COUNT \* $SLEEP_TIME` seconds"; fi;
if [ $PROCESS_2 -eq "0" ]; then echo "LST Debug: PROCESS_2 expired after `expr $CHECK_COUNT \* $SLEEP_TIME` seconds"; fi;
if [ $PROCESS_3 -eq "0" ]; then echo "LST Debug: PROCESS_3 expired after `expr $CHECK_COUNT \* $SLEEP_TIME` seconds"; fi;
if [ $PROCESS_4 -eq "0" ]; then echo "LST Debug: PROCESS_4 expired after `expr $CHECK_COUNT \* $SLEEP_TIME` seconds"; fi;
if [ $PROCESS_5 -eq "0" ]; then echo "LST Debug: PROCESS_5 expired after `expr $CHECK_COUNT \* $SLEEP_TIME` seconds"; fi;
if [ $PROCESS_6 -eq "0" ]; then echo "LST Debug: PROCESS_6 expired after `expr $CHECK_COUNT \* $SLEEP_TIME` seconds"; fi;
if [ $PROCESS_7 -eq "0" ]; then echo "LST Debug: PROCESS_7 expired after `expr $CHECK_COUNT \* $SLEEP_TIME` seconds"; fi;
if [ $PROCESS_8 -eq "0" ]; then echo "LST Debug: PROCESS_8 expired after `expr $CHECK_COUNT \* $SLEEP_TIME` seconds"; fi;
if [ $PROCESS_9 -eq "0" ]; then echo "LST Debug: PROCESS_9 expired after `expr $CHECK_COUNT \* $SLEEP_TIME` seconds"; fi;
if [ $PROCESS_10 -eq "0" ]; then echo "LST Debug: PROCESS_10 expired after `expr $CHECK_COUNT \* $SLEEP_TIME` seconds"; fi;
if [ $PROCESS_11 -eq "0" ]; then echo "LST Debug: PROCESS_11 expired after `expr $CHECK_COUNT \* $SLEEP_TIME` seconds"; fi;
if [ $PROCESS_12 -eq "0" ]; then echo "LST Debug: PROCESS_12 expired after `expr $CHECK_COUNT \* $SLEEP_TIME` seconds"; fi;
if [ $PROCESS_13 -eq "0" ]; then echo "LST Debug: PROCESS_13 expired after `expr $CHECK_COUNT \* $SLEEP_TIME` seconds"; fi;
if [ $PROCESS_14 -eq "0" ]; then echo "LST Debug: PROCESS_14 expired after `expr $CHECK_COUNT \* $SLEEP_TIME` seconds"; fi;
if [ $PROCESS_15 -eq "0" ]; then echo "LST Debug: PROCESS_15 expired after `expr $CHECK_COUNT \* $SLEEP_TIME` seconds"; fi;
if [ $PROCESS_16 -eq "0" ]; then echo "LST Debug: PROCESS_16 expired after `expr $CHECK_COUNT \* $SLEEP_TIME` seconds"; fi;
if [ $PROCESS_17 -eq "0" ]; then echo "LST Debug: PROCESS_17 expired after `expr $CHECK_COUNT \* $SLEEP_TIME` seconds"; fi;
if [ $PROCESS_18 -eq "0" ]; then echo "LST Debug: PROCESS_18 expired after `expr $CHECK_COUNT \* $SLEEP_TIME` seconds"; fi;
if [ $PROCESS_19 -eq "0" ]; then echo "LST Debug: PROCESS_19 expired after `expr $CHECK_COUNT \* $SLEEP_TIME` seconds"; fi;
if [ $PROCESS_20 -eq "0" ]; then echo "LST Debug: PROCESS_20 expired after `expr $CHECK_COUNT \* $SLEEP_TIME` seconds"; fi;
echo "LST Debug: Checking complete"
fi;
done
if [ $DEBUG_ECHO -eq "1" ]; then
echo "LST Debug: Done"
echo ""
fi;
build.prop
[ Updated 11.12.12 ]
Code:
[B][COLOR="Red"]Added at the end of the defalut [COLOR="black"]build.prop[/COLOR][/COLOR][/B]
##################################
# Random tweaks I've come across #
# - dSlice - #
##################################
# Force launcher into memory
ro.HOME_APP_ADJ=1
# Raise JPG quality to 100%
ro.media.enc.jpeg.quality=100
# VM Heapsize
dalvik.vm.heapsize=48m
# Render UI with GPU
debug.sf.hw=1
# Decrease dialing out delay
ro.telephony.call_ring.delay=0
# Helps scrolling responsiveness
windowsmgr.max_events_per_sec=150
# Save battery
wifi.supplicant_scan_interval=180
pm.sleep_mode=1
ro.ril.disable.power.collapse=0
# Disable debugging notify icon on statusbar
persist.adb.notify=0
# Increase overall touch responsiveness
debug.performance.tuning=1
video.accelerate.hw=1
# Raise photo and video recording quality
ro.media.dec.jpeg.memcap=8000000
ro.media.enc.hprof.vid.bps=8000000
# Signal (3G) tweaks
ro.ril.hsxpa=2
ro.ril.gprsclass=10
ro.ril.hep=1
ro.ril.enable.dtm=1
ro.ril.hsdpa.category=10
ro.ril.enable.a53=1
ro.ril.enable.3g.prefix=1
ro.ril.htcmaskw1.bitmask=4294967295
ro.ril.htcmaskw1=14449
ro.ril.hsupa.category=5
# Net speed tweaks
net.tcp.buffersize.default=4096,87380,256960,4096,16384,256960
net.tcp.buffersize.wifi=4096,87380,256960,4096,16384,256960
net.tcp.buffersize.umts=4096,87380,256960,4096,16384,256960
net.tcp.buffersize.gprs=4096,87380,256960,4096,16384,256960
net.tcp.buffersize.edge=4096,87380,256960,4096,16384,256960
# Disable blackscreen issue after a call
ro.lge.proximity.delay=25
mot.proximity.delay=25
# Fix some application issues
ro.kernel.android.checkjni=0
# Disable boot animation for faster boot
debug.sf.nobootanimation=1
# Miscellaneous flags
ro.config.hw_menu_unlockscreen=false
persist.sys.use_dithering=1
persist.sys.purgeable_assets=1
dalvik.vm.dexopt-flags=m=y
ro.mot.eri.losalert.delay=1000
le_assets=1
ri.losalert.delay=1000
###########
# UPDATES #
# 11.12 #
# .12 #
###########
# Performance Tweaks
ro.foreground_app_mem=1280
ro.visible_app_mem=2560
ro.perceptible_app_mem=3840
ro.heavy_weight_app_mem=6400
ro.secondary_server_mem=7680
ro.backup_app_mem=8960
ro.home_app_mem=2048
ro.hidden_app_mem=12800
ro.content_provider_mem=15360
ro.empty_app_mem=20480
ro.foreground_app_adj=0
ro.visible_app_adj=1
ro.perceptible_app_adj=2
ro.heavy_weight_app_adj=4
ro.secondary_server_adj=5
ro.backup_app_adj=6
ro.home_app_adj=1
ro.hidden_app_min_adj=7
setprop ro.empty_app_adj=15
# Memory
dalvik.vm.startheapsize=8m
# Disable kernel error checking
ro.kernel.checkjni=0
# Scrolling speed
ro.max.fling_velocity=12000
ro.min.fling_velocity=8000
# Smoother video streaming
media.stagefright.enable-player=true
media.stagefright.enable-meta=true
media.stagefright.enable-scan=false
media.stagefright.enable-http=true
gps.conf
[ Updated 11.9.12 ]
Code:
[B][COLOR="Red"]These will replace the defalut [COLOR="black"]gps.conf[/COLOR][/COLOR][/B]
### Credit goes to crypted @
### http://forum.xda-developers.com/showthread.php?t=1250226
### for this brilliant work and shrike1978 for sharing it.
##################################################
### NTP IS NETWORK TIME PROTOCOL AND PROVIDES ###
### A TIME-HACK TO DEVICES THAT HAVE SYNCING ###
### MADE READLIY POSSIBLE. MANY XDA PATCHES ###
### MISINTERPRET WHAT NTP IS AND IMPORTANCE. ###
### NTP PACKETS HAVE BUILT-IN MECHANISMS FOR ###
### TRANSMISSION LOSS. NTP PACKETS ARE VERY ###
### SMALL. LASTLY, NTP MATTERS FOR PARSING ###
### THE XTRA.BIN. BUT, IT ONLY MATTERS WHEN ###
### YOUR DEVICE HAS ITS TIME EXTREMELY OFFSET ###
### COMPARED TO REALITY. THUS, I BUILT THIS ###
### PATCH FOR WORLDWIDE OPERATION. RARELY ###
### WOULD LOCAL NTP SERVERS BE REQUIRED. ###
##################################################
NTP_SERVER=ntp.derekgordon.com
###
##################################################
### AGPS AND XTRA TELL THE AGPS DAEMON WHERE ###
### IT MAY LOCATE THE AGPS DATA. THE DATA ###
### OPERATES AS AN ALMANAC WITH THE LOCATION ###
### OF GPS SATS STORED WITHIN IT. THIS DATA ###
### IS ONLY VALID FOR 24 HOURS. IT WILL BE ###
### DOWNLOADED AND CACHED. IT IS NO LONGER ###
### KEPT IN THE /DATA/ PARTITION PERMANENTLY. ###
### THERE IS NO POINT TO KEEP IT THERE! ###
##################################################
### MY SERVER PROCESSES THE XTRA.BIN EVERY 30 ###
### MINUTES. TYPICALLY IT UPDATES EVERY HOUR ###
### WHEN NEW DATA IS AVAILABLE. ###
### SHOULD MY SERVER BECOME OVERLOADED, I WILL ###
### NEED DONATIONS TO KEEP THIS SUCKER STORED ###
### AT MORE LOCATIONS. ###
##################################################
AGPS=http://derekgordon.com/gps-files/bin/xtra.bin
XTRA_SERVER_1=http://derekgordon.com/gps-files/bin/xtra.bin
XTRA_SERVER_2=http://xtra3.gpsonextra.net/xtra.bin
XTRA_SERVER_3=http://xtra2.gpsonextra.net/xtra.bin
###
##################################################
### NOT GOING TO GO INTO DETAIL HERE. THESE ###
### NEED TO BE CALLED FIRST IN GPS DAEMON ###
### STARTUP. RELATES TO AGPS AND SUPL. ###
##################################################
DEFAULT_AGPS_ENABLE=TRUE
DEFAULT_USER_PLANE=TRUE
DEFAULT_SSL_ENABLE=FALSE
###
##################################################
### INTERMEDIATE POS RELATES TO USING GPS DATA ###
### FROM SATS THAT ARE NOT FULLY LOCKED. ###
### THE ACCURACY VARIABLE IS A THRESHOLD MAX ###
### ON DEVIATIONS FROM THE ASSUMED LOCATION ###
### WHERE THE DEVICE WILL DISCARD DATA. ###
### THIS VARIABLE IS =0 IN ALTERNATE BUILDS ###
##################################################
INTERMEDIATE_POS=1
ACCURACY_THRES=3000
###
##################################################
### THIS IS QUALITY OF SERVICE INFORMATION FOR ###
### PROCESSING THE GPS DATA. MOST SHOULD BE ###
### SELF-EXPLANATORY. GPS DATA OUTSIDE THE ###
### ACCURACY AND THRESHOLD RANGE WILL NOT BE ###
### USED WHEN POSITIONING DATA. ###
##################################################
QOS_ACCURACY=50
QOS_TIME_OUT_AGPS=95
QOS_TIME_OUT_STANDALONE=80
QosHorizontalThreshold=1000
QosVerticalThreshold=500
###
##################################################
### THESE VARIABLES RELATE TO AGPS. IT SAYS TO ###
### USE AGPS. THIS WILL NOT BE USED IF YOUR ###
### ROM HAS AGPS DISABLED IN THE CODE. ###
### THE SERVER IP IS FOR AN INTERNAL IP FOR ###
### ACCESSING THE AGPS DAEMONS DATA WHEN IT ###
### IS OPERATIONAL. ###
##################################################
AssistMethodType=1
AgpsUse=1
AgpsServerType=1
AgpsServerIp=3232235555
AgpsMtConf=0
AgpsMtResponseType=1
###
##################################################
### THIS SUPL DATA IS TO MATCH THE SUPLROOTCERT ##
### IF IT IS REQUIRED BY THE SUPL SERVER. ###
##################################################
SUPL_HOST=supl.google.com
SUPL_PORT=7276
#SUPL_SECURE_PORT=7275
SUPL_NO_SECURE_PORT=3425
#SUPL_TLS_HOST=FQDN
#SUPL_TLS_CERT=/etc/SuplRootCert
REPORT_POSITION_USE_SUPL_REFLOC=1
###
####################################################
### Carrier tags used universally in GPS configs ###
####################################################
CURRENT_CARRIER=common
PHONE_TYPE=UMTS
###
Script Manager Scripts
These are from V6 SuperCharger that Zeppelinrox made
Fast Engine Flush (Clears Cache and Frees RAM)
Detailing (Defrags the system)
Super Clean (Wipes Dalvik Cache)
These work great as a Script Manager Widget. All you have to do is click it and you are good.
Install Instructions:
1. Download from the links below
2. Place on root of SD Card or create a folder called Scripts on SD Card
3. Open Script Mananger
4. Locate scripts
5. Click on script
6. Click Fav (Star) and Su (Skull and Cross bones)
7. Click Save
8. Repeat 4 - 7 for additional scripts.
9. Go Home
10. Add a new widget to your desired home screen.
11. Select SMWidgets
12. Select script
13. Repeat 9 - 12 for additional scripts.
14. Enjoy!
Click to expand...
Click to collapse
If you come across any others left me know and I'll add it in(with credit of course). That is all. Have fun! :good:
- dSlice
For those who want to do thier own editing... USER BEWARE, USE AT YOUR OWN RISK
Downloads:
init.d Install instructions
S2dSliceTweaks
1. Open Terminal
2. Type 'su' (Without the quotes.)
3. Type 'tweaktools' (Without the quotes.)
4. Type 3
5. Type 1
6. Type 5
7. Type 1
8. Enjoy!
Click to expand...
Click to collapse
S1dSliceRenice
1. Open Terminal
2. Type 'su' (Without the quotes.)
3. Type 'tweaktools' (Without the quotes.)
4. Type 3
5. Type 1
6. Type 6
7. Type 1
8. Enjoy!
Click to expand...
Click to collapse
build.prop Install instructions
1. Open Terminal
2. Type 'su' (Without the quotes.)
3. Type 'tweaktools' (Without the quotes.)
4. Type 5
5. Type 2
6. Type 3
7. Type 2
8. Enjoy!
Click to expand...
Click to collapse
gps.conf Install Instructions
1. Open Terminal
2. Type 'su' (Without the quotes.)
3. Type 'tweaktools' (Without the quotes.)
4. Type 3
5. Type 2
6. Type 2
7. Type 1
8. Enjoy!
Click to expand...
Click to collapse
Script Manager Scripts
Download to the root of your SD Card or put into a folder on SD Card (ie. Scripts).
Fast Engine Flush
https://www.dropbox.com/s/2uhiahq4ujaz2c0/%21FastEngineFlush.sh
Detailing
https://www.dropbox.com/s/ljtt38cnin86et8/%21Detailing.sh
Super Clean
https://www.dropbox.com/s/zs7novx3d6j0g7o/%21SuperClean.sh
Update Log:
1.4.13
- Cleaned up the post.
- Renamed the tweak file to S2dSliceTweaks and updated it correspond with the new Lazarus Kernel.
- Re-wrote the RENICE file to actually work and tried to make it user friendly also renamed it to S1dSliceRenice.
- Fixed some things in the post.
Click to expand...
Click to collapse
11.26.12
- Cleaned up the post.
Click to expand...
Click to collapse
11.15.12
- Added three Script Manager scripts found in V6 SuperCharger.
Click to expand...
Click to collapse
11.13.12
- A major 77tweaks overhaul! (Reorganized, added / fixed code, implimented Darkly's ZipAlign into the file)
- Added a poll.
Click to expand...
Click to collapse
11.12.12
- Updated OP with download instructions for build.prop / removed link to buld.prop.
Click to expand...
Click to collapse
11.12.12
- Fixed and updated the build.prop (Conflicting VM Heap Sizes) - Thanks to Blackness!
- Modified build.prop (Added Performance, Memory, Kernel, Scrolling Speed, and Smoother Video Streaming Tweaks)
Click to expand...
Click to collapse
11.9.12
- Added newer, better, shinier gps.conf thanks to shrike1978 for pointing it out.
- Added tutorial on how to enable init.d on stock kernel
- Added download link to new gps.conf and link to old gps.conf
- Added a RENICE tutorial.
Click to expand...
Click to collapse
Change Log:
[1.4.13] - Renamed the RENICE and tweaks file, Re-wrote RENICE file, fixed tweaks file for the Lazarus Kernel.
[11.26.12] - Removed download links for: 77tweaks, renice and build.prop.
[11.15.12] - Added three Script Manager scripts found in V6 SuperCharger.
[11.13.12] - New 77tweaks content.
Code:
# Internet Speed Tweaks
#############################
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_dsack;
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 "1" > /proc/sys/net/ipv4/tcp_moderate_rcvbuf;
echo "1" > /proc/sys/net/ipv4/route/flush;
echo "6144" > /proc/sys/net/ipv4/udp_rmem_min;
echo "6144" > /proc/sys/net/ipv4/udp_wmem_min;
echo "1" > /proc/sys/net/ipv4/tcp_rfc1337;
echo "0" > /proc/sys/net/ipv4/ip_no_pmtu_disc;
echo "0" > /proc/sys/net/ipv4/tcp_ecn;
echo "6144 87380 2097152" > /proc/sys/net/ipv4/tcp_wmem;
echo "6144 87380 2097152" > /proc/sys/net/ipv4/tcp_rmem;
echo "1" > /proc/sys/net/ipv4/tcp_fack;
echo "2" > /proc/sys/net/ipv4/tcp_synack_retries;
echo "2" > /proc/sys/net/ipv4/tcp_syn_retries;
echo "1" > /proc/sys/net/ipv4/tcp_no_metrics_save;
echo "1800" > /proc/sys/net/ipv4/tcp_keepalive_time;
echo "0" > /proc/sys/net/ipv4/ip_forward;
echo "0" > /proc/sys/net/ipv4/conf/default/accept_source_route;
echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route;
echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects;
echo "0" > /proc/sys/net/ipv4/conf/default/accept_redirects;
echo "0" > /proc/sys/net/ipv4/conf/all/secure_redirects;
echo "0" > /proc/sys/net/ipv4/conf/default/secure_redirects;
echo "0" > /proc/sys/net/ipv4/ip_dynaddr;
echo "1440000" > /proc/sys/net/ipv4/tcp_max_tw_buckets;
echo "57344 57344 524288" > /proc/sys/net/ipv4/tcp_mem;
echo "1440000" > /proc/sys/net/ipv4/tcp_max_tw_buckets;
echo "2097152" > /proc/sys/net/core/rmem_max;
echo "2097152" > /proc/sys/net/core/wmem_max;
echo "262144" > /proc/sys/net/core/rmem_default;
echo "262144" > /proc/sys/net/core/wmem_default;
echo "20480" > /proc/sys/net/core/optmem_max;
echo "2500" > /proc/sys/net/core/netdev_max_backlog;
echo "50" > /proc/sys/net/unix/max_dgram_qlen;
# VM Management Tweaks
############################
echo 3 > /proc/sys/vm/page-cluster;
echo 3000 > /proc/sys/vm/dirty_expire_centisecs;
echo 500 > /proc/sys/vm/dirty_writeback_centisecs;
echo "5120" > /proc/sys/vm/min_free_kbytes;
echo "0" > /proc/sys/vm/oom_kill_allocating_task;
echo "0" > /proc/sys/vm/panic_on_oom;
echo "35" > /proc/sys/vm/dirty_background_ratio;
echo "70" > /proc/sys/vm/dirty_ratio;
echo "10" > /proc/sys/vm/vfs_cache_pressure;
echo "1" > /proc/sys/vm/overcommit_memory;
echo "4" > /proc/sys/vm/min_free_order_shift;
echo "0" > /proc/sys/vm/laptop_mode;
echo "0" > /proc/sys/vm/block_dump;
echo "1" > /proc/sys/vm/oom_dump_tasks;
# Misc Kernel Tweaks
##########################
echo "500,512000,64,2048" > /proc/sys/kernel/sem;
echo "268435456" > /proc/sys/kernel/shmmax;
echo "2097152" > /proc/sys/kernel/shmall;
echo "4096" > /proc/sys/kernel/shmmni;
echo "2048" > /proc/sys/kernel/msgmni;
echo "64000" > /proc/sys/kernel/msgmax;
echo "30" > /proc/sys/kernel/panic;
echo "0" > /proc/sys/kernel/panic_on_oops;
echo "5000" > /proc/sys/kernel/threads-max;
echo "10" > /proc/sys/fs/lease-break-time;
echo "65536" > /proc/sys/fs/file-max;
# MicroSD Card Speed Tweak
################################
READ_AHEAD_KB="2049"
if [ -e /sys/devices/virtual/bdi/0:18/read_ahead_kb ]; then
echo $READ_AHEAD_KB > /sys/devices/virtual/bdi/0:18/read_ahead_kb
fi
if [ -e /sys/devices/virtual/bdi/179:0/read_ahead_kb ]; then
echo $READ_AHEAD_KB > /sys/devices/virtual/bdi/179:0/read_ahead_kb
fi
if [ -e /sys/devices/virtual/bdi/7:0/read_ahead_kb ]; then
echo $READ_AHEAD_KB > /sys/devices/virtual/bdi/7:0/read_ahead_kb
fi
if [ -e /sys/devices/virtual/bdi/7:1/read_ahead_kb ]; then
echo $READ_AHEAD_KB > /sys/devices/virtual/bdi/7:1/read_ahead_kb
fi
if [ -e /sys/devices/virtual/bdi/7:2/read_ahead_kb ]; then
echo $READ_AHEAD_KB > /sys/devices/virtual/bdi/7:2/read_ahead_kb
fi
if [ -e /sys/devices/virtual/bdi/7:3/read_ahead_kb ]; then
echo $READ_AHEAD_KB > /sys/devices/virtual/bdi/7:3/read_ahead_kb
fi
if [ -e /sys/devices/virtual/bdi/7:4/read_ahead_kb ]; then
echo $READ_AHEAD_KB > /sys/devices/virtual/bdi/7:4/read_ahead_kb
fi
if [ -e /sys/devices/virtual/bdi/7:5/read_ahead_kb ]; then
echo $READ_AHEAD_KB > /sys/devices/virtual/bdi/7:5/read_ahead_kb
fi
if [ -e /sys/devices/virtual/bdi/7:6/read_ahead_kb ]; then
echo $READ_AHEAD_KB > /sys/devices/virtual/bdi/7:6/read_ahead_kb
fi
if [ -e /sys/devices/virtual/bdi/7:7/read_ahead_kb ]; then
echo $READ_AHEAD_KB > /sys/devices/virtual/bdi/7:7/read_ahead_kb
fi
if [ -e /sys/devices/virtual/bdi/default/read_ahead_kb ]; then
echo $READ_AHEAD_KB > /sys/devices/virtual/bdi/default/read_ahead_kb
fi
# Remove Logger
#####################
busybox rm /dev/log/main
# Clear Junk Caches And Junk Data
#######################################
busybox find /data/data -type d -iname "*cache*" -exec busybox rm -f {}/* ';' -exec echo "Cleared {}" ';'
rm -f /data/local/*.apk
rm -f /data/local/tmp/*.apk
rm -f /data/*.log
rm -f /data/log/*.log
rm -f /cache/*.*
rm -f /cache/recovery/*.*
rm -f /data/system/dropbox/*.txt
rm -f /data/backup/pending/*.tmp
rm -f /data/tombstones/*.*
# Disable IO Stats To Reduce Overhead
###########################################
if [ -e $i/queue/iostats ];
then
echo "0" > $i/queue/iostats;
fi;
# SqLite Optimize
#######################
for i in \
`busybox find /data -iname "*.db"`;
do \
/system/xbin/sqlite3 $i 'VACUUM;';
/system/xbin/sqlite3 $i 'REINDEX;';
done;
if [ -d "/dbdata" ]; then
for i in \
`busybox find /dbdata -iname "*.db"`;
do \
/system/xbin/sqlite3 $i 'VACUUM;';
/system/xbin/sqlite3 $i 'REINDEX;';
done;
fi;
if [ -d "/datadata" ]; then
for i in \
`busybox find /datadata -iname "*.db"`;
do \
/system/xbin/sqlite3 $i 'VACUUM;';
/system/xbin/sqlite3 $i 'REINDEX;';
done;
fi;
for i in \
`busybox find /sdcard -iname "*.db"`;
do \
/system/xbin/sqlite3 $i 'VACUUM;';
/system/xbin/sqlite3 $i 'REINDEX;';
done;
# Ram Optimizers, Allows Ram Switching To Gaming And Multitasking
#######################################################################
if [ -e /sys/module/lowmemorykiller/parameters/adj ]; then
echo "0,1,2,4,6,15" > /sys/module/lowmemorykiller/parameters/adj
fi
if [ -e /sys/module/lowmemorykiller/parameters/minfree ]; then
echo "2560,4096,6144,11264,11776,14336" > /sys/module/lowmemorykiller/parameters/minfree
fi
if [ -e /proc/sys/vm/swappiness ]; then
echo "20" > /proc/sys/vm/swappiness
fi
if [ -e /proc/sys/vm/vfs_cache_pressure ]; then
echo "70" > /proc/sys/vm/vfs_cache_pressure
fi
if [ -e /proc/sys/vm/dirty_expire_centisecs ]; then
echo "3000" > /proc/sys/vm/dirty_expire_centisecs
fi
if [ -e /proc/sys/vm/dirty_writeback_centisecs ]; then
echo "500" > /proc/sys/vm/dirty_writeback_centisecs
fi
if [ -e /proc/sys/vm/dirty_ratio ]; then
echo "15" > /proc/sys/vm/dirty_ratio
fi
if [ -e /proc/sys/vm/dirty_background_ratio ]; then
echo "3" > /proc/sys/vm/dirty_background_ratio
fi
# From Darky's Zipalign Tweak
###################################
LOG_FILE=/data/zipalign.log;
ZIPALIGNDB=/data/zipalign.db;
if [ -e $LOG_FILE ]; then
rm $LOG_FILE;
fi;
if [ ! -f $ZIPALIGNDB ]; then
touch $ZIPALIGNDB;
fi;
echo "Starting FV Automatic ZipAlign $( date +"%m-%d-%Y %H:%M:%S" )" | tee -a $LOG_FILE;
for DIR in /system/app /data/app; do
cd $DIR;
for APK in *.apk; do
if [ $APK -ot $ZIPALIGNDB ] && [ $(grep "$DIR/$APK" $ZIPALIGNDB|wc -l) -gt 0 ]; then
echo "Already checked: $DIR/$APK" | tee -a $LOG_FILE;
else
ZIPCHECK=`/system/xbin/zipalign -c -v 4 $APK | grep FAILED | wc -l`;
if [ $ZIPCHECK == "1" ]; then
echo "Now aligning: $DIR/$APK" | tee -a $LOG_FILE;
/system/xbin/zipalign -v -f 4 $APK /data/local/$APK;
busybox mount -o rw,remount /system;
cp -f -p /data/local/$APK $APK;
grep "$DIR/$APK" $ZIPALIGNDB > /dev/null || echo $DIR/$APK >> $ZIPALIGNDB;
else
echo "Already aligned: $DIR/$APK" | tee -a $LOG_FILE;
grep "$DIR/$APK" $ZIPALIGNDB > /dev/null || echo $DIR/$APK >> $ZIPALIGNDB;
fi;
fi;
done;
done;
busybox mount -o ro,remount /system;
touch $ZIPALIGNDB;
echo "Automatic ZipAlign finished at $( date +"%m-%d-%Y %H:%M:%S" )" | tee -a $LOG_FILE;
# Background Process To Optimize Dialer Process
#####################################################
(while [ 1 ];
do
sleep 10;
MAX_PHONE;
done &);
# Remove Lag When Answering Phone Calls
#############################################
MAX_PHONE()
{
pidphone=`pidof com.android.phone`;
if [ $pidphone ]; # Wait for com.android.phone to start;
then
echo -17 > /proc/$pidphone/oom_adj; # exclude com.android.phone from oom-killer;
renice -20 $pidphone; # set highest nice level for com.android.phone;
log -p i -t SSSwitch_v0.8 "*** MAX phone *** set oom_adj(-17) and nice(-20) for com.android.phone";
exit;
else
sleep 5;
MAX_PHONE;
fi;
}
[11.12.12] - Updated OP with download instructions for build.prop / removed link to build.prop.
[11.12.12] - New build.prop edits.
Code:
# Performance Tweaks
ro.foreground_app_mem=1280
ro.visible_app_mem=2560
ro.perceptible_app_mem=3840
ro.heavy_weight_app_mem=6400
ro.secondary_server_mem=7680
ro.backup_app_mem=8960
ro.home_app_mem=2048
ro.hidden_app_mem=12800
ro.content_provider_mem=15360
ro.empty_app_mem=20480
ro.foreground_app_adj=0
ro.visible_app_adj=1
ro.perceptible_app_adj=2
ro.heavy_weight_app_adj=4
ro.secondary_server_adj=5
ro.backup_app_adj=6
ro.home_app_adj=1
ro.hidden_app_min_adj=7
setprop ro.empty_app_adj=15
# Memory
dalvik.vm.startheapsize=8m
# Disable kernel error checking
ro.kernel.checkjni=0
# Scrolling speed
ro.max.fling_velocity=12000
ro.min.fling_velocity=8000
# Smoother video streaming
media.stagefright.enable-player=true
media.stagefright.enable-meta=true
media.stagefright.enable-scan=false
media.stagefright.enable-http=true[/CENTER]
[11.9.12] - Old gps.conf file.
Code:
[B][COLOR="Red"]These will replace the defalut [COLOR="black"]gps.conf[/COLOR][/COLOR][/B]
[U]For improving GPS lock time and signal.[/U]
NTP_SERVER=america.pool.ntp.org
XTRA_SERVER_1=http://xtra1.gpsonextra.net/xtra.bin
XTRA_SERVER_2=http://xtra2.gpsonextra.net/xtra.bin
XTRA_SERVER_3=http://xtra3.gpsonextra.net/xtra.bin
[U]SE supl for A-GPS (better than Nokia's or Google's)[/U]
SUPL_HOST=supl.sonyericsson.com
SUPL_PORT=7275
Download link:
http://db.tt/uaz10Wi7​
​
Have you seen the AGPS patch here? http://forum.xda-developers.com/showthread.php?t=1250226
Grab the Google specific No-SSL version. It's the one I bundle with my Rezound rom, and it's fantastic. He runs his own XTRA servers, updated with fresh data every 30 minutes, and runs his own stratum 2 NTP server just for AGPS. The patch also contains a lot more config tweaks related to AGPS timouts and accuracy requirements. The Rezound GPS isn't bad on it's own, but that gives it into the best GPS performance I've ever seen, including my $350 handheld. It locks in 2 seconds, locks to multiple satellites indoors, gives sub-10ft accuracy, etc. I don't know how well it will do on the Charge, but seeing as how both phones use Qualcomm chipsets, I can't imagine that it wouldn't work for the Charge.
Also... init.d stuff is not officially implemented... yet
dwitherell said:
Also... init.d stuff is not officially implemented... yet
Click to expand...
Click to collapse
I sent you a PM about that...
shrike1978 said:
Have you seen the AGPS patch here? http://forum.xda-developers.com/showthread.php?t=1250226
Grab the Google specific No-SSL version. It's the one I bundle with my Rezound rom, and it's fantastic. He runs his own XTRA servers, updated with fresh data every 30 minutes, and runs his own stratum 2 NTP server just for AGPS. The patch also contains a lot more config tweaks related to AGPS timouts and accuracy requirements. The Rezound GPS isn't bad on it's own, but that gives it into the best GPS performance I've ever seen, including my $350 handheld. It locks in 2 seconds, locks to multiple satellites indoors, gives sub-10ft accuracy, etc. I don't know how well it will do on the Charge, but seeing as how both phones use Qualcomm chipsets, I can't imagine that it wouldn't work for the Charge.
Click to expand...
Click to collapse
No but I have now and will research that. Thanks Shrike!
After enabling init.d... if I want all the 77tweaks...all I need to do is follow the placement stated to install it (/system/etc/init.d) ?
Sent from my SCH-I510 using xda premium
chefthomas99 said:
After enabling init.d... if I want all the 77tweaks...all I need to do is follow the placement stated to install it (/system/etc/init.d) ?
Sent from my SCH-I510 using xda premium
Click to expand...
Click to collapse
That is correct.
Sent from my SCH-I510 using xda premium
Also after putting in the new renice scripts...They will be accessible via tweaktools? Just needing clarification Awesome work!
Or a step by step would be greatly helpful please
"Change based on your needs" what do I do?
Sent from my SCH-I510 using xda premium
---------- Post added at 11:48 AM ---------- Previous post was at 11:22 AM ----------
Might be better off on waiting for the next Tweaked edition.
Sent from my SCH-I510 using xda premium
chefthomas99 said:
Also after putting in the new renice scripts...They will be accessible via tweaktools? Just needing clarification Awesome work!
Or a step by step would be greatly helpful please
"Change based on your needs" what do I do?
Sent from my SCH-I510 using xda premium
---------- Post added at 11:48 AM ---------- Previous post was at 11:22 AM ----------
Might be better off on waiting for the next Tweaked edition.
Sent from my SCH-I510 using xda premium
Click to expand...
Click to collapse
They will be in Tweaktools when 3.1 is released.
I updated the OP with renice instructions.
shrike1978 said:
Have you seen the AGPS patch here? http://forum.xda-developers.com/showthread.php?t=1250226
Grab the Google specific No-SSL version. It's the one I bundle with my Rezound rom, and it's fantastic. He runs his own XTRA servers, updated with fresh data every 30 minutes, and runs his own stratum 2 NTP server just for AGPS. The patch also contains a lot more config tweaks related to AGPS timouts and accuracy requirements. The Rezound GPS isn't bad on it's own, but that gives it into the best GPS performance I've ever seen, including my $350 handheld. It locks in 2 seconds, locks to multiple satellites indoors, gives sub-10ft accuracy, etc. I don't know how well it will do on the Charge, but seeing as how both phones use Qualcomm chipsets, I can't imagine that it wouldn't work for the Charge.
Click to expand...
Click to collapse
First lock took about 10 seconds, second lock was instant. Thanks again shrike!
Sent from my SCH-I510 using xda premium
Just installed with no issues and performed the required 2 reboots. The second reboot was three times faster than any other time I've rebooted. Is this a benefit of the tweaks?
Thanks for contributing to the community! I love that we still have active devs
dSlice said:
First lock took about 10 seconds, second lock was instant. Thanks again shrike!
Sent from my SCH-I510 using xda premium
Click to expand...
Click to collapse
Glad to hear it works well here. I remember GPS being awful and inconsistent on this phone.
Holy crap shrike. On my first go it locked onto 12 sats in 15 seconds on a cloudy day. The thread says the first time takes usually 20 seconds so I'm looking forward to using this over time.
Sent from my SCH-I510 using Tapatalk 2
I did something wrong. I installed init.d then copied 77tweaks and renice into the init.d file. I rebooted it once and it went fine. Then after i replaced the build.prop file with the down loaded one I restarted it and it went into boot loop. At least I guess that's what it is when it turns the Samsung screen off and on and won't go past it. I re-odin'd Tweaked plus cwm and fixed it.
stueycaster said:
I did something wrong. I installed init.d then copied 77tweaks and renice into the init.d file. I rebooted it once and it went fine. Then after i replaced the build.prop file with the down loaded one I restarted it and it went into boot loop. At least I guess that's what it is when it turns the Samsung screen off and on and won't go past it. I re-odin'd Tweaked plus cwm and fixed it.
Click to expand...
Click to collapse
Question for ya, what program are you using to replace the build.prop with?
Sent from my SCH-I510 using xda premium
crovax33 said:
Just installed with no issues and performed the required 2 reboots. The second reboot was three times faster than any other time I've rebooted. Is this a benefit of the tweaks?
Thanks for contributing to the community! I love that we still have active devs
Click to expand...
Click to collapse
Quite possibly...
Sent from my SCH-I510 using xda premium
dSlice said:
Question for ya, what program are you using to replace the build.prop with?
Sent from my SCH-I510 using xda premium
Click to expand...
Click to collapse
Root Explorer.
stueycaster said:
Root Explorer.
Click to expand...
Click to collapse
Hum. Did you mount the system as R/W? Also maybe try using Script Manager and see if that does anything.

Script: Check Samsung ROMs tar.md5 format using Linux/bash

Hi,
The Samsung ODIN .tar.md5 format files contain an embedded md5sum signature for download checking. I found this handy bash script for checking .tar.md5 format for md5sum. Original sources are (thanks to contributors!)
http://stackoverflow.com/questions/...how-to-remove-md5-extension/17751305#17751305
http://stackoverflow.com/questions/...-case-in-bash-shell-scripting/2264435#2264435
I've added lowercase conversion and echoing both signatures, just for checking.
The script (source it and you'll have check_tar_md5 command in your env).
Code:
#! /bin/bash
check_tar_md5 () {
local file="${1:?Required: file to check}"
[[ ! -f "$file" ]] && {
echo "File not found: $file" >&2
return 1
}
local filename="$(basename "$file")"
if [ "${filename##*.}" = md5 ]; then filename="${filename%.*}"; fi;
local md5_line_length=$(printf "%032d *%s\n" 0 "$filename" | wc -c)
local embedded_md5=$(tail -c $md5_line_length "$file" | tr [A-Z] [a-z] | ( read md5 rest; echo $md5 ) )
local actual_md5=$(head -c -$md5_line_length "$file" | md5sum | ( read md5 rest; echo $md5 ) )
echo "Embedded md5: " $embedded_md5
echo "Actual md5: " $actual_md5
if [ $embedded_md5 = $actual_md5 ]; then
echo "$file: OK"
else
echo "$file: FAILED"
return 1
fi
}
[[ ! -z "$1" ]] && check_tar_md5 "$1"

[SCRIPT] Helium server PC download - separation

This is simple linux script I've made to separate all apps from one big zip file made by Helium sever -> PC download. Helium wiki says to don't try to do anything with this file, but I didn't want to restore all that stuff that I've backuped before bootloader unlock on my nexus 4. I'm sure it can be writed better, but it's working
Just place script file and unziped backup folder (must be named "backup") in one directory. After execution of the script everything should be ready to copying to carbon folder on your sd card/internal memory and restoring like after normal backup.
Tested on Ubuntu 14.04.
I'm not responsible for data loss or any other problem. Use at your own risk.
Constructive criticism welcome.
Code:
#!/bin/bash
DIRECTORY='./backup'
if [ -f $DIRECTORY/backup.json ]; then
cp $DIRECTORY/backup.json $DIRECTORY/temp.json
sed -e "s/{\"packages\"://g" $DIRECTORY/temp.json > $DIRECTORY/temp2.json
tr '[]' ' ' < $DIRECTORY/temp2.json | tee $DIRECTORY/temp.json
tr '}' '\n' < $DIRECTORY/temp.json | tee $DIRECTORY/temp2.json
sed -e "s/,{/{/g" $DIRECTORY/temp2.json > $DIRECTORY/temp.json
sed -e 's/^[ \t]*//' $DIRECTORY/temp.json > $DIRECTORY/temp2.json
sed '/^$/d' $DIRECTORY/temp2.json > $DIRECTORY/temp.json
sed 's/\([^|]\)$/\1}/' $DIRECTORY/temp.json > $DIRECTORY/temp_last.json
fi;
count=`ls -1 $DIRECTORY/*.ab 2>/dev/null | wc -l`
if [ $count != 0 ]; then
for i in $DIRECTORY/*.ab ; do
AB=$(basename $i)
mkdir -p $DIRECTORY/${AB%.*}
mv -i $DIRECTORY/$AB $DIRECTORY/${AB%.*}/
if [ -f $DIRECTORY/${AB%.*}.png ]; then
mv -i $DIRECTORY/${AB%.*}.png $DIRECTORY/${AB%.*}/._${AB%.*}.png
fi;
if [ ! -f $DIRECTORY/${AB%.*}/${AB%.*}.json ];then
touch $DIRECTORY/${AB%.*}/${AB%.*}.json
fi;
while read p; do
if [[ "$p" =~ "${AB%.*}" ]]; then
echo "$p" > $DIRECTORY/${AB%.*}/${AB%.*}.json
fi;
done <$DIRECTORY/temp_last.json
done;
fi;
rm $DIRECTORY/temp.json
rm $DIRECTORY/temp2.json
rm $DIRECTORY/temp_last.json
exit;

[UPDATE]MOD][TOOL] oNandroid: a contribution to help make it work in newer devices

Credits to: ameer1234567890
Official Thread:Online Nandroid Backup / Nandroid Backup without re-booting
I wanted to use Ameer's script/app on my new Galaxy S7 but it was not recognized.
I was able to make it work myself by generating the correct patch file using this script:
Code:
mount -o rw,remount /system
echo "dev: size erasesize name" > /system/partlayout4nandroid
cd `find /dev -name by-name`
for d in * ; do
lc=`echo $d | tr [A-Z] [a-z]`
dev=`readlink $d | awk -F/ '{print $NF}'`
hex=$(printf "%07x\n" `dd if=$d of=/dev/null bs=1m 2>&1 | grep bytes | awk '{print $1/1024}'`)
echo "$dev: $hex 0000000 \"$lc\"" >> /system/partlayout4nandroid
done;
mount -o ro,remount /system
I had also to change this line :
Code:
if $bb [ "`$bb cat /system/partlayout4nandroid | $bb egrep "(mtd|mmc|bml|nand|act)"`" != "" ]; then
to
Code:
if $bb [ "`$bb cat /system/partlayout4nandroid | $bb egrep "([B]sda|[/B]mtd|mmc|bml|nand|act)"`" != "" ]; then
Cheers

Categories

Resources