当前位置: 移动技术网 > IT编程>移动开发>Android > Android下基于Iptables的一种app网络访问控制方法(二)

Android下基于Iptables的一种app网络访问控制方法(二)

2018年09月20日  | 移动技术网IT编程  | 我要评论

粘结剂,美人天下片尾曲,夏世莲

3.如何在android中集成?

以上通过adb shell命令行在android设备上将方案调通之后,接下来考虑如何集成在android系统中。作为一个整体解决方案,需要至少解决两部分功能:

(1)网络访问规则。包括规则定义、存储、对外接口、对内转化成iptables命令。

(2)iptables命令执行。

第一部分比较简单,在此不详述。主要看第二部分。

对于某一个垂直功能,android经典的架构一般是由java层的服务和接口、c++层的守护进程、linux内核这由上到下的三层架构。网络管理架构也是如此。

java层的服务包括networkmanagementservice/connectivityservice/networkstatsservice等,可以以aidl对外提供接口。c++层的守护进程是netd。

可以在networkmanagementservice和netd扩充接口实现执行iptables命令:

(1)在inetworkmanagementservice.aidl中定义扩充接口。

(2)在networkmanagementservice.java中实现接口。

networkmanagementservice通过一个nativedaemonconnector类的成员变量,与netd通信(通过socket),可以通过这个成员变量向netd发iptables命令。新增加一种命令类型专门处理iptables命令。

(3)在netd中实现对(2)中下发的命令的处理。

commandlistener在netd中负责侦听java层命令。netdconstants中已经有执行iptables命令的接口,可以在此基础上扩展。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网