分类 开发随笔 下的文章

为了不影响观看体验,已经将官方的注释删除

    PROGDIR="/usr/local/ddos" #ELF可执行文件的位置
    PROG="/usr/local/ddos/ddos.sh" #脚本的位置
    IGNORE_IP_LIST="/usr/local/ddos/ignore.ip.list" #白名单的位置,nano到这个位置即可修改,默认有127.0.0.1
    CRON="/etc/cron.d/ddos.cron" #定时执行任务(CRON)的文件
    APF="/etc/apf/apf" #APF(Advanced Policy Firewall)的可执行文件位置
    IPT="/sbin/iptables" #iptables的可执行文件位置
    
    FREQ=1 #检查时间(单位:分钟)(默认1分钟一次) 
    
    NO_OF_CONNECTIONS=150 #每分钟超过多少连接数自动拉黑(默认150次)维持默认即可
    
    APF_BAN=1 #是否使用APF防火墙(CentOS最好使用iptables/所以最好改成0)
    
    KILL=1 #是否开启防御(布尔值)
    
    EMAIL_TO="E-MAIL ADDRESS" #发现攻击后向邮箱发邮件,填入邮箱即可
    
    BAN_PERIOD=600 #拉黑持续时间(单位:秒)(默认600秒/可按需要修改)

是个很轻量的DDoS防护
安装方法(终端内逐条执行):

    wget http://www.inetbase.com/scripts/ddos/install.sh
    chmod +x install.sh
    ./install.sh

卸载方法(终端内逐条执行):

    wget http://www.inetbase.com/scripts/ddos/uninstall.ddos
    chmod +x uninstall.ddos
    ./uninstall.ddos

配置文件分析有空再说#(笑)
默默埋下坑

算了还是立即就写吧,Links

N在ConnectivityManager方面的API变动很大。其中在移动流量部分多了个流量节省程序(不是Chrome里面那个经Google服务器中转的那个,那个国内没法用)
可以在设置下,流量使用情况里面可以开启或关闭这个功能。开启后(默认是允许后台数据),会有一个AppList,让你选择不限制数据使用的APP。如果想要关闭后台数据,可以在流量使用情况里开关后台数据。
那今天就来谈谈InWall环境下,开启DataSaver后后台流量以及推送的处理
开始有些特别处理,比如在流量节省程序开之后,关了后台数据,后台就无法连接网络,这时我们就需要启动界面时请求开启,intent需要设置一个data也就是所在程序的包名

   intent=new Intent(Settings.ACTION_IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS);
        Uri uri = Uri.parse("package:com.demo.napi.DataSaver"); intent.setData(uri); startActivity(intent);

写接收器来监听流量节省开关事件。以下是我的测试结果。

        class MyReceiver extends BroadcastReceiver{
        @Override
        public void onReceive(Context context, Intent intent) {
            Log.d("MainActivity","onReceive "+ intent.getAction());
            ConnectivityManager manager = (ConnectivityManager) context.getSystemService(CONNECTIVITY_SERVICE);
            boolean isNetworkMetered =  manager.isActiveNetworkMetered();
            Log.d("MainActivity","isNetworkMetered = "+ isNetworkMetered);
            if(isNetworkMetered){
                Log.d("MainActivity","getRestrictBackgroundStatus = "+ manager.getRestrictBackgroundStatus());
                switch (manager.getRestrictBackgroundStatus()){
                    case ConnectivityManager.RESTRICT_BACKGROUND_STATUS_DISABLED:
                        //关闭了流量节省,流量不限制。
                        break;
                    case ConnectivityManager.RESTRICT_BACKGROUND_STATUS_ENABLED:
                        //开启了流量节省或者流量节省开启的状态下允许后台数据由关到开。这时服务里后台运行的流量不可以使用,假如程序不是活动,甚至数据也不可以使用。
                        break;
                    case ConnectivityManager.RESTRICT_BACKGROUND_STATUS_WHITELISTED:
                        //流量节省开启的状态下,不限制后台数据开启了,这时流量可以使用,即使程序切到后台,活动变为虚,数据也可以使用。
                        break;
                }
            }
        }
    }

再注册一下接收器

    registerReceiver(DataSaverReceiver(),
             newIntentFilter(ConnectivityManager.ACTION_RESTRICT_BACKGROUND_CHANGED));

自己尝试了下,觉得不难理解,觉得如果利用好,这个api在国内一样能有大用处,不过。。。某些国内主流软件还在使用4.0的API(不不不,我不是针对各大Bank),普及起来,难度很大啊!

本文恢复自本站2016年11月7日时的备份,仅供阅读本人黑历史之用,其中的资料或链接可能已过时或失效,敬请见谅

版本辨别:
1.AOSP/EMUI等采用的com.google.webview
最新版本:54
可以经由Play直接升级
2.CM/MK/Silm等所采用的com.android.webview
最新版本:51
以下讲讲如何升级再编译版的Webview
这个Webview许多OS自带的版本仅仅只有42,html5低的很,但是由于是重编译版,so。。。更新速度感人!
CM的WebviewGituhub站:GitHub/CMWebview
下载时记得选对指令集:)
如果你硬要让使用重编译的webview框架使用Google版,请使用:强行Google Webview
但是请注意!千万不要使用幸运破解器的整合系统更新!重启后会导致几乎所有调用Webview的APP全局go die!千万不要大死!