Files
anykernel3-rhode/ramdisk/sbin/dvbootscript.sh
T

146 lines
5.6 KiB
Bash
Raw Normal View History

#!/system/bin/sh
# portions from franciscofranco, ak, boype & osm0sis + Franco's Dev Team
# custom busybox installation shortcut
bb=/sbin/bb/busybox;
# disable sysctl.conf to prevent ROM interference with tunables
$bb mount -o rw,remount /system;
$bb [ -e /system/etc/sysctl.conf ] && $bb mv -f /system/etc/sysctl.conf /system/etc/sysctl.conf.dvbak;
# disable the PowerHAL since there is now a kernel-side touch boost implemented
$bb [ -e /system/lib/hw/power.tuna.so.dvbak ] || $bb cp /system/lib/hw/power.tuna.so /system/lib/hw/power.tuna.so.dvbak;
$bb [ -e /system/lib/hw/power.tuna.so ] && $bb rm -f /system/lib/hw/power.tuna.so;
# backup and replace Host AP Daemon for working Wi-Fi tether on 3.4 kernel Wi-Fi drivers
$bb [ -e /system/bin/hostapd.dvbak ] || $bb cp /system/bin/hostapd /system/bin/hostapd.dvbak;
$bb cp -f /sbin/hostapd /system/bin/;
$bb chown root.shell /system/bin/hostapd;
$bb chmod 755 /system/bin/hostapd;
# backup and replace Media Codec Profiles if on SR builds, restore if not, and push init.d script for other kernels
case `uname -r` in
*DirtyV-SR|*SmittyV)
$bb [ -e /system/etc/media_profiles.xml.dvbak ] || $bb cp /system/etc/media_profiles.xml /system/etc/media_profiles.xml.dvbak;
$bb cp -f /sbin/media_profiles.xml /system/etc/;
$bb chmod 644 /system/etc/media_profiles.xml;;
*)
$bb [ -e /system/etc/media_profiles.xml.dvbak ] && $bb mv -f /system/etc/media_profiles.xml.dvbak /system/etc/media_profiles.xml;
$bb chmod 644 /system/etc/media_profiles.xml;;
esac;
$bb cp -f /sbin/dvmediarevert /system/etc/init.d/;
$bb chmod 755 /system/etc/init.d/dvmediarevert;
# create and set permissions for /system/etc/init.d if it doesn't already exist
if [ ! -e /system/etc/init.d ]; then
$bb mkdir /system/etc/init.d;
$bb chown -R root.root /system/etc/init.d;
$bb chmod -R 755 /system/etc/init.d;
fi;
$bb mount -o ro,remount /system;
# fix permissions for any included governors (and older underlying ramdisks)
governor=reset;
while sleep 1; do
current=`cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor`;
if [ $governor != $current ]; then
governor=$current;
for i in /sys/devices/system/cpu/cpufreq/*; do
$bb chown system:system $i/*;
$bb chmod 664 $i/*;
done;
fi;
done&
# disable debugging
echo 0 > /sys/module/wakelock/parameters/debug_mask;
echo 0 > /sys/module/userwakelock/parameters/debug_mask;
echo 0 > /sys/module/earlysuspend/parameters/debug_mask;
echo 0 > /sys/module/alarm/parameters/debug_mask;
echo 0 > /sys/module/alarm_dev/parameters/debug_mask;
echo 0 > /sys/module/binder/parameters/debug_mask;
# suitable configuration to help reduce network latency
echo 2 > /proc/sys/net/ipv4/tcp_ecn;
echo 1 > /proc/sys/net/ipv4/tcp_sack;
echo 1 > /proc/sys/net/ipv4/tcp_dsack;
echo 1 > /proc/sys/net/ipv4/tcp_low_latency;
echo 1 > /proc/sys/net/ipv4/tcp_timestamps;
# reduce txqueuelen to 0 to switch from a packet queue to a byte one
for i in /sys/class/net/*; do
echo 0 > $i/tx_queue_len;
done;
# initialize timer slack
echo 100000000 > /dev/cpuctl/apps/bg_non_interactive/timer_slack.min_slack_ns;
# decrease fs lease time
echo 10 > /proc/sys/fs/lease-break-time;
# tweak for slightly larger kernel entropy pool
echo 128 > /proc/sys/kernel/random/read_wakeup_threshold;
echo 256 > /proc/sys/kernel/random/write_wakeup_threshold;
# disable ASLR
echo 0 > /proc/sys/kernel/randomize_va_space;
# double the default minfree kb
echo 2884 > /proc/sys/vm/min_free_kbytes;
# general queue tweaks
for i in /sys/block/*/queue; do
echo 512 > $i/nr_requests;
echo 512 > $i/read_ahead_kb;
echo 2 > $i/rq_affinity;
echo 0 > $i/nomerges;
echo 0 > $i/add_random;
echo 0 > $i/rotational;
done;
# remount sysfs+sdcard with noatime,nodiratime since that's all they accept
$bb mount -o remount,nosuid,nodev,noatime,nodiratime -t auto /;
$bb mount -o remount,nosuid,nodev,noatime,nodiratime -t auto /proc;
$bb mount -o remount,nosuid,nodev,noatime,nodiratime -t auto /sys;
$bb mount -o remount,nosuid,nodev,noatime,nodiratime -t auto /sys/kernel/debug;
$bb mount -o remount,nosuid,nodev,noatime,nodiratime -t auto /mnt/shell/emulated;
for i in /storage/emulated/*; do
$bb mount -o remount,nosuid,nodev,noatime,nodiratime -t auto $i;
$bb mount -o remount,nosuid,nodev,noatime,nodiratime -t auto $i/Android/obb;
done;
# lmk tweaks for fewer empty background processes
minfree=6144,8192,12288,16384,24576,40960;
lmk=/sys/module/lowmemorykiller/parameters/minfree;
minboot=`cat $lmk`;
while sleep 1; do
if [ `cat $lmk` != $minboot ]; then
[ `cat $lmk` != $minfree ] && echo $minfree > $lmk || exit;
fi;
done&
# wait for systemui and increase its priority
while sleep 1; do
if [ `$bb pidof com.android.systemui` ]; then
systemui=`$bb pidof com.android.systemui`;
$bb renice -18 $systemui;
$bb echo -17 > /proc/$systemui/oom_adj;
$bb chmod 100 /proc/$systemui/oom_adj;
exit;
fi;
done&
# lmk whitelist for common launchers and increase launcher priority
list="com.android.launcher com.google.android.googlequicksearchbox org.adw.launcher org.adwfreak.launcher net.alamoapps.launcher com.anddoes.launcher com.android.lmt com.chrislacy.actionlauncher.pro com.cyanogenmod.trebuchet com.gau.go.launcherex com.gtp.nextlauncher com.miui.mihome2 com.mobint.hololauncher com.mobint.hololauncher.hd com.qihoo360.launcher com.teslacoilsw.launcher com.tsf.shell org.zeam";
while sleep 60; do
for class in $list; do
if [ `$bb pgrep $class | head -n 1` ]; then
launcher=`$bb pgrep $class`;
$bb echo -17 > /proc/$launcher/oom_adj;
$bb chmod 100 /proc/$launcher/oom_adj;
$bb renice -18 $launcher;
fi;
done;
exit;
done&