读书频道 > 网站 > 网页设计 > 深入理解Android:Wi-Fi、NFC和GPS卷
2.3.2 CommandListener构造函数和测试工具ndc
14-05-23    奋斗的小年轻
收藏    我要投稿   
本书是经典畅销书深入理解Android系列的新作,由资深Android系统专家邓凡平先生撰写。从通信专业知识和Android系统代码实现的角度,对Netd、Wi-Fi、NFC和GPS等模块的代码进行深入的剖析,旨在深刻揭示其实现原理立即去当当网订购

本节将介绍CL的构造函数以及Netd的测试工具ndc。

1.CL构造函数

在前文的2.2.3节中已经介绍了CL构造函数的前半部分,下面接着介绍CL构造函数的后半部分,代码如下所示。
[-->CommandListener::CommandListener构造函数]
CommandListener::CommandListener() :
              FrameworkListener("netd", true) {
     ......// 创建命令和命令控制对象

    // 初始化iptables中的各个Table及相应Chain和Rules
    // createChildChains第一个参数用于指明针对IPv4还是IPv6
    createChildChains(V4V6, "filter", "INPUT", FILTER_INPUT);
    createChildChains(V4V6, "filter", "FORWARD", FILTER_FORWARD);
    createChildChains(V4V6, "filter", "OUTPUT", FILTER_OUTPUT);
    createChildChains(V4V6, "raw", "PREROUTING", RAW_PREROUTING);
    createChildChains(V4V6, "mangle", "POSTROUTING", MANGLE_POSTROUTING);
    createChildChains(V4, "nat", "PREROUTING", NAT_PREROUTING);
    createChildChains(V4, "nat", "POSTROUTING", NAT_POSTROUTING);

    // 4.2以后,Netd允许OEM厂商可自定义一些规则
    // 这些规则在/system/bin/oem-iptables-init.sh文件中保存
    setupOemIptablesHook();
    // 初始化iptables中的一些chain,以及初始化路由表
    sFirewallCtrl->setupIptablesHooks();
    sNatCtrl->setupIptablesHooks();
    sBandwidthCtrl->setupIptablesHooks();
    sIdletimerCtrl->setupIptablesHooks();
    // 初始时,Netd将禁止带宽控制功能
    sBandwidthCtrl->enableBandwidthControl(false);

由上述代码可知,CL构造函数的后半部分工作主要是利用iptables等工具创建较多的Chain和Rule,以及对某些命令控制对象进行初始化。

本节将重点关注iptables执行后的效果。图2-13所示为CL构造后,iptable中filter表内所创建的Chain和Rule。


 

图2-13中列出的是filter表中部分Chain的截图,其中,target是目标名,prot是protocol之意,opt是选项,source和destination分别表示数据包的源和目标地址。

bw_INPUT、bw_OUTPUT和bw_FORWARD Chain用于带宽(Bandwidth)控制。

fw_INPUT、fw_OUTPUT和fw_FORWARD用于防火墙(Firewall)控制。

natctrl_FORWARD用于网络地址转换(NAT)控制。

oem_fwd、oem_out用于OEM厂商自定义的控制。

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站