Replace INetworkPolicyManager to NetworkPolicyManager
Connectivity service is going to become a mainline module which will not able to access hidden APIs. Thus, use formal API Context#getSystemService() to get network policy service instead of hidden API ServiceManager#getService(). Bug: 170598012 Test: atest FrameworksNetTests FrameworksNetIntegrationTests Change-Id: I4f286264b5800b2b922f85a76ddd20d64d53000a
This commit is contained in:
@@ -95,7 +95,6 @@ import android.net.INetworkManagementEventObserver;
|
|||||||
import android.net.INetworkMonitor;
|
import android.net.INetworkMonitor;
|
||||||
import android.net.INetworkMonitorCallbacks;
|
import android.net.INetworkMonitorCallbacks;
|
||||||
import android.net.INetworkPolicyListener;
|
import android.net.INetworkPolicyListener;
|
||||||
import android.net.INetworkPolicyManager;
|
|
||||||
import android.net.INetworkStatsService;
|
import android.net.INetworkStatsService;
|
||||||
import android.net.ISocketKeepaliveCallback;
|
import android.net.ISocketKeepaliveCallback;
|
||||||
import android.net.InetAddresses;
|
import android.net.InetAddresses;
|
||||||
@@ -336,7 +335,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
protected INetd mNetd;
|
protected INetd mNetd;
|
||||||
private INetworkStatsService mStatsService;
|
private INetworkStatsService mStatsService;
|
||||||
private INetworkPolicyManager mPolicyManager;
|
private NetworkPolicyManager mPolicyManager;
|
||||||
private NetworkPolicyManagerInternal mPolicyManagerInternal;
|
private NetworkPolicyManagerInternal mPolicyManagerInternal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -945,15 +944,15 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
}
|
}
|
||||||
|
|
||||||
public ConnectivityService(Context context, INetworkManagementService netManager,
|
public ConnectivityService(Context context, INetworkManagementService netManager,
|
||||||
INetworkStatsService statsService, INetworkPolicyManager policyManager) {
|
INetworkStatsService statsService) {
|
||||||
this(context, netManager, statsService, policyManager, getDnsResolver(context),
|
this(context, netManager, statsService, getDnsResolver(context), new IpConnectivityLog(),
|
||||||
new IpConnectivityLog(), NetdService.getInstance(), new Dependencies());
|
NetdService.getInstance(), new Dependencies());
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
protected ConnectivityService(Context context, INetworkManagementService netManager,
|
protected ConnectivityService(Context context, INetworkManagementService netManager,
|
||||||
INetworkStatsService statsService, INetworkPolicyManager policyManager,
|
INetworkStatsService statsService, IDnsResolver dnsresolver, IpConnectivityLog logger,
|
||||||
IDnsResolver dnsresolver, IpConnectivityLog logger, INetd netd, Dependencies deps) {
|
INetd netd, Dependencies deps) {
|
||||||
if (DBG) log("ConnectivityService starting up");
|
if (DBG) log("ConnectivityService starting up");
|
||||||
|
|
||||||
mDeps = Objects.requireNonNull(deps, "missing Dependencies");
|
mDeps = Objects.requireNonNull(deps, "missing Dependencies");
|
||||||
@@ -991,7 +990,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
|
|
||||||
mNMS = Objects.requireNonNull(netManager, "missing INetworkManagementService");
|
mNMS = Objects.requireNonNull(netManager, "missing INetworkManagementService");
|
||||||
mStatsService = Objects.requireNonNull(statsService, "missing INetworkStatsService");
|
mStatsService = Objects.requireNonNull(statsService, "missing INetworkStatsService");
|
||||||
mPolicyManager = Objects.requireNonNull(policyManager, "missing INetworkPolicyManager");
|
mPolicyManager = mContext.getSystemService(NetworkPolicyManager.class);
|
||||||
mPolicyManagerInternal = Objects.requireNonNull(
|
mPolicyManagerInternal = Objects.requireNonNull(
|
||||||
LocalServices.getService(NetworkPolicyManagerInternal.class),
|
LocalServices.getService(NetworkPolicyManagerInternal.class),
|
||||||
"missing NetworkPolicyManagerInternal");
|
"missing NetworkPolicyManagerInternal");
|
||||||
@@ -1007,12 +1006,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
// To ensure uid rules are synchronized with Network Policy, register for
|
// To ensure uid rules are synchronized with Network Policy, register for
|
||||||
// NetworkPolicyManagerService events must happen prior to NetworkPolicyManagerService
|
// NetworkPolicyManagerService events must happen prior to NetworkPolicyManagerService
|
||||||
// reading existing policy from disk.
|
// reading existing policy from disk.
|
||||||
try {
|
|
||||||
mPolicyManager.registerListener(mPolicyListener);
|
mPolicyManager.registerListener(mPolicyListener);
|
||||||
} catch (RemoteException e) {
|
|
||||||
// ouch, no rules updates means some processes may never get network
|
|
||||||
loge("unable to register INetworkPolicyListener" + e);
|
|
||||||
}
|
|
||||||
|
|
||||||
final PowerManager powerManager = (PowerManager) context.getSystemService(
|
final PowerManager powerManager = (PowerManager) context.getSystemService(
|
||||||
Context.POWER_SERVICE);
|
Context.POWER_SERVICE);
|
||||||
|
|||||||
@@ -20,7 +20,6 @@ import static android.os.IServiceManager.DUMP_FLAG_PRIORITY_HIGH;
|
|||||||
import static android.os.IServiceManager.DUMP_FLAG_PRIORITY_NORMAL;
|
import static android.os.IServiceManager.DUMP_FLAG_PRIORITY_NORMAL;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.net.INetworkPolicyManager;
|
|
||||||
import android.net.INetworkStatsService;
|
import android.net.INetworkStatsService;
|
||||||
import android.os.INetworkManagementService;
|
import android.os.INetworkManagementService;
|
||||||
import android.os.ServiceManager;
|
import android.os.ServiceManager;
|
||||||
@@ -38,7 +37,7 @@ public final class ConnectivityServiceInitializer extends SystemService {
|
|||||||
super(context);
|
super(context);
|
||||||
// TODO: Define formal APIs to get the needed services.
|
// TODO: Define formal APIs to get the needed services.
|
||||||
mConnectivity = new ConnectivityService(context, getNetworkManagementService(),
|
mConnectivity = new ConnectivityService(context, getNetworkManagementService(),
|
||||||
getNetworkStatsService(), getNetworkPolicyManager());
|
getNetworkStatsService());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -57,10 +56,4 @@ public final class ConnectivityServiceInitializer extends SystemService {
|
|||||||
return INetworkStatsService.Stub.asInterface(
|
return INetworkStatsService.Stub.asInterface(
|
||||||
ServiceManager.getService(Context.NETWORK_STATS_SERVICE));
|
ServiceManager.getService(Context.NETWORK_STATS_SERVICE));
|
||||||
}
|
}
|
||||||
|
|
||||||
private INetworkPolicyManager getNetworkPolicyManager() {
|
|
||||||
return INetworkPolicyManager.Stub.asInterface(
|
|
||||||
ServiceManager.getService(Context.NETWORK_POLICY_SERVICE));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ import android.content.ServiceConnection
|
|||||||
import android.net.ConnectivityManager
|
import android.net.ConnectivityManager
|
||||||
import android.net.IDnsResolver
|
import android.net.IDnsResolver
|
||||||
import android.net.INetd
|
import android.net.INetd
|
||||||
import android.net.INetworkPolicyManager
|
|
||||||
import android.net.INetworkStatsService
|
import android.net.INetworkStatsService
|
||||||
import android.net.LinkProperties
|
import android.net.LinkProperties
|
||||||
import android.net.NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL
|
import android.net.NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL
|
||||||
@@ -88,8 +87,6 @@ class ConnectivityServiceIntegrationTest {
|
|||||||
@Mock
|
@Mock
|
||||||
private lateinit var statsService: INetworkStatsService
|
private lateinit var statsService: INetworkStatsService
|
||||||
@Mock
|
@Mock
|
||||||
private lateinit var policyManager: INetworkPolicyManager
|
|
||||||
@Mock
|
|
||||||
private lateinit var log: IpConnectivityLog
|
private lateinit var log: IpConnectivityLog
|
||||||
@Mock
|
@Mock
|
||||||
private lateinit var netd: INetd
|
private lateinit var netd: INetd
|
||||||
@@ -171,7 +168,7 @@ class ConnectivityServiceIntegrationTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private inner class TestConnectivityService(deps: Dependencies) : ConnectivityService(
|
private inner class TestConnectivityService(deps: Dependencies) : ConnectivityService(
|
||||||
context, netManager, statsService, policyManager, dnsResolver, log, netd, deps)
|
context, netManager, statsService, dnsResolver, log, netd, deps)
|
||||||
|
|
||||||
private fun makeDependencies(): ConnectivityService.Dependencies {
|
private fun makeDependencies(): ConnectivityService.Dependencies {
|
||||||
val deps = spy(ConnectivityService.Dependencies())
|
val deps = spy(ConnectivityService.Dependencies())
|
||||||
|
|||||||
@@ -166,7 +166,6 @@ import android.net.INetd;
|
|||||||
import android.net.INetworkMonitor;
|
import android.net.INetworkMonitor;
|
||||||
import android.net.INetworkMonitorCallbacks;
|
import android.net.INetworkMonitorCallbacks;
|
||||||
import android.net.INetworkPolicyListener;
|
import android.net.INetworkPolicyListener;
|
||||||
import android.net.INetworkPolicyManager;
|
|
||||||
import android.net.INetworkStatsService;
|
import android.net.INetworkStatsService;
|
||||||
import android.net.InetAddresses;
|
import android.net.InetAddresses;
|
||||||
import android.net.InterfaceConfigurationParcel;
|
import android.net.InterfaceConfigurationParcel;
|
||||||
@@ -183,6 +182,7 @@ import android.net.NetworkCapabilities;
|
|||||||
import android.net.NetworkFactory;
|
import android.net.NetworkFactory;
|
||||||
import android.net.NetworkInfo;
|
import android.net.NetworkInfo;
|
||||||
import android.net.NetworkInfo.DetailedState;
|
import android.net.NetworkInfo.DetailedState;
|
||||||
|
import android.net.NetworkPolicyManager;
|
||||||
import android.net.NetworkRequest;
|
import android.net.NetworkRequest;
|
||||||
import android.net.NetworkSpecifier;
|
import android.net.NetworkSpecifier;
|
||||||
import android.net.NetworkStack;
|
import android.net.NetworkStack;
|
||||||
@@ -365,7 +365,6 @@ public class ConnectivityServiceTest {
|
|||||||
@Mock INetworkManagementService mNetworkManagementService;
|
@Mock INetworkManagementService mNetworkManagementService;
|
||||||
@Mock INetworkStatsService mStatsService;
|
@Mock INetworkStatsService mStatsService;
|
||||||
@Mock IBatteryStats mBatteryStatsService;
|
@Mock IBatteryStats mBatteryStatsService;
|
||||||
@Mock INetworkPolicyManager mNpm;
|
|
||||||
@Mock IDnsResolver mMockDnsResolver;
|
@Mock IDnsResolver mMockDnsResolver;
|
||||||
@Mock INetd mMockNetd;
|
@Mock INetd mMockNetd;
|
||||||
@Mock NetworkStackClient mNetworkStack;
|
@Mock NetworkStackClient mNetworkStack;
|
||||||
@@ -380,6 +379,7 @@ public class ConnectivityServiceTest {
|
|||||||
@Mock TelephonyManager mTelephonyManager;
|
@Mock TelephonyManager mTelephonyManager;
|
||||||
@Mock MockableSystemProperties mSystemProperties;
|
@Mock MockableSystemProperties mSystemProperties;
|
||||||
@Mock EthernetManager mEthernetManager;
|
@Mock EthernetManager mEthernetManager;
|
||||||
|
@Mock NetworkPolicyManager mNetworkPolicyManager;
|
||||||
|
|
||||||
private ArgumentCaptor<ResolverParamsParcel> mResolverParamsParcelCaptor =
|
private ArgumentCaptor<ResolverParamsParcel> mResolverParamsParcelCaptor =
|
||||||
ArgumentCaptor.forClass(ResolverParamsParcel.class);
|
ArgumentCaptor.forClass(ResolverParamsParcel.class);
|
||||||
@@ -477,6 +477,7 @@ public class ConnectivityServiceTest {
|
|||||||
if (Context.APP_OPS_SERVICE.equals(name)) return mAppOpsManager;
|
if (Context.APP_OPS_SERVICE.equals(name)) return mAppOpsManager;
|
||||||
if (Context.TELEPHONY_SERVICE.equals(name)) return mTelephonyManager;
|
if (Context.TELEPHONY_SERVICE.equals(name)) return mTelephonyManager;
|
||||||
if (Context.ETHERNET_SERVICE.equals(name)) return mEthernetManager;
|
if (Context.ETHERNET_SERVICE.equals(name)) return mEthernetManager;
|
||||||
|
if (Context.NETWORK_POLICY_SERVICE.equals(name)) return mNetworkPolicyManager;
|
||||||
return super.getSystemService(name);
|
return super.getSystemService(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1326,7 +1327,6 @@ public class ConnectivityServiceTest {
|
|||||||
mService = new ConnectivityService(mServiceContext,
|
mService = new ConnectivityService(mServiceContext,
|
||||||
mNetworkManagementService,
|
mNetworkManagementService,
|
||||||
mStatsService,
|
mStatsService,
|
||||||
mNpm,
|
|
||||||
mMockDnsResolver,
|
mMockDnsResolver,
|
||||||
mock(IpConnectivityLog.class),
|
mock(IpConnectivityLog.class),
|
||||||
mMockNetd,
|
mMockNetd,
|
||||||
@@ -1336,7 +1336,7 @@ public class ConnectivityServiceTest {
|
|||||||
|
|
||||||
final ArgumentCaptor<INetworkPolicyListener> policyListenerCaptor =
|
final ArgumentCaptor<INetworkPolicyListener> policyListenerCaptor =
|
||||||
ArgumentCaptor.forClass(INetworkPolicyListener.class);
|
ArgumentCaptor.forClass(INetworkPolicyListener.class);
|
||||||
verify(mNpm).registerListener(policyListenerCaptor.capture());
|
verify(mNetworkPolicyManager).registerListener(policyListenerCaptor.capture());
|
||||||
mPolicyListener = policyListenerCaptor.getValue();
|
mPolicyListener = policyListenerCaptor.getValue();
|
||||||
|
|
||||||
// Create local CM before sending system ready so that we can answer
|
// Create local CM before sending system ready so that we can answer
|
||||||
|
|||||||
Reference in New Issue
Block a user