#!/system/bin/sh

# ---> dtrail (D-WiZ 1.00) (c)2012
#
## JBX-Kernel 2.0 V12_01  (c)*dtrail
# *Based on MR1-JB Kernel (Motorola/STS-Dev-Team/Hashcode)
#
#
# Setting up kernel and memory tweaks
# Shut down nmi watchdog
# slow down kernel latency
#
#
busybox sysctl -e -w fs.file-max=524288;
busybox sysctl -e -w fs.inotify.max_queued_events=32000;
busybox sysctl -e -w fs.inotify.max_user_instances=256;
busybox sysctl -e -w fs.inotify.max_user_watches=10240;
busybox sysctl -e -w fs.lease-break-time=10;
busybox sysctl -e -w kernel.msgmax=65536;
busybox sysctl -e -w kernel.msgmni=4096;
busybox sysctl -e -w kernel.panic=10;
busybox sysctl -e -w kernel.random.read_wakeup_threshold=128;
busybox sysctl -e -w kernel.random.write_wakeup_threshold=256;
busybox sysctl -e -w kernel.sched_latency_ns=20000000;
busybox sysctl -e -w kernel.sched_wakeup_granularity_ns=3000000;
busybox sysctl -e -w kernel.sem='500 512000 64 2048';
busybox sysctl -e -w kernel.shmmax=268435456;
busybox sysctl -e -w kernel.threads-max=524288;
busybox sysctl -e -w net.core.rmem_max=524288;
busybox sysctl -e -w net.core.wmem_max=524288;
busybox sysctl -e -w net.ipv4.tcp_rmem='6144 87380 524288';
busybox sysctl -e -w net.ipv4.tcp_tw_recycle=1;
busybox sysctl -e -w net.ipv4.tcp_wmem='6144 87380 524288';
busybox sysctl -e -w vm.oom_kill_allocating_task=1;
busybox sysctl -e -w vm.dirty_background_ratio=70;
busybox sysctl -e -w vm.dirty_expire_centisecs=1000;
busybox sysctl -e -w vm.dirty_writeback_centisecs=1500;
busybox sysctl -e -w vm.dirty_ratio=95;
busybox sysctl -e -w vm.min_free_kbytes=20480;
busybox sysctl -e -w vm.vfs_cache_pressure=10;
busybox sysctl -e -w vm.panic_on_oom=0;
busybox sysctl -e -w vm.percpu_pagelist_fraction =0;
busybox sysctl -e -w vm.overcommit_memory=1;
busybox sysctl -e -w vm.min_free_order_shift=4;
busybox sysctl -e -w net.ipv4.tcp_congestion_control=cubic;
busybox sysctl -e -w net.ipv4.tcp_timestamps=0;
busybox sysctl -e -w net.ipv4.tcp_sack=1;
busybox sysctl -e -w net.ipv4.tcp_fack=1;
busybox sysctl -e -w net.ipv4.tcp_window_scaling=1;
#
# Re-use sockets in time-wait state
busybox sysctl -e -w net.ipv4.tcp_tw_recycle=1;
busybox sysctl -e -w net.ipv4.tcp_tw_reuse=1;
#
# Hardening the TCP/IP stack to SYN attacks
# See http://www.symantec.com/connect/articles/hardening-tcpip-stack-syn-attacks
busybox sysctl -e -w net.ipv4.tcp_syncookies=1;
busybox sysctl -e -w net.ipv4.conf.all.rp_filter=1;
busybox sysctl -e -w net.ipv4.conf.default.rp_filter=1;
busybox sysctl -e -w net.ipv4.tcp_synack_retries=2;
busybox sysctl -e -w net.ipv4.tcp_syn_retries=2;
busybox sysctl -e -w net.ipv4.tcp_max_syn_backlog=1024;
#
busybox sysctl -e -w net.ipv4.tcp_max_tw_buckets=16384;            # Bump up tw_buckets in case we get DoS'd
busybox sysctl -e -w net.ipv4.icmp_echo_ignore_all=1;              # Ignore pings
busybox sysctl -e -w net.ipv4.icmp_ignore_bogus_error_responses=1; # Enable bad error message protection (should be enabled by default)
busybox sysctl -e -w net.ipv4.tcp_no_metrics_save=1;               # Don't cache ssthresh from previous connection
busybox sysctl -e -w net.ipv4.tcp_fin_timeout=15;
busybox sysctl -e -w net.ipv4.tcp_keepalive_intvl=30;
busybox sysctl -e -w net.ipv4.tcp_keepalive_probes=5;
busybox sysctl -e -w net.ipv4.tcp_keepalive_time=1800;
busybox sysctl -e -w net.ipv4.ip_forward=0;                        # Disable IP Packet forwarding (should be disabled already)
# Don't accept source routing
busybox sysctl -e -w net.ipv4.conf.default.accept_source_route=0 ;
busybox sysctl -e -w net.ipv4.conf.all.accept_source_route=0;
#
# Don't accept redirects
busybox sysctl -e -w net.ipv4.conf.all.accept_redirects=0;
busybox sysctl -e -w net.ipv4.conf.default.accept_redirects=0;
busybox sysctl -e -w net.ipv4.conf.all.secure_redirects=0;
busybox sysctl -e -w net.ipv4.conf.default.secure_redirects=0;
#
setprop profiler.force_disable_err_rpt 1;
setprop profiler.force_disable_ulog 1;
#
echo 0 > /proc/sys/kernel/nmi_watchdog;
echo 1 > /proc/sys/vm/oom_kill_allocating_task;
echo 0 > /proc/sys/vm/laptop_mode;
echo 0 > /proc/sys/vm/panic_on_oom;
echo 60 > /proc/sys/vm/swappiness;
echo 3 > /proc/sys/vm/page-cluster;
