From 7c7ca85882aaa237ca332097231118d45e50c6a8 Mon Sep 17 00:00:00 2001 From: Chiachang Wang Date: Wed, 24 Feb 2021 17:09:30 +0800 Subject: [PATCH 1/2] Remove the hidden ConnectivityManager dependency in NMS NetworkManagementService that is outside the incoming connectivity module should stop using hidden NETID_UNSET in ConnectivityManager. The only usage in NMS is setDnsForwarders() method which is previously used by CS. The reference is now replaced by calling INetd directly. The method could be removed now, so remove it to resolve the dependency. Bug: 172183305 Test: m ; atest FrameworksNetTests Change-Id: I63137b240c4938b082c460bb1a25b447e7f29e80 --- .../android/os/INetworkManagementService.aidl | 5 ----- .../android/server/NetworkManagementService.java | 15 --------------- 2 files changed, 20 deletions(-) diff --git a/core/java/android/os/INetworkManagementService.aidl b/core/java/android/os/INetworkManagementService.aidl index 874add5cdbd8d..5d08601ad32d5 100644 --- a/core/java/android/os/INetworkManagementService.aidl +++ b/core/java/android/os/INetworkManagementService.aidl @@ -181,11 +181,6 @@ interface INetworkManagementService @UnsupportedAppUsage String[] listTetheredInterfaces(); - /** - * Sets the list of DNS forwarders (in order of priority) - */ - void setDnsForwarders(in Network network, in String[] dns); - /** * Returns the list of DNS forwarders (in order of priority) */ diff --git a/services/core/java/com/android/server/NetworkManagementService.java b/services/core/java/com/android/server/NetworkManagementService.java index 44054088d9374..cafcdd617f39a 100644 --- a/services/core/java/com/android/server/NetworkManagementService.java +++ b/services/core/java/com/android/server/NetworkManagementService.java @@ -44,7 +44,6 @@ import static com.android.server.NetworkManagementSocketTagger.PROP_QTAGUID_ENAB import android.annotation.NonNull; import android.app.ActivityManager; import android.content.Context; -import android.net.ConnectivityManager; import android.net.INetd; import android.net.INetdUnsolicitedEventListener; import android.net.INetworkManagementEventObserver; @@ -54,7 +53,6 @@ import android.net.InterfaceConfiguration; import android.net.InterfaceConfigurationParcel; import android.net.IpPrefix; import android.net.LinkAddress; -import android.net.Network; import android.net.NetworkPolicyManager; import android.net.NetworkStack; import android.net.NetworkStats; @@ -973,19 +971,6 @@ public class NetworkManagementService extends INetworkManagementService.Stub { } } - @Override - public void setDnsForwarders(Network network, String[] dns) { - NetworkStack.checkNetworkStackPermission(mContext); - - int netId = (network != null) ? network.netId : ConnectivityManager.NETID_UNSET; - - try { - mNetdService.tetherDnsSet(netId, dns); - } catch (RemoteException | ServiceSpecificException e) { - throw new IllegalStateException(e); - } - } - @Override public String[] getDnsForwarders() { NetworkStack.checkNetworkStackPermission(mContext); From ce554e81523b806496754f0b766f1f7914c7aa44 Mon Sep 17 00:00:00 2001 From: Chiachang Wang Date: Wed, 24 Feb 2021 20:02:28 +0800 Subject: [PATCH 2/2] Remove RouteInfo hidden depdendency in NMS Update legecy route is replaced by calling INetd directly. addLegacyRouteForNetId() is no longer needed. This method also have dependency with the hidden method in RouteInfo which will be a part of incoming connectivity module. Thus, remove the addLegacyRouteForNetId() to resolve the dependency. Bug: 172183305 Test: m ; atest FrameworksNetTests Change-Id: Ifc561b6dfb45bc51dee244ae114029ae520d8556 --- .../android/os/INetworkManagementService.aidl | 2 -- .../server/NetworkManagementService.java | 21 ------------------- 2 files changed, 23 deletions(-) diff --git a/core/java/android/os/INetworkManagementService.aidl b/core/java/android/os/INetworkManagementService.aidl index 5d08601ad32d5..f2d67411ef3ac 100644 --- a/core/java/android/os/INetworkManagementService.aidl +++ b/core/java/android/os/INetworkManagementService.aidl @@ -295,8 +295,6 @@ interface INetworkManagementService void setFirewallUidRules(int chain, in int[] uids, in int[] rules); void setFirewallChainEnabled(int chain, boolean enable); - void addLegacyRouteForNetId(int netId, in RouteInfo routeInfo, int uid); - /** * Allow UID to call protect(). */ diff --git a/services/core/java/com/android/server/NetworkManagementService.java b/services/core/java/com/android/server/NetworkManagementService.java index cafcdd617f39a..10d6570929ed5 100644 --- a/services/core/java/com/android/server/NetworkManagementService.java +++ b/services/core/java/com/android/server/NetworkManagementService.java @@ -1759,27 +1759,6 @@ public class NetworkManagementService extends INetworkManagementService.Stub { } } - @Override - public void addLegacyRouteForNetId(int netId, RouteInfo routeInfo, int uid) { - NetworkStack.checkNetworkStackPermission(mContext); - - final LinkAddress la = routeInfo.getDestinationLinkAddress(); - final String ifName = routeInfo.getInterface(); - final String dst = la.toString(); - final String nextHop; - - if (routeInfo.hasGateway()) { - nextHop = routeInfo.getGateway().getHostAddress(); - } else { - nextHop = ""; - } - try { - mNetdService.networkAddLegacyRoute(netId, ifName, dst, nextHop, uid); - } catch (RemoteException | ServiceSpecificException e) { - throw new IllegalStateException(e); - } - } - @Override public void allowProtect(int uid) { NetworkStack.checkNetworkStackPermission(mContext);