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

Commit 333a70eb authored by Lorenzo Colitti's avatar Lorenzo Colitti Committed by android-build-merger
Browse files

Merge changes Iec53a9fd,Iac4cfe70 am: 29afcf0e

am: b0c74fb2

Change-Id: I56af4e9a82f66e507d2360822af27a39e0fcb238
parents f5c5d263 b0c74fb2
Loading
Loading
Loading
Loading
+0 −10
Original line number Original line Diff line number Diff line
@@ -355,16 +355,6 @@ interface INetworkManagementService
     */
     */
    void removeVpnUidRanges(int netId, in UidRange[] ranges);
    void removeVpnUidRanges(int netId, in UidRange[] ranges);


    /**
     * Start the clatd (464xlat) service on the given interface.
     */
    void startClatd(String interfaceName);

    /**
     * Stop the clatd (464xlat) service on the given interface.
     */
    void stopClatd(String interfaceName);

    /**
    /**
     * Start listening for mobile activity state changes.
     * Start listening for mobile activity state changes.
     */
     */
+1 −1
Original line number Original line Diff line number Diff line
@@ -4879,7 +4879,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
        final NetworkCapabilities nc = new NetworkCapabilities(networkCapabilities);
        final NetworkCapabilities nc = new NetworkCapabilities(networkCapabilities);
        final NetworkAgentInfo nai = new NetworkAgentInfo(messenger, new AsyncChannel(),
        final NetworkAgentInfo nai = new NetworkAgentInfo(messenger, new AsyncChannel(),
                new Network(reserveNetId()), new NetworkInfo(networkInfo), lp, nc, currentScore,
                new Network(reserveNetId()), new NetworkInfo(networkInfo), lp, nc, currentScore,
                mContext, mTrackerHandler, new NetworkMisc(networkMisc), this);
                mContext, mTrackerHandler, new NetworkMisc(networkMisc), this, mNetd, mNMS);
        // Make sure the network capabilities reflect what the agent info says.
        // Make sure the network capabilities reflect what the agent info says.
        nai.networkCapabilities = mixInCapabilities(nai, nc);
        nai.networkCapabilities = mixInCapabilities(nai, nc);
        final String extraInfo = networkInfo.getExtraInfo();
        final String extraInfo = networkInfo.getExtraInfo();
+3 −42
Original line number Original line Diff line number Diff line
@@ -17,13 +17,11 @@
package com.android.server;
package com.android.server;


import static android.Manifest.permission.CONNECTIVITY_INTERNAL;
import static android.Manifest.permission.CONNECTIVITY_INTERNAL;
import static android.Manifest.permission.DUMP;
import static android.Manifest.permission.NETWORK_SETTINGS;
import static android.Manifest.permission.NETWORK_SETTINGS;
import static android.Manifest.permission.NETWORK_STACK;
import static android.Manifest.permission.NETWORK_STACK;
import static android.Manifest.permission.SHUTDOWN;
import static android.Manifest.permission.SHUTDOWN;
import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_DOZABLE;
import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_DOZABLE;
import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_NAME_DOZABLE;
import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_NAME_DOZABLE;
import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_NAME_NONE;
import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_NAME_POWERSAVE;
import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_NAME_POWERSAVE;
import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_NAME_STANDBY;
import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_NAME_STANDBY;
import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_NONE;
import static android.net.NetworkPolicyManager.FIREWALL_CHAIN_NONE;
@@ -40,6 +38,7 @@ import static android.net.NetworkStats.TAG_ALL;
import static android.net.NetworkStats.TAG_NONE;
import static android.net.NetworkStats.TAG_NONE;
import static android.net.NetworkStats.UID_ALL;
import static android.net.NetworkStats.UID_ALL;
import static android.net.TrafficStats.UID_TETHERING;
import static android.net.TrafficStats.UID_TETHERING;

import static com.android.server.NetworkManagementService.NetdResponseCode.ClatdStatusResult;
import static com.android.server.NetworkManagementService.NetdResponseCode.ClatdStatusResult;
import static com.android.server.NetworkManagementService.NetdResponseCode.InterfaceGetCfgResult;
import static com.android.server.NetworkManagementService.NetdResponseCode.InterfaceGetCfgResult;
import static com.android.server.NetworkManagementService.NetdResponseCode.InterfaceListResult;
import static com.android.server.NetworkManagementService.NetdResponseCode.InterfaceListResult;
@@ -53,11 +52,9 @@ import static com.android.server.NetworkManagementSocketTagger.PROP_QTAGUID_ENAB


import android.annotation.NonNull;
import android.annotation.NonNull;
import android.app.ActivityManager;
import android.app.ActivityManager;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.ConnectivityManager;
import android.net.INetd;
import android.net.INetd;
import android.net.TetherStatsParcel;
import android.net.INetworkManagementEventObserver;
import android.net.INetworkManagementEventObserver;
import android.net.ITetheringStatsProvider;
import android.net.ITetheringStatsProvider;
import android.net.InterfaceConfiguration;
import android.net.InterfaceConfiguration;
@@ -69,18 +66,15 @@ import android.net.NetworkPolicyManager;
import android.net.NetworkStats;
import android.net.NetworkStats;
import android.net.NetworkUtils;
import android.net.NetworkUtils;
import android.net.RouteInfo;
import android.net.RouteInfo;
import android.net.TetherStatsParcel;
import android.net.UidRange;
import android.net.UidRange;
import android.net.UidRangeParcel;
import android.net.util.NetdService;
import android.net.util.NetdService;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiConfiguration.KeyMgmt;
import android.os.BatteryStats;
import android.os.BatteryStats;
import android.os.Binder;
import android.os.Binder;
import android.os.Handler;
import android.os.Handler;
import android.os.IBinder;
import android.os.IBinder;
import android.os.INetworkActivityListener;
import android.os.INetworkActivityListener;
import android.os.INetworkManagementService;
import android.os.INetworkManagementService;
import android.os.PersistableBundle;
import android.os.PowerManager;
import android.os.PowerManager;
import android.os.Process;
import android.os.Process;
import android.os.RemoteCallbackList;
import android.os.RemoteCallbackList;
@@ -91,12 +85,7 @@ import android.os.StrictMode;
import android.os.SystemClock;
import android.os.SystemClock;
import android.os.SystemProperties;
import android.os.SystemProperties;
import android.os.Trace;
import android.os.Trace;
import android.provider.Settings;
import android.telephony.DataConnectionRealTimeInfo;
import android.telephony.DataConnectionRealTimeInfo;
import android.telephony.PhoneStateListener;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.util.Log;
import android.util.Log;
import android.util.Slog;
import android.util.Slog;
import android.util.SparseBooleanArray;
import android.util.SparseBooleanArray;
@@ -109,13 +98,11 @@ import com.android.internal.net.NetworkStatsFactory;
import com.android.internal.util.DumpUtils;
import com.android.internal.util.DumpUtils;
import com.android.internal.util.HexDump;
import com.android.internal.util.HexDump;
import com.android.internal.util.Preconditions;
import com.android.internal.util.Preconditions;
import com.android.server.NativeDaemonConnector.Command;

import com.android.server.NativeDaemonConnector.SensitiveArg;
import com.google.android.collect.Maps;
import com.google.android.collect.Maps;


import java.io.BufferedReader;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileDescriptor;
import java.io.FileDescriptor;
import java.io.FileInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.IOException;
@@ -123,15 +110,11 @@ import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.InetAddress;
import java.net.InterfaceAddress;
import java.net.InterfaceAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.ArrayList;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashMap;
import java.util.List;
import java.util.List;
import java.util.Map;
import java.util.Map;
import java.util.NoSuchElementException;
import java.util.StringTokenizer;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.CountDownLatch;


/**
/**
@@ -2146,28 +2129,6 @@ public class NetworkManagementService extends INetworkManagementService.Stub
        }
        }
    }
    }


    @Override
    public void startClatd(String interfaceName) throws IllegalStateException {
        mContext.enforceCallingOrSelfPermission(CONNECTIVITY_INTERNAL, TAG);

        try {
            mNetdService.clatdStart(interfaceName);
        } catch (RemoteException | ServiceSpecificException e) {
            throw new IllegalStateException(e);
        }
    }

    @Override
    public void stopClatd(String interfaceName) throws IllegalStateException {
        mContext.enforceCallingOrSelfPermission(CONNECTIVITY_INTERNAL, TAG);

        try {
            mNetdService.clatdStop(interfaceName);
        } catch (RemoteException | ServiceSpecificException e) {
            throw new IllegalStateException(e);
        }
    }

    @Override
    @Override
    public void registerNetworkActivityListener(INetworkActivityListener listener) {
    public void registerNetworkActivityListener(INetworkActivityListener listener) {
        mNetworkActivityListeners.register(listener);
        mNetworkActivityListeners.register(listener);
+8 −5
Original line number Original line Diff line number Diff line
@@ -16,8 +16,9 @@


package com.android.server.connectivity;
package com.android.server.connectivity;


import android.net.InterfaceConfiguration;
import android.net.ConnectivityManager;
import android.net.ConnectivityManager;
import android.net.INetd;
import android.net.InterfaceConfiguration;
import android.net.LinkAddress;
import android.net.LinkAddress;
import android.net.LinkProperties;
import android.net.LinkProperties;
import android.net.NetworkInfo;
import android.net.NetworkInfo;
@@ -59,6 +60,7 @@ public class Nat464Xlat extends BaseNetworkObserver {
        NetworkInfo.State.SUSPENDED,
        NetworkInfo.State.SUSPENDED,
    };
    };


    private final INetd mNetd;
    private final INetworkManagementService mNMService;
    private final INetworkManagementService mNMService;


    // The network we're running on, and its type.
    // The network we're running on, and its type.
@@ -76,7 +78,8 @@ public class Nat464Xlat extends BaseNetworkObserver {
    private String mIface;
    private String mIface;
    private State mState = State.IDLE;
    private State mState = State.IDLE;


    public Nat464Xlat(INetworkManagementService nmService, NetworkAgentInfo nai) {
    public Nat464Xlat(NetworkAgentInfo nai, INetd netd, INetworkManagementService nmService) {
        mNetd = netd;
        mNMService = nmService;
        mNMService = nmService;
        mNetwork = nai;
        mNetwork = nai;
    }
    }
@@ -140,7 +143,7 @@ public class Nat464Xlat extends BaseNetworkObserver {
            return;
            return;
        }
        }
        try {
        try {
            mNMService.startClatd(baseIface);
            mNetd.clatdStart(baseIface);
        } catch(RemoteException|IllegalStateException e) {
        } catch(RemoteException|IllegalStateException e) {
            Slog.e(TAG, "Error starting clatd on " + baseIface, e);
            Slog.e(TAG, "Error starting clatd on " + baseIface, e);
        }
        }
@@ -162,7 +165,7 @@ public class Nat464Xlat extends BaseNetworkObserver {
     */
     */
    private void enterStoppingState() {
    private void enterStoppingState() {
        try {
        try {
            mNMService.stopClatd(mBaseIface);
            mNetd.clatdStop(mBaseIface);
        } catch(RemoteException|IllegalStateException e) {
        } catch(RemoteException|IllegalStateException e) {
            Slog.e(TAG, "Error stopping clatd on " + mBaseIface, e);
            Slog.e(TAG, "Error stopping clatd on " + mBaseIface, e);
        }
        }
@@ -204,7 +207,7 @@ public class Nat464Xlat extends BaseNetworkObserver {
            Slog.e(TAG, "startClat: Can't start clat on null interface");
            Slog.e(TAG, "startClat: Can't start clat on null interface");
            return;
            return;
        }
        }
        // TODO: should we only do this if mNMService.startClatd() succeeds?
        // TODO: should we only do this if mNetd.clatdStart() succeeds?
        Slog.i(TAG, "Starting clatd on " + baseIface);
        Slog.i(TAG, "Starting clatd on " + baseIface);
        enterStartingState(baseIface);
        enterStartingState(baseIface);
    }
    }
+10 −4
Original line number Original line Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.server.connectivity;
package com.android.server.connectivity;


import android.content.Context;
import android.content.Context;
import android.net.INetd;
import android.net.INetworkMonitor;
import android.net.INetworkMonitor;
import android.net.LinkProperties;
import android.net.LinkProperties;
import android.net.Network;
import android.net.Network;
@@ -239,12 +240,15 @@ public class NetworkAgentInfo implements Comparable<NetworkAgentInfo> {
    private static final String TAG = ConnectivityService.class.getSimpleName();
    private static final String TAG = ConnectivityService.class.getSimpleName();
    private static final boolean VDBG = false;
    private static final boolean VDBG = false;
    private final ConnectivityService mConnService;
    private final ConnectivityService mConnService;
    private final INetd mNetd;
    private final INetworkManagementService mNMS;
    private final Context mContext;
    private final Context mContext;
    private final Handler mHandler;
    private final Handler mHandler;


    public NetworkAgentInfo(Messenger messenger, AsyncChannel ac, Network net, NetworkInfo info,
    public NetworkAgentInfo(Messenger messenger, AsyncChannel ac, Network net, NetworkInfo info,
            LinkProperties lp, NetworkCapabilities nc, int score, Context context, Handler handler,
            LinkProperties lp, NetworkCapabilities nc, int score, Context context, Handler handler,
            NetworkMisc misc, ConnectivityService connService) {
            NetworkMisc misc, ConnectivityService connService, INetd netd,
            INetworkManagementService nms) {
        this.messenger = messenger;
        this.messenger = messenger;
        asyncChannel = ac;
        asyncChannel = ac;
        network = net;
        network = net;
@@ -253,6 +257,8 @@ public class NetworkAgentInfo implements Comparable<NetworkAgentInfo> {
        networkCapabilities = nc;
        networkCapabilities = nc;
        currentScore = score;
        currentScore = score;
        mConnService = connService;
        mConnService = connService;
        mNetd = netd;
        mNMS = nms;
        mContext = context;
        mContext = context;
        mHandler = handler;
        mHandler = handler;
        networkMisc = misc;
        networkMisc = misc;
@@ -587,18 +593,18 @@ public class NetworkAgentInfo implements Comparable<NetworkAgentInfo> {


    public void updateClat(INetworkManagementService netd) {
    public void updateClat(INetworkManagementService netd) {
        if (Nat464Xlat.requiresClat(this)) {
        if (Nat464Xlat.requiresClat(this)) {
            maybeStartClat(netd);
            maybeStartClat();
        } else {
        } else {
            maybeStopClat();
            maybeStopClat();
        }
        }
    }
    }


    /** Ensure clat has started for this network. */
    /** Ensure clat has started for this network. */
    public void maybeStartClat(INetworkManagementService netd) {
    public void maybeStartClat() {
        if (clatd != null && clatd.isStarted()) {
        if (clatd != null && clatd.isStarted()) {
            return;
            return;
        }
        }
        clatd = new Nat464Xlat(netd, this);
        clatd = new Nat464Xlat(this, mNetd, mNMS);
        clatd.start();
        clatd.start();
    }
    }


Loading