Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 97e7a13e authored by Remi NGUYEN VAN's avatar Remi NGUYEN VAN Committed by Automerger Merge Worker
Browse files

Merge "Remove NetdService, NetworkStackClient dependency" into sc-dev am: 41df46a0

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13946371

Change-Id: I331a7eea263111b691c9ebd2f648229b96ac50a7
parents 59292d04 41df46a0
Loading
Loading
Loading
Loading
+7 −10
Original line number Diff line number Diff line
@@ -145,7 +145,6 @@ import android.net.NetworkRequest;
import android.net.NetworkScore;
import android.net.NetworkSpecifier;
import android.net.NetworkStack;
import android.net.NetworkStackClient;
import android.net.NetworkState;
import android.net.NetworkStateSnapshot;
import android.net.NetworkTestResultParcelable;
@@ -172,13 +171,14 @@ import android.net.VpnTransportInfo;
import android.net.metrics.IpConnectivityLog;
import android.net.metrics.NetworkEvent;
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.IDnsResolverUnsolicitedEventListener;
import android.net.resolv.aidl.Nat64PrefixEventParcel;
import android.net.resolv.aidl.PrivateDnsValidationEventParcel;
import android.net.shared.PrivateDnsConfig;
import android.net.util.MultinetworkPolicyTracker;
import android.net.util.NetdService;
import android.os.BatteryStatsManager;
import android.os.Binder;
import android.os.Build;
@@ -1121,10 +1121,10 @@ public class ConnectivityService extends IConnectivityManager.Stub
        }

        /**
         * Get a reference to the NetworkStackClient.
         * Get a reference to the ModuleNetworkStackClient.
         */
        public NetworkStackClient getNetworkStack() {
            return NetworkStackClient.getInstance();
        public NetworkStackClientBase getNetworkStack() {
            return ModuleNetworkStackClient.getInstance(null);
        }

        /**
@@ -1183,7 +1183,8 @@ public class ConnectivityService extends IConnectivityManager.Stub

    public ConnectivityService(Context context) {
        this(context, getDnsResolver(context), new IpConnectivityLog(),
                NetdService.getInstance(), new Dependencies());
                INetd.Stub.asInterface((IBinder) context.getSystemService(Context.NETD_SERVICE)),
                new Dependencies());
    }

    @VisibleForTesting
@@ -2904,10 +2905,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
        }

        pw.println();
        pw.println("NetworkStackClient logs:");
        pw.increaseIndent();
        NetworkStackClient.getInstance().dump(pw);
        pw.decreaseIndent();

        pw.println();
        pw.println("Permission Monitor:");
+3 −2
Original line number Diff line number Diff line
@@ -35,7 +35,6 @@ import android.net.NetworkProvider;
import android.net.RouteInfo;
import android.net.TestNetworkInterface;
import android.net.TestNetworkSpecifier;
import android.net.util.NetdService;
import android.os.Binder;
import android.os.Handler;
import android.os.HandlerThread;
@@ -86,7 +85,9 @@ class TestNetworkService extends ITestNetworkManager.Stub {
        mHandler = new Handler(mHandlerThread.getLooper());

        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);
        mNetworkProvider = new NetworkProvider(mContext, mHandler.getLooper(),
                TEST_NETWORK_PROVIDER_NAME);
+14 −19
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package android.net
import android.content.ComponentName
import android.content.Context
import android.content.Intent
import android.net.networkstack.NetworkStackClientBase
import android.os.IBinder
import com.android.server.net.integrationtests.TestNetworkStackService
import org.mockito.Mockito.any
@@ -29,28 +30,22 @@ import kotlin.test.fail

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
    private val lastCallbacks = HashMap<Network, INetworkMonitorCallbacks>()

    private class TestDependencies(private val context: Context) : Dependencies {
        override fun addToServiceManager(service: IBinder) = Unit
        override fun checkCallerUid() = Unit

        override fun getConnectivityModuleConnector(): ConnectivityModuleConnector {
            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)
    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 intent
        return@ConnectivityModuleConnector intent
    }.also { it.init(context) }

    fun start() {
        moduleConnector.startModuleService(
                INetworkStackConnector::class.qualifiedName + TEST_ACTION_SUFFIX,
                NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK) { connector ->
            onNetworkStackConnected(INetworkStackConnector.Stub.asInterface(connector))
        }
    }

+0 −1
Original line number Diff line number Diff line
@@ -157,7 +157,6 @@ class ConnectivityServiceIntegrationTest {
        doReturn(IntArray(0)).`when`(systemConfigManager).getSystemPermissionUids(anyString())

        networkStackClient = TestNetworkStackClient(realContext)
        networkStackClient.init()
        networkStackClient.start()

        service = TestConnectivityService(makeDependencies())
+2 −2
Original line number Diff line number Diff line
@@ -216,7 +216,6 @@ import android.net.NetworkRequest;
import android.net.NetworkScore;
import android.net.NetworkSpecifier;
import android.net.NetworkStack;
import android.net.NetworkStackClient;
import android.net.NetworkStateSnapshot;
import android.net.NetworkTestResultParcelable;
import android.net.OemNetworkPreferences;
@@ -236,6 +235,7 @@ import android.net.Uri;
import android.net.VpnManager;
import android.net.VpnTransportInfo;
import android.net.metrics.IpConnectivityLog;
import android.net.networkstack.NetworkStackClientBase;
import android.net.resolv.aidl.Nat64PrefixEventParcel;
import android.net.resolv.aidl.PrivateDnsValidationEventParcel;
import android.net.shared.NetworkMonitorUtils;
@@ -446,7 +446,7 @@ public class ConnectivityServiceTest {
    @Mock NetworkStatsManager mStatsManager;
    @Mock IDnsResolver mMockDnsResolver;
    @Mock INetd mMockNetd;
    @Mock NetworkStackClient mNetworkStack;
    @Mock NetworkStackClientBase mNetworkStack;
    @Mock PackageManager mPackageManager;
    @Mock UserManager mUserManager;
    @Mock NotificationManager mNotificationManager;