在13.0的产品rom定制开发中,在对产品进行网络模块开发中,有功能需要要求设置某些app可以上网,某些app不可以上网,就是所谓的网络应用白名单功能
接下来就来分析下相关的网络模块,来具体实现相关功能的开发
frameworks/base/core/java/android/os/INetworkManagementService.aidl
frameworks/base/services/core/java/com/android/server/NetworkManagementService.java
在13.0系统中整个网络模块都是由NetworkManagementService.java服务负责通讯的,
NetworkManagementService核心功能就是用来设置IP,路由配置以及监听网络状态变化,
SystemServer不具备直接配置和操作网络的能力,所有的网络参数(网口、IP、DNS、Router等)配置,
网络策略执行都需要通过netd这个native进程来实际执行或者传递给Kernel来执行
就是SystemServer中其他服务连接netd的桥梁
接下来先看下NetworkManagementService.java
在实现设置上网应用白名单(上网app白名单)的功能中,通过上述的方法分析得知,在
NetworkManagementService.java中的核心功能中,主要就是实现设置IP,路由配置以及监听网络状态变化
功能