Merge "Remove NetdService, NetworkStackClient dependency"
This commit is contained in:
@@ -149,7 +149,6 @@ import android.net.NetworkRequest;
|
|||||||
import android.net.NetworkScore;
|
import android.net.NetworkScore;
|
||||||
import android.net.NetworkSpecifier;
|
import android.net.NetworkSpecifier;
|
||||||
import android.net.NetworkStack;
|
import android.net.NetworkStack;
|
||||||
import android.net.NetworkStackClient;
|
|
||||||
import android.net.NetworkState;
|
import android.net.NetworkState;
|
||||||
import android.net.NetworkStateSnapshot;
|
import android.net.NetworkStateSnapshot;
|
||||||
import android.net.NetworkTestResultParcelable;
|
import android.net.NetworkTestResultParcelable;
|
||||||
@@ -176,13 +175,14 @@ import android.net.VpnTransportInfo;
|
|||||||
import android.net.metrics.IpConnectivityLog;
|
import android.net.metrics.IpConnectivityLog;
|
||||||
import android.net.metrics.NetworkEvent;
|
import android.net.metrics.NetworkEvent;
|
||||||
import android.net.netlink.InetDiagMessage;
|
import android.net.netlink.InetDiagMessage;
|
||||||
|
import android.net.networkstack.ModuleNetworkStackClient;
|
||||||
|
import android.net.networkstack.NetworkStackClientBase;
|
||||||
import android.net.resolv.aidl.DnsHealthEventParcel;
|
import android.net.resolv.aidl.DnsHealthEventParcel;
|
||||||
import android.net.resolv.aidl.IDnsResolverUnsolicitedEventListener;
|
import android.net.resolv.aidl.IDnsResolverUnsolicitedEventListener;
|
||||||
import android.net.resolv.aidl.Nat64PrefixEventParcel;
|
import android.net.resolv.aidl.Nat64PrefixEventParcel;
|
||||||
import android.net.resolv.aidl.PrivateDnsValidationEventParcel;
|
import android.net.resolv.aidl.PrivateDnsValidationEventParcel;
|
||||||
import android.net.shared.PrivateDnsConfig;
|
import android.net.shared.PrivateDnsConfig;
|
||||||
import android.net.util.MultinetworkPolicyTracker;
|
import android.net.util.MultinetworkPolicyTracker;
|
||||||
import android.net.util.NetdService;
|
|
||||||
import android.os.BatteryStatsManager;
|
import android.os.BatteryStatsManager;
|
||||||
import android.os.Binder;
|
import android.os.Binder;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
@@ -1183,10 +1183,10 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a reference to the NetworkStackClient.
|
* Get a reference to the ModuleNetworkStackClient.
|
||||||
*/
|
*/
|
||||||
public NetworkStackClient getNetworkStack() {
|
public NetworkStackClientBase getNetworkStack() {
|
||||||
return NetworkStackClient.getInstance();
|
return ModuleNetworkStackClient.getInstance(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1245,7 +1245,8 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
|
|
||||||
public ConnectivityService(Context context) {
|
public ConnectivityService(Context context) {
|
||||||
this(context, getDnsResolver(context), new IpConnectivityLog(),
|
this(context, getDnsResolver(context), new IpConnectivityLog(),
|
||||||
NetdService.getInstance(), new Dependencies());
|
INetd.Stub.asInterface((IBinder) context.getSystemService(Context.NETD_SERVICE)),
|
||||||
|
new Dependencies());
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
@@ -2988,10 +2989,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
}
|
}
|
||||||
|
|
||||||
pw.println();
|
pw.println();
|
||||||
pw.println("NetworkStackClient logs:");
|
|
||||||
pw.increaseIndent();
|
|
||||||
NetworkStackClient.getInstance().dump(pw);
|
|
||||||
pw.decreaseIndent();
|
|
||||||
|
|
||||||
pw.println();
|
pw.println();
|
||||||
pw.println("Permission Monitor:");
|
pw.println("Permission Monitor:");
|
||||||
|
|||||||
@@ -35,7 +35,6 @@ import android.net.NetworkProvider;
|
|||||||
import android.net.RouteInfo;
|
import android.net.RouteInfo;
|
||||||
import android.net.TestNetworkInterface;
|
import android.net.TestNetworkInterface;
|
||||||
import android.net.TestNetworkSpecifier;
|
import android.net.TestNetworkSpecifier;
|
||||||
import android.net.util.NetdService;
|
|
||||||
import android.os.Binder;
|
import android.os.Binder;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.HandlerThread;
|
import android.os.HandlerThread;
|
||||||
@@ -86,7 +85,9 @@ class TestNetworkService extends ITestNetworkManager.Stub {
|
|||||||
mHandler = new Handler(mHandlerThread.getLooper());
|
mHandler = new Handler(mHandlerThread.getLooper());
|
||||||
|
|
||||||
mContext = Objects.requireNonNull(context, "missing Context");
|
mContext = Objects.requireNonNull(context, "missing Context");
|
||||||
mNetd = Objects.requireNonNull(NetdService.getInstance(), "could not get netd instance");
|
mNetd = Objects.requireNonNull(
|
||||||
|
INetd.Stub.asInterface((IBinder) context.getSystemService(Context.NETD_SERVICE)),
|
||||||
|
"could not get netd instance");
|
||||||
mCm = mContext.getSystemService(ConnectivityManager.class);
|
mCm = mContext.getSystemService(ConnectivityManager.class);
|
||||||
mNetworkProvider = new NetworkProvider(mContext, mHandler.getLooper(),
|
mNetworkProvider = new NetworkProvider(mContext, mHandler.getLooper(),
|
||||||
TEST_NETWORK_PROVIDER_NAME);
|
TEST_NETWORK_PROVIDER_NAME);
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ package android.net
|
|||||||
import android.content.ComponentName
|
import android.content.ComponentName
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
|
import android.net.networkstack.NetworkStackClientBase
|
||||||
import android.os.IBinder
|
import android.os.IBinder
|
||||||
import com.android.server.net.integrationtests.TestNetworkStackService
|
import com.android.server.net.integrationtests.TestNetworkStackService
|
||||||
import org.mockito.Mockito.any
|
import org.mockito.Mockito.any
|
||||||
@@ -29,28 +30,22 @@ import kotlin.test.fail
|
|||||||
|
|
||||||
const val TEST_ACTION_SUFFIX = ".Test"
|
const val TEST_ACTION_SUFFIX = ".Test"
|
||||||
|
|
||||||
class TestNetworkStackClient(context: Context) : NetworkStackClient(TestDependencies(context)) {
|
class TestNetworkStackClient(private val context: Context) : NetworkStackClientBase() {
|
||||||
// TODO: consider switching to TrackRecord for more expressive checks
|
// TODO: consider switching to TrackRecord for more expressive checks
|
||||||
private val lastCallbacks = HashMap<Network, INetworkMonitorCallbacks>()
|
private val lastCallbacks = HashMap<Network, INetworkMonitorCallbacks>()
|
||||||
|
private val moduleConnector = ConnectivityModuleConnector { _, action, _, _ ->
|
||||||
|
val intent = Intent(action)
|
||||||
|
val serviceName = TestNetworkStackService::class.qualifiedName
|
||||||
|
?: fail("TestNetworkStackService name not found")
|
||||||
|
intent.component = ComponentName(context.packageName, serviceName)
|
||||||
|
return@ConnectivityModuleConnector intent
|
||||||
|
}.also { it.init(context) }
|
||||||
|
|
||||||
private class TestDependencies(private val context: Context) : Dependencies {
|
fun start() {
|
||||||
override fun addToServiceManager(service: IBinder) = Unit
|
moduleConnector.startModuleService(
|
||||||
override fun checkCallerUid() = Unit
|
INetworkStackConnector::class.qualifiedName + TEST_ACTION_SUFFIX,
|
||||||
|
NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK) { connector ->
|
||||||
override fun getConnectivityModuleConnector(): ConnectivityModuleConnector {
|
onNetworkStackConnected(INetworkStackConnector.Stub.asInterface(connector))
|
||||||
return ConnectivityModuleConnector { _, _, _, inSystemProcess ->
|
|
||||||
getNetworkStackIntent(inSystemProcess)
|
|
||||||
}.also { it.init(context) }
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun getNetworkStackIntent(inSystemProcess: Boolean): Intent? {
|
|
||||||
// Simulate out-of-system-process config: in-process service not found (null intent)
|
|
||||||
if (inSystemProcess) return null
|
|
||||||
val intent = Intent(INetworkStackConnector::class.qualifiedName + TEST_ACTION_SUFFIX)
|
|
||||||
val serviceName = TestNetworkStackService::class.qualifiedName
|
|
||||||
?: fail("TestNetworkStackService name not found")
|
|
||||||
intent.component = ComponentName(context.packageName, serviceName)
|
|
||||||
return intent
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -157,7 +157,6 @@ class ConnectivityServiceIntegrationTest {
|
|||||||
doReturn(IntArray(0)).`when`(systemConfigManager).getSystemPermissionUids(anyString())
|
doReturn(IntArray(0)).`when`(systemConfigManager).getSystemPermissionUids(anyString())
|
||||||
|
|
||||||
networkStackClient = TestNetworkStackClient(realContext)
|
networkStackClient = TestNetworkStackClient(realContext)
|
||||||
networkStackClient.init()
|
|
||||||
networkStackClient.start()
|
networkStackClient.start()
|
||||||
|
|
||||||
service = TestConnectivityService(makeDependencies())
|
service = TestConnectivityService(makeDependencies())
|
||||||
|
|||||||
@@ -228,7 +228,6 @@ import android.net.NetworkRequest;
|
|||||||
import android.net.NetworkScore;
|
import android.net.NetworkScore;
|
||||||
import android.net.NetworkSpecifier;
|
import android.net.NetworkSpecifier;
|
||||||
import android.net.NetworkStack;
|
import android.net.NetworkStack;
|
||||||
import android.net.NetworkStackClient;
|
|
||||||
import android.net.NetworkStateSnapshot;
|
import android.net.NetworkStateSnapshot;
|
||||||
import android.net.NetworkTestResultParcelable;
|
import android.net.NetworkTestResultParcelable;
|
||||||
import android.net.OemNetworkPreferences;
|
import android.net.OemNetworkPreferences;
|
||||||
@@ -248,6 +247,7 @@ import android.net.Uri;
|
|||||||
import android.net.VpnManager;
|
import android.net.VpnManager;
|
||||||
import android.net.VpnTransportInfo;
|
import android.net.VpnTransportInfo;
|
||||||
import android.net.metrics.IpConnectivityLog;
|
import android.net.metrics.IpConnectivityLog;
|
||||||
|
import android.net.networkstack.NetworkStackClientBase;
|
||||||
import android.net.resolv.aidl.Nat64PrefixEventParcel;
|
import android.net.resolv.aidl.Nat64PrefixEventParcel;
|
||||||
import android.net.resolv.aidl.PrivateDnsValidationEventParcel;
|
import android.net.resolv.aidl.PrivateDnsValidationEventParcel;
|
||||||
import android.net.shared.NetworkMonitorUtils;
|
import android.net.shared.NetworkMonitorUtils;
|
||||||
@@ -461,7 +461,7 @@ public class ConnectivityServiceTest {
|
|||||||
@Mock NetworkStatsManager mStatsManager;
|
@Mock NetworkStatsManager mStatsManager;
|
||||||
@Mock IDnsResolver mMockDnsResolver;
|
@Mock IDnsResolver mMockDnsResolver;
|
||||||
@Mock INetd mMockNetd;
|
@Mock INetd mMockNetd;
|
||||||
@Mock NetworkStackClient mNetworkStack;
|
@Mock NetworkStackClientBase mNetworkStack;
|
||||||
@Mock PackageManager mPackageManager;
|
@Mock PackageManager mPackageManager;
|
||||||
@Mock UserManager mUserManager;
|
@Mock UserManager mUserManager;
|
||||||
@Mock NotificationManager mNotificationManager;
|
@Mock NotificationManager mNotificationManager;
|
||||||
|
|||||||
Reference in New Issue
Block a user