#!/system/bin/sh
# Consolidated T5UN4MI Script
# PrimeDirective, Sonicxml, DHO, Nuclearmistake
# With inspiration from DroidTh3ory

sync
sysrw

#
# Enable Sysctl Tweaks
#
sysctl -p /system/etc/sysctl.conf

#
# Set SD Card Cache
#
if [ -e /sys/devices/virtual/bdi/179:0/read_ahead_kb ]; then
echo 2048 > /sys/devices/virtual/bdi/179:0/read_ahead_kb
fi

#
# Enable KSM
#
echo 1 > /sys/kernel/mm/ksm/run
echo 1200 > /sys/kernel/mm/ksm/sleep_millisecs
echo 256 > /sys/kernel/mm/ksm/pages_to_scan

#RQ_Affinity
echo 1 > /sys/block/dm-0/queue/rq_affinity
echo 1 > /sys/block/dm-1/queue/rq_affinity
echo 1 > /sys/block/dm-2/queue/rq_affinity
echo 1 > /sys/block/loop0/queue/rq_affinity
echo 1 > /sys/block/loop1/queue/rq_affinity
echo 1 > /sys/block/loop2/queue/rq_affinity
echo 1 > /sys/block/loop3/queue/rq_affinity
echo 1 > /sys/block/loop4/queue/rq_affinity
echo 1 > /sys/block/loop5/queue/rq_affinity
echo 1 > /sys/block/loop6/queue/rq_affinity
echo 1 > /sys/block/loop7/queue/rq_affinity
echo 1 > /sys/block/mmcblk0/queue/rq_affinity
echo 1 > /sys/block/mmcblk0boot0/queue/rq_affinity
echo 1 > /sys/block/mmcblk0boot1/queue/rq_affinity
echo 1 > /sys/block/mtdblock0/queue/rq_affinity
echo 1 > /sys/block/ram0/queue/rq_affinity
echo 1 > /sys/block/ram1/queue/rq_affinity
echo 1 > /sys/block/ram2/queue/rq_affinity
echo 1 > /sys/block/ram3/queue/rq_affinity
echo 1 > /sys/block/ram4/queue/rq_affinity
echo 1 > /sys/block/ram5/queue/rq_affinity
echo 1 > /sys/block/ram6/queue/rq_affinity
echo 1 > /sys/block/ram7/queue/rq_affinity
echo 1 > /sys/block/ram8/queue/rq_affinity
echo 1 > /sys/block/ram9/queue/rq_affinity
echo 1 > /sys/block/ram10/queue/rq_affinity
echo 1 > /sys/block/ram11/queue/rq_affinity
echo 1 > /sys/block/ram12/queue/rq_affinity
echo 1 > /sys/block/ram13/queue/rq_affinity
echo 1 > /sys/block/ram14/queue/rq_affinity
echo 1 > /sys/block/ram15/queue/rq_affinity

#
# Sysctl & VM Tweaks
#
busybox sysctl -w vm.page-cluster=3
busybox sysctl -w vm.drop_caches=3
busybox sysctl -w vm.dirty_expire_centisecs=750
busybox sysctl -w vm.dirty_writeback_centisecs=1500
busybox sysctl -w kernel.random.write_wakeup_threshold=256
busybox sysctl -w kernel.random.read_wakeup_threshold=128
busybox sysctl -w kernel.panic=0
busybox sysctl -w kernel.panic_on_oops=1
busybox sysctl -w kernel.msgmni=2048
busybox sysctl -w kernel.msgmax=64000
busybox sysctl -w kernel.shmmax=268435500
busybox sysctl -w kernel.sem=500,512000,64,2048
busybox sysctl -w kernel.sched_child_runs_first=0
busybox sysctl -w kernel.threads-max=525810
echo "1" > /proc/sys/vm/laptop_mode


#
# File System Tweaks & Cleanup
#
busybox mount -o remount,noatime,nodiratime,discard,noauto_da_alloc,nodev -t auto /
busybox mount -o remount,noatime,nodiratime,discard,noauto_da_alloc,nodev -t auto /dev
busybox mount -o remount,noatime,nodiratime,discard,noauto_da_alloc,nodev -t auto /proc
busybox mount -o remount,noatime,nodiratime,discard,noauto_da_alloc,nodev -t auto /sys
busybox mount -o remount,noatime,nodiratime,discard,noauto_da_alloc,nodev -t auto /system
busybox mount -o remount,noatime,nodiratime,discard,noauto_da_alloc,nodev -t auto /data
busybox mount -o remount,noatime,nodiratime,discard,noauto_da_alloc,nodev -t auto /data/data
busybox mount -o remount,noatime,nodiratime,discard,noauto_da_alloc,nodev -t auto /cache
busybox mount -o remount,noatime,nodiratime,discard,noauto_da_alloc,nodev -t auto /acct
busybox mount -o remount,noatime,nodiratime,discard,noauto_da_alloc,nodev -t auto /dev/pts
busybox mount -o remount,noatime,nodiratime,discard,noauto_da_alloc,nodev -t auto /dev/cpuctl
busybox mount -o remount,noatime,nodiratime,discard,noauto_da_alloc,nodev -t auto /mnt/asec
busybox mount -o remount,noatime,nodiratime,discard,noauto_da_alloc,nodev -t auto /mnt/obb
busybox mount -o remount,noatime,nodiratime,discard,noauto_da_alloc,nodev -t auto /storage/sdcard0
echo "10" > /proc/sys/fs/lease-break-time

#
# Network Optimizations
#
echo 0 > /proc/sys/net/ipv4/tcp_timestamps
echo 1 > /proc/sys/net/ipv4/tcp_no_metrics_save
