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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java中sqrt函数的详解[通俗易懂]

    java中sqrt函数的详解[通俗易懂]一、原理:牛顿迭代法具体解释:牛顿迭代法求平方根那我们怎么用牛顿迭代法呢?首先要明白,牛顿迭代法求的是函数和X轴的交点的横坐标,也就是我们说的根1)那么第一步就是构建曲线了。假设有一个数c,我们求它的平方根x,那么有一个等式,x^2=c;挪到一边就是求f= x^2-c的根x2)带入上面的公式也就是 3)既然是个迭代,那么

    2022年5月7日
    80
  • vue字符串转换成日期格式_vue时间戳转换日期格式

    vue字符串转换成日期格式_vue时间戳转换日期格式字符串转date例如(202003)转成标准时间letstr=row.startdate.slice(0,4)+”-“+row.startdate.slice(4,6);letdate=newDate(str);console.log(date);注意这里的str必须是XXXX-XX-XX形式row.startdate.slice(0,4)+“-”+row.startdate.slice(4,6);这个是处理成这样的形式。将

    2022年10月3日
    3
  • pycharm简单案例代码_python简单代码编写

    pycharm简单案例代码_python简单代码编写由于纠结良久,因为不知道从什么地方开始说起。想了想,还是实用主义,主要是教大家用软件编程,所以pycharm的一些功能介绍什么的,大家后续可以自己摸索。毕竟如果专门讲解pycharm的功能,那这篇帖子就完全将pycharm了,没必要。我们的目标是,先学会基本的语言与python编程。好的,不说废话,进入正题!######################首先,我们使用pycharm编程,就需要先创建…

    2022年8月28日
    3
  • Android代码混淆及反编译

    Android代码混淆及反编译如果你目前还是一名学生或是没有在应用商店中上传过应用,恐怕对此的感受不深。而在企业中对Java代码的混淆却是一步很重要的步骤,从安全的角度来说,代码混淆,防止居心不良的人对代码进行恶意篡改非常重要。下面就是对Android项目进行的代码混淆和加密签名过程。

    2022年5月30日
    55
  • Impala与Hive的比較

    Impala与Hive的比較

    2021年12月2日
    45
  • 基于Scrapy的IP代理池搭建[通俗易懂]

    基于Scrapy的IP代理池搭建[通俗易懂]目录一、为什么要搭建爬虫代理池二、搭建思路三、搭建代理池items.pykuai_proxy.pymiddlewares.pypipelines.pysettings.pyutils.py一、为什么要搭建爬虫代理池在众多的网站防爬措施中,有一种是根据ip的访问频率进行限制,即在某一时间段内,当某个ip的访问次数达到一定的阀值时,该ip就会被拉黑、在一段时…

    2022年5月1日
    65

发表回复

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

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