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(

查看原文