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


相关推荐

  • idea插件Tabnine激活码_在线激活

    (idea插件Tabnine激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~MLZPB5EL5Q-eyJsaWNlb…

    2022年3月21日
    615
  • 网络营销推广案例ppt_网络营销和推广的方法

    网络营销推广案例ppt_网络营销和推广的方法电驴资源下面是用户共享的文件列表,安装电驴后,您可以点击这些文件名进行下载一┳═┻︻▃内容简介处附有网盘快速下载通道▃︻┻═┳一[实战网络营销.网络推广经典案例战术解].扫描版.张书乐.pdf详情68.1MB全选68.1MB下载地址(拷贝到电驴或者迅雷即可下载):ed2k://|file|%5B%E5%AE%9E%E6%88%98%E7%BD%91%E7%BB%9C%E8%9…

    2022年10月19日
    1
  • 推荐一个 curl 命令转化为PHP代码的网站&&在线发起执行 curl 请求的网站

    推荐一个 curl 命令转化为PHP代码的网站&&在线发起执行 curl 请求的网站

    2022年2月18日
    41
  • centos安装python3

    centos安装python3centos安装python31、查看安装默认安装位置whereispython2、python2.7默认安装是在/usr/bin目录中,切换到/usr/bin/cd/usr/bin/3、安装相关的依赖包yuminstall-yepel-releasezlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgccmake4、安装pipyuminsta

    2022年6月15日
    25
  • 投巧解决JavaScript split方法出现空字符的问题

    投巧解决JavaScript split方法出现空字符的问题直接使用split,前后各有一个“”值。>>varstr=’,a,b,c,d,e,f,’;>>str.split(‘,’);//(8)[“”,”a”,”b”,”c”,”d”,”e”,”f”,””]临时方法:split后,可以用filter过滤掉空值。>>varstr=’,a,b,c,d,e,f,’;>&…

    2025年8月8日
    4
  • 运维面试官喜欢问的问题是_运维是什么意思

    运维面试官喜欢问的问题是_运维是什么意思你最大的缺点是什么?行为问题(behaviouralquestion),这类问题目的是看性格是否合适公司文化。主要考察:①你是否真心想做这个工作;②你性格与企业文化是否相符。所有答案都应该围绕这两点组织,即每个经历都应回归到你通过这个经历学到什么该职位所需关键技巧,这些经历为何让你想做这个工作,和该经历体现出你什么样的个人风格。你最大的缺点是什么:①避免避重就轻,谈一个算不得缺点的缺点,这…

    2025年8月27日
    6

发表回复

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

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