Android下基于Iptables的一种app网络访问控制方案(二)
2018-02-27 18:35
274 查看
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命令的接口,可以在此基础上扩展。
以上通过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命令的接口,可以在此基础上扩展。
相关文章推荐
- Android下基于Iptables的一种app网络访问控制方案(一)
- Android下基于Iptables的一种app网络访问控制方案(二)
- Android下基于Iptables的一种app网络访问控制方案(一)
- android iptables 屏蔽某个app网络访问
- android平台利用iptables控制网络访问
- Android app网络访问控制
- android App中的网络访问
- android 中访问网络介绍 一 (基于httpurlconnection 的中get请求)
- Udp打洞,判断Nat网络类型-一种基于UDP协议实现P2P智能穿越NAT的方案
- 一种基于delphi巧妙权限控制方案及其实现方法
- iptables基于IP地址,端口的访问控制
- OpenStack网络指南(24)基于角色的访问控制 (RBAC)
- 基于网络设备的安全访问控制总结及案例
- Android网络电台的一种实现方案
- 网络资源访问控制(iptables)和常用策略的介绍
- Android 网络电台的一种实现方案
- Android IOS WebRTC 音视频开发总结(五七)-- 网络传输上的一种QoS方案
- 一种基于角色的用户访问控制方法
- Android中基于HTTP协议的网络访问的两种方式
- android 访问网络二 (基于httpurlconnection post)