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

Android下基于Iptables的一种app网络访问控制方案(二)3.如何在Android系统中集成?以上通过adb shell命令行在Android设备上将方案调通之后,接下来考虑如何集成在Android系统中。作为一个整体解决方案,需要至少解决两部分功能:(1)网络访问规则。包括规则定义、存储、对外接口、对内转化成Iptables命令。(2)Iptables命令执行。第一部分比较简单,在此不详述。主要看第二部分。对于某一个垂直功能,And

大家好,又见面了,我是你们的朋友全栈君。

3.如何在Android系统中集成?

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

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

(2)Iptables命令执行。

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

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

Java层的服务包括NetworkManagementService/ConnectivityService/NetworkStatsService等,可以以AIDL对外提供接口。C++层的守护进程是Netd

可以在NetworkManagementServiceNetd扩充接口实现执行Iptables命令:

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

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

NetworkManagementService通过一个NativeDaemonConnector类的成员变量,与Netd通信(通过Socket),可以通过这个成员变量向NetdIptables命令。新增加一种命令类型专门处理Iptables命令。

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

CommandListenerNetd中负责侦听Java层命令。NetdConstants中已经有执行Iptables命令的接口,可以在此基础上扩展。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/163442.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Neutron DVR实现multi-host特性打通东西南北流量提前看(by quqi99)「建议收藏」

    Neutron DVR实现multi-host特性打通东西南北流量提前看(by quqi99)「建议收藏」作者:张华发表于:2014-03-07版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明(http://blog.csdn.net/quqi99)LegacyRoutingandDistributedRouterinNeutron先温习下l3-agent原理:l3-agent节点为所有subnet创建内部网关…

    2022年7月14日
    12
  • ClassIn 退出专注学习模式 关闭专注学习模式「建议收藏」

    ClassIn 退出专注学习模式 关闭专注学习模式「建议收藏」ClassIn是一个常用的在线上课软件,从3.0.2.130开始推出了“专注学习模式”,窗口会全屏且不能切换窗口。可有时我们有其他需要,要退出专注学习模式,这时就要使用其它的方法了。这里提供一个我自己做的小程序。

    2022年5月24日
    101
  • h5 Python_python做h5网站

    h5 Python_python做h5网站(一)HDF与h5  HDF(HierarchicalDataFormat层次数据格式)是一种设计用于存储和组织大量数据的文件格式,最开始由美国国家超算中心研发,后来由一个非盈利组织HDFGroup支持。HDF支持多种商业及非商业的软件平台,包括MATLAB、Java、Python、R和Julia等等,现在也提供了Spark。其版本包括了HDF4和现在大量用的HDF5。h5是HDF5文件格…

    2025年10月17日
    3
  • python输出如何换行_python不换行输入

    python输出如何换行_python不换行输入在我们常用的print()方法进行输出时,通常输出结果是整行显示出来的,这时候我们需要考虑一下,我们输出的结果需不需要换行?python学习网,大量的免费python视频教程,欢迎在线学习!不需要换行的方法也是嗯容易的的,这里就不多赘述了,来说说如何做到输出换行:常用的转义符方式:\n#-*-coding:utf-8-*-A=”来看看能不能\n换行。”print(A)输出结果来看看能不能换行…

    2025年7月18日
    5
  • 聊一聊Zabbix都监控哪些参数

    聊一聊Zabbix都监控哪些参数面试中的话,经常被问到技术方面的问题,也就是知识点的掌握程度,如果你准备充分的话,这个到不难,但一些开放性的东西,你可能答得就不是很好,便来到了我们的正题Zabbix监控哪些参数呢?这个范围是比较大、比较开放的,阔以以点带面的回答,也可概括性的回答,下面列举一些数据库:磁盘使用情况、内存使用情况、并发链接数量 数据库增删改查的频率、主从状态、缓冲池web:web服务是否正常、订单是否能正常下单注册是否正常、服务的响应时间、服务的并发量磁盘:使用率、block数,Inode数

    2022年6月14日
    40
  • 数电——超前进位加法器

    数电——超前进位加法器一、串行(行波)进位加法器进行两个4bit的二进制数相加,就要用到4个全加器。那么在进行加法运算时,首先准备好的是1号全加器的3个input。而2、3、4号全加器的Cin全部来自前一个全加器的Cou

    2022年7月1日
    35

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号