#!/system/bin/sh
: '
 ========= Copyright (C) 2014 The PAC-man Team (The AIO Rom) =========

 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later version.

 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.

 =====================================================================
'

. /data/local/init.d.cfg

if $speedy_modified; then
    MMC=`ls -d /sys/block/mmc*`;
    for q in $MMC; do
        echo "0" >> ${q}/queue/rotational;
        echo "1" >> ${q}/queue/iosched/back_seek_penalty;
        echo "1" >> ${q}/queue/iosched/fifo_batch;
        echo "1" >> ${q}/queue/iosched/low_latency;
        echo "3" >> ${q}/queue/iosched/slice_idle;
        echo "16" >> ${q}/queue/iosched/quantum
        echo "512" >> ${q}/queue/nr_requests;
        echo "1000000000" >> ${q}/queue/iosched/back_seek_max;
    done;

    # UnderUtilized Networking Tweaks
    echo "cubic" >> /proc/sys/net/ipv4/tcp_congestion_control;

    # Enable spoofing protection (turn on reverse packet filtering)
    echo "1" >> /proc/sys/net/ipv4/conf/all/rp_filter;
    echo "1" >> /proc/sys/net/ipv4/conf/default/rp_filter;

    # Don't accept source routing
    echo "0" >> /proc/sys/net/ipv4/conf/all/accept_source_route;
    echo "0" >> /proc/sys/net/ipv4/conf/default/accept_source_route;

    # Ignore all icmp packets or pings
    echo "1" >> /proc/sys/net/ipv4/icmp_echo_ignore_all;
    echo "1" >> /proc/sys/net/ipv6/icmp_echo_ignore_all;

    # Don't pass traffic between networks or act as a router
    echo "0" >> /proc/sys/net/ipv4/ip_forward;
    echo "0" >> /proc/sys/net/ipv4/conf/all/send_redirects;
    echo "0" >> /proc/sys/net/ipv4/conf/default/send_redirects;

    # Don't accept redirects
    echo "0" >> /proc/sys/net/ipv4/conf/all/accept_redirects;
    echo "0" >> /proc/sys/net/ipv4/conf/all/secure_redirects;
    echo "0" >> /proc/sys/net/ipv4/conf/default/accept_redirects;
    echo "0" >> /proc/sys/net/ipv4/conf/default/secure_redirects;

    # Security
    echo "1" >> /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts;
    echo "1" >> /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses;
    echo "1" >> /proc/sys/net/ipv4/tcp_no_metrics_save;
    echo "1024" >> /proc/sys/net/ipv4/tcp_max_syn_backlog;
    echo "15" >> /proc/sys/net/ipv4/tcp_fin_timeout=;
    echo "16384" >> /proc/sys/net/ipv4/tcp_max_tw_buckets;
    echo "1800" >> /proc/sys/net/ipv4/tcp_keepalive_time;
    echo "2" >> /proc/sys/net/ipv4/tcp_syn_retries;
    echo "2" >> /proc/sys/net/ipv4/tcp_synack_retries;
    echo "2" >> /proc/sys/net/ipv4/tcp_syncookies;
    echo "30" >> /proc/sys/net/ipv4/tcp_keepalive_intvl;
    echo "5" >> /proc/sys/net/ipv4/tcp_keepalive_probes;

    # Queue size modifications
    echo "0" >> /proc/sys/net/ipv4/ip_no_pmtu_disc;
    echo "0" >> /proc/sys/net/ipv4/tcp_ecn;
    echo "1" >> /proc/sys/net/ipv4/route.flush;
    echo "1" >> /proc/sys/net/ipv4/tcp_moderate_rcvbuf;
    echo "1" >> /proc/sys/net/ipv4/tcp_rfc1337;
    echo "1" >> /proc/sys/net/ipv4/tcp_window_scaling;
    echo "20480" >> /proc/sys/net/core/optmem_max;
    echo "50" >> /proc/sys/net/unix/max_dgram_qlen;
    echo "6144" >> /proc/sys/net/ipv4/udp_rmem_min;
    echo "6144" >> /proc/sys/net/ipv4/udp_wmem_min;
    echo "524288" >> /proc/sys/net/core/rmem_max;
    echo "524288" >> /proc/sys/net/core/wmem_max;
    echo "6144,87380,1048576" >> /proc/sys/net/ipv4/tcp_mem;
    echo "6144,87380,1048576" >> /proc/sys/net/ipv4/tcp_rmem;
    echo "6144,87380,1048576" >> /proc/sys/net/ipv4/tcp_wmem;

    # Misc
    echo "0" >> /proc/sys/net/ipv4/ip_dynaddr;
    echo "0" >> /proc/sys/net/ipv4/tcp_timestamps;
    echo "1" >> /proc/sys/net/ipv4/tcp_dsack;
    echo "1" >> /proc/sys/net/ipv4/tcp_fack;
    echo "1" >> /proc/sys/net/ipv4/tcp_low_latency;
    echo "1" >> /proc/sys/net/ipv4/tcp_mtu_probing;
    echo "1" >> /proc/sys/net/ipv4/tcp_sack;
    echo "1" >> /proc/sys/net/ipv4/tcp_tw_recycle;
    echo "1" >> /proc/sys/net/ipv4/tcp_tw_reuse;
    echo "1" >> /proc/sys/net/ipv4/tcp_workaround_signed_windows;
    echo "110592" >> /proc/sys/net/core/rmem_defaull;
    echo "110592" >> /proc/sys/net/core/wmem_default;
    echo "2" >> /proc/sys/net/ipv4/tcp_frto;
    echo "2" >> /proc/sys/net/ipv4/tcp_frto_response;
    echo "2" >> /proc/sys/net/ipv6/conf/all/use_tempaddr;
    echo "2" >> /proc/sys/net/ipv6/conf/default/use_tempaddr;
    echo "3600" >> /proc/sys/net/ipv6/conf/all/temp_prefered_lft;
    echo "3600" >> /proc/sys/net/ipv6/conf/default/temp_prefered_lft;

    echo "* Speedy Tweaks Starting At $( date +"%m-%d-%Y %H:%M:%S" )" | tee -a $paclog;
fi;
