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

Commit e5d40c19 authored by Lucas Lin's avatar Lucas Lin Committed by Automerger Merge Worker
Browse files

Merge changes I35ed84fc,Ie6cfd77b,I4e4f929f,I751526e8 am: 51510ea7 am: 0fef75ee

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

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I2f6682b86e1e8d9899ea02320dd8de347e72c724
parents 045c615b 0fef75ee
Loading
Loading
Loading
Loading
+26 −16
Original line number Diff line number Diff line
@@ -155,7 +155,6 @@ import android.os.Bundle;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.IBinder;
import android.os.INetworkManagementService;
import android.os.Looper;
import android.os.Message;
import android.os.Messenger;
@@ -324,7 +323,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
    // 0 is full bad, 100 is full good
    private int mDefaultInetConditionPublished = 0;

    private INetworkManagementService mNMS;
    @VisibleForTesting
    protected IDnsResolver mDnsResolver;
    @VisibleForTesting
@@ -1040,15 +1038,14 @@ public class ConnectivityService extends IConnectivityManager.Stub
        }
    }

    public ConnectivityService(Context context, INetworkManagementService netManager,
            INetworkStatsService statsService) {
        this(context, netManager, statsService, getDnsResolver(context), new IpConnectivityLog(),
    public ConnectivityService(Context context, INetworkStatsService statsService) {
        this(context, statsService, getDnsResolver(context), new IpConnectivityLog(),
                NetdService.getInstance(), new Dependencies());
    }

    @VisibleForTesting
    protected ConnectivityService(Context context, INetworkManagementService netManager,
            INetworkStatsService statsService, IDnsResolver dnsresolver, IpConnectivityLog logger,
    protected ConnectivityService(Context context, INetworkStatsService statsService,
            IDnsResolver dnsresolver, IpConnectivityLog logger,
            INetd netd, Dependencies deps) {
        if (DBG) log("ConnectivityService starting up");

@@ -1095,7 +1092,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
        // TODO: Consider making the timer customizable.
        mNascentDelayMs = DEFAULT_NASCENT_DELAY_MS;

        mNMS = Objects.requireNonNull(netManager, "missing INetworkManagementService");
        mStatsService = Objects.requireNonNull(statsService, "missing INetworkStatsService");
        mPolicyManager = mContext.getSystemService(NetworkPolicyManager.class);
        mPolicyManagerInternal = Objects.requireNonNull(
@@ -1203,7 +1199,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
        mUserAllContext.registerReceiver(mIntentReceiver, intentFilter,
                null /* broadcastPermission */, mHandler);

        mNetworkActivityTracker = new LegacyNetworkActivityTracker(mContext, mHandler, mNMS, mNetd);
        mNetworkActivityTracker = new LegacyNetworkActivityTracker(mContext, mHandler, mNetd);

        mNetdCallback = new NetdCallback();
        try {
@@ -1242,7 +1238,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
                new NetworkInfo(TYPE_NONE, 0, "", ""),
                new LinkProperties(), new NetworkCapabilities(), 0, mContext,
                null, new NetworkAgentConfig(), this, null,
                null, null, 0, INVALID_UID,
                null, 0, INVALID_UID,
                mQosCallbackTracker);
    }

@@ -6030,7 +6026,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
        final NetworkAgentInfo nai = new NetworkAgentInfo(na,
                new Network(mNetIdManager.reserveNetId()), new NetworkInfo(networkInfo), lp, nc,
                currentScore, mContext, mTrackerHandler, new NetworkAgentConfig(networkAgentConfig),
                this, mNetd, mDnsResolver, mNMS, providerId, uid, mQosCallbackTracker);
                this, mNetd, mDnsResolver, providerId, uid, mQosCallbackTracker);

        // Make sure the LinkProperties and NetworkCapabilities reflect what the agent info says.
        processCapabilitiesFromAgent(nai, nc);
@@ -8186,7 +8182,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
            TestNetworkService.enforceTestNetworkPermissions(mContext);

            if (mTNS == null) {
                mTNS = new TestNetworkService(mContext, mNMS);
                mTNS = new TestNetworkService(mContext);
            }

            return mTNS;
@@ -8661,9 +8657,23 @@ public class ConnectivityService extends IConnectivityManager.Stub

    private class NetdCallback extends BaseNetdUnsolicitedEventListener {
        @Override
        public void onInterfaceClassActivityChanged(boolean isActive, int timerLabel,
        public void onInterfaceClassActivityChanged(boolean isActive, int transportType,
                long timestampNs, int uid) {
            mNetworkActivityTracker.setAndReportNetworkActive(isActive, timerLabel, timestampNs);
            mNetworkActivityTracker.setAndReportNetworkActive(isActive, transportType, timestampNs);
        }

        @Override
        public void onInterfaceLinkStateChanged(String iface, boolean up) {
            for (NetworkAgentInfo nai : mNetworkAgentInfos) {
                nai.clatd.interfaceLinkStateChanged(iface, up);
            }
        }

        @Override
        public void onInterfaceRemoved(String iface) {
            for (NetworkAgentInfo nai : mNetworkAgentInfos) {
                nai.clatd.interfaceRemoved(iface);
            }
        }
    }

@@ -8697,7 +8707,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
        }

        LegacyNetworkActivityTracker(@NonNull Context context, @NonNull Handler handler,
                @NonNull INetworkManagementService nms, @NonNull INetd netd) {
                @NonNull INetd netd) {
            mContext = context;
            mNetd = netd;
            mHandler = handler;
+1 −8
Original line number Diff line number Diff line
@@ -21,7 +21,6 @@ import static android.os.IServiceManager.DUMP_FLAG_PRIORITY_NORMAL;

import android.content.Context;
import android.net.INetworkStatsService;
import android.os.INetworkManagementService;
import android.os.ServiceManager;
import android.util.Log;

@@ -38,8 +37,7 @@ public final class ConnectivityServiceInitializer extends SystemService {
        // Load JNI libraries used by ConnectivityService and its dependencies
        System.loadLibrary("service-connectivity");
        // TODO: Define formal APIs to get the needed services.
        mConnectivity = new ConnectivityService(context, getNetworkManagementService(),
                getNetworkStatsService());
        mConnectivity = new ConnectivityService(context, getNetworkStatsService());
    }

    @Override
@@ -49,11 +47,6 @@ public final class ConnectivityServiceInitializer extends SystemService {
                /* allowIsolated= */ false, DUMP_FLAG_PRIORITY_HIGH | DUMP_FLAG_PRIORITY_NORMAL);
    }

    private INetworkManagementService getNetworkManagementService() {
        return INetworkManagementService.Stub.asInterface(
               ServiceManager.getService(Context.NETWORKMANAGEMENT_SERVICE));
    }

    private INetworkStatsService getNetworkStatsService() {
        return INetworkStatsService.Stub.asInterface(
                ServiceManager.getService(Context.NETWORK_STATS_SERVICE));
+1 −5
Original line number Diff line number Diff line
@@ -41,7 +41,6 @@ import android.os.Binder;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.IBinder;
import android.os.INetworkManagementService;
import android.os.Looper;
import android.os.ParcelFileDescriptor;
import android.os.RemoteException;
@@ -69,7 +68,6 @@ class TestNetworkService extends ITestNetworkManager.Stub {
    @NonNull private static final AtomicInteger sTestTunIndex = new AtomicInteger();

    @NonNull private final Context mContext;
    @NonNull private final INetworkManagementService mNMS;
    @NonNull private final INetd mNetd;

    @NonNull private final HandlerThread mHandlerThread;
@@ -82,14 +80,12 @@ class TestNetworkService extends ITestNetworkManager.Stub {
    private static native int jniCreateTunTap(boolean isTun, @NonNull String iface);

    @VisibleForTesting
    protected TestNetworkService(
            @NonNull Context context, @NonNull INetworkManagementService netManager) {
    protected TestNetworkService(@NonNull Context context) {
        mHandlerThread = new HandlerThread("TestNetworkServiceThread");
        mHandlerThread.start();
        mHandler = new Handler(mHandlerThread.getLooper());

        mContext = Objects.requireNonNull(context, "missing Context");
        mNMS = Objects.requireNonNull(netManager, "missing INetworkManagementService");
        mNetd = Objects.requireNonNull(NetdService.getInstance(), "could not get netd instance");
        mCm = mContext.getSystemService(ConnectivityManager.class);
        mNetworkProvider = new NetworkProvider(mContext, mHandler.getLooper(),
+2 −21
Original line number Diff line number Diff line
@@ -29,14 +29,12 @@ import android.net.LinkAddress;
import android.net.LinkProperties;
import android.net.NetworkInfo;
import android.net.RouteInfo;
import android.os.INetworkManagementService;
import android.os.RemoteException;
import android.os.ServiceSpecificException;
import android.util.Log;

import com.android.internal.annotations.VisibleForTesting;
import com.android.net.module.util.NetworkStackConstants;
import com.android.server.net.BaseNetworkObserver;

import java.net.Inet6Address;
import java.util.Objects;
@@ -48,7 +46,7 @@ import java.util.Objects;
 *
 * @hide
 */
public class Nat464Xlat extends BaseNetworkObserver {
public class Nat464Xlat {
    private static final String TAG = Nat464Xlat.class.getSimpleName();

    // This must match the interface prefix in clatd.c.
@@ -70,7 +68,6 @@ public class Nat464Xlat extends BaseNetworkObserver {

    private final IDnsResolver mDnsResolver;
    private final INetd mNetd;
    private final INetworkManagementService mNMService;

    // The network we're running on, and its type.
    private final NetworkAgentInfo mNetwork;
@@ -99,11 +96,9 @@ public class Nat464Xlat extends BaseNetworkObserver {

    private boolean mPrefixDiscoveryRunning;

    public Nat464Xlat(NetworkAgentInfo nai, INetd netd, IDnsResolver dnsResolver,
            INetworkManagementService nmService) {
    public Nat464Xlat(NetworkAgentInfo nai, INetd netd, IDnsResolver dnsResolver) {
        mDnsResolver = dnsResolver;
        mNetd = netd;
        mNMService = nmService;
        mNetwork = nai;
    }

@@ -174,13 +169,6 @@ public class Nat464Xlat extends BaseNetworkObserver {
     * and set internal state.
     */
    private void enterStartingState(String baseIface) {
        try {
            mNMService.registerObserver(this);
        } catch (RemoteException e) {
            Log.e(TAG, "Can't register iface observer for clat on " + mNetwork.toShortString());
            return;
        }

        mNat64PrefixInUse = selectNat64Prefix();
        String addrStr = null;
        try {
@@ -216,11 +204,6 @@ public class Nat464Xlat extends BaseNetworkObserver {
     * Unregister as a base observer for the stacked interface, and clear internal state.
     */
    private void leaveStartedState() {
        try {
            mNMService.unregisterObserver(this);
        } catch (RemoteException | IllegalStateException e) {
            Log.e(TAG, "Error unregistering clatd observer on " + mBaseIface + ": " + e);
        }
        mNat64PrefixInUse = null;
        mIface = null;
        mBaseIface = null;
@@ -507,12 +490,10 @@ public class Nat464Xlat extends BaseNetworkObserver {
        stop();
    }

    @Override
    public void interfaceLinkStateChanged(String iface, boolean up) {
        mNetwork.handler().post(() -> { handleInterfaceLinkStateChanged(iface, up); });
    }

    @Override
    public void interfaceRemoved(String iface) {
        mNetwork.handler().post(() -> handleInterfaceRemoved(iface));
    }
+3 −4
Original line number Diff line number Diff line
@@ -43,7 +43,6 @@ import android.net.QosSession;
import android.net.TcpKeepalivePacketData;
import android.os.Handler;
import android.os.IBinder;
import android.os.INetworkManagementService;
import android.os.RemoteException;
import android.os.SystemClock;
import android.telephony.data.EpsBearerQosSessionAttributes;
@@ -341,8 +340,8 @@ public class NetworkAgentInfo implements Comparable<NetworkAgentInfo> {
    public NetworkAgentInfo(INetworkAgent na, Network net, NetworkInfo info,
            @NonNull LinkProperties lp, @NonNull NetworkCapabilities nc, int score, Context context,
            Handler handler, NetworkAgentConfig config, ConnectivityService connService, INetd netd,
            IDnsResolver dnsResolver, INetworkManagementService nms, int factorySerialNumber,
            int creatorUid, QosCallbackTracker qosCallbackTracker) {
            IDnsResolver dnsResolver, int factorySerialNumber, int creatorUid,
            QosCallbackTracker qosCallbackTracker) {
        Objects.requireNonNull(net);
        Objects.requireNonNull(info);
        Objects.requireNonNull(lp);
@@ -356,7 +355,7 @@ public class NetworkAgentInfo implements Comparable<NetworkAgentInfo> {
        linkProperties = lp;
        networkCapabilities = nc;
        mScore = score;
        clatd = new Nat464Xlat(this, netd, dnsResolver, nms);
        clatd = new Nat464Xlat(this, netd, dnsResolver);
        mConnService = connService;
        mContext = context;
        mHandler = handler;
Loading