[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