1.概述
在12.0的产品rom定制开发中,在对产品进行网络模块开发中,有功能需要要求设置某些app可以上网,某些app不可以上网,就是所谓的网络应用白名单功能
2.设置上网应用白名单(上网app白名单)核心代码
frameworks/base/core/java/android/os/INetworkManagementService.aidl
frameworks/base/services/core/java/com/android/server/NetworkManagementService.java
3.设置上网应用白名单(上网app白名单)的功能分析和实现
在12.0系统中整个网络模块都是由NetworkManagementService.java服务负责通讯的
接下来先看下NetworkManagementService.java
3.1NetworkManagementService.java中上网app相关代码分析
@Override
public void setFirewallEnabled(boolean enabled) {enforceSystemUid();try {mNetdService.firewallSetFirewallType(enabled ? INetd.FIREWALL_WHITELIST : INetd.FIREWALL_BLACKLIST);mFirewallEnabled = enabled;} catch (RemoteException | ServiceSpecificException e) {throw new IllegalStateException(e);}
}@Override
public void setFirewallUidRules(