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

Commit fae1d114 authored by Jack Yu's avatar Jack Yu Committed by Gerrit Code Review
Browse files

Merge changes I6a74fcaf,I4499dc5c,Ie308b4da

* changes:
  Fixed dangling DC controller
  Fixed crash in telephony when underlying data service died
  Support to trigger bugreport when iwlan/qualified network service crash
parents c1e14ef1 4eaafd6d
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -182,8 +182,8 @@ public class NetworkRegistrationManager extends Handler {
        @Override
        public void binderDied() {
            // TODO: try to restart the service.
            logd("NetworkService(" + mComponentName +  " transport type "
                    + mTransportType + ") died.");
            logd("Network service " + mComponentName + " for transport type "
                    + AccessNetworkConstants.transportTypeToString(mTransportType) + " died.");
        }
    }

+8 −1
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ import android.os.RemoteException;
import android.os.UserHandle;
import android.telephony.AccessNetworkConstants.AccessNetworkType;
import android.telephony.Annotation.ApnType;
import android.telephony.AnomalyReporter;
import android.telephony.CarrierConfigManager;
import android.telephony.data.ApnSetting;
import android.telephony.data.ApnThrottleStatus;
@@ -52,6 +53,7 @@ import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.UUID;
import java.util.stream.Collectors;

/**
@@ -62,6 +64,8 @@ import java.util.stream.Collectors;
public class AccessNetworksManager extends Handler {
    private static final String TAG = AccessNetworksManager.class.getSimpleName();
    private static final boolean DBG = false;
    private final UUID mAnomalyUUID = UUID.fromString("c2d1a639-00e2-4561-9619-6acf37d90590");
    private String mLastBoundPackageName;

    private static final int[] SUPPORTED_APN_TYPES = {
            ApnSetting.TYPE_DEFAULT,
@@ -156,7 +160,9 @@ public class AccessNetworksManager extends Handler {
        @Override
        public void binderDied() {
            // TODO: try to rebind the service.
            loge("QualifiedNetworksService(" + mTargetBindingPackageName + ") died.");
            String message = "Qualified network service " + mLastBoundPackageName + " died.";
            loge(message);
            AnomalyReporter.reportAnomaly(mAnomalyUUID, message);
        }
    }

@@ -178,6 +184,7 @@ public class AccessNetworksManager extends Handler {
            if (DBG) log("onServiceConnected " + name);
            mIQualifiedNetworksService = IQualifiedNetworksService.Stub.asInterface(service);
            mDeathRecipient = new AccessNetworksManagerDeathRecipient();
            mLastBoundPackageName = getQualifiedNetworksServicePackageName();

            try {
                service.linkToDeath(mDeathRecipient, 0 /* flags */);
+4 −3
Original line number Diff line number Diff line
@@ -327,7 +327,6 @@ public class DataConnection extends StateMachine {
    static final int EVENT_SETUP_DATA_CONNECTION_DONE = BASE + 1;
    static final int EVENT_DEACTIVATE_DONE = BASE + 3;
    static final int EVENT_DISCONNECT = BASE + 4;
    static final int EVENT_RIL_CONNECTED = BASE + 5;
    static final int EVENT_DISCONNECT_ALL = BASE + 6;
    static final int EVENT_DATA_STATE_CHANGED = BASE + 7;
    static final int EVENT_TEAR_DOWN_NOW = BASE + 8;
@@ -367,7 +366,6 @@ public class DataConnection extends StateMachine {
                "EVENT_SETUP_DATA_CONNECTION_DONE";
        sCmdToString[EVENT_DEACTIVATE_DONE - BASE] = "EVENT_DEACTIVATE_DONE";
        sCmdToString[EVENT_DISCONNECT - BASE] = "EVENT_DISCONNECT";
        sCmdToString[EVENT_RIL_CONNECTED - BASE] = "EVENT_RIL_CONNECTED";
        sCmdToString[EVENT_DISCONNECT_ALL - BASE] = "EVENT_DISCONNECT_ALL";
        sCmdToString[EVENT_DATA_STATE_CHANGED - BASE] = "EVENT_DATA_STATE_CHANGED";
        sCmdToString[EVENT_TEAR_DOWN_NOW - BASE] = "EVENT_TEAR_DOWN_NOW";
@@ -3100,7 +3098,10 @@ public class DataConnection extends StateMachine {
     */
    public void tearDownAll(String reason, @ReleaseNetworkType int releaseType,
                            Message onCompletedMsg) {
        if (DBG) log("tearDownAll: reason=" + reason + ", releaseType=" + releaseType);
        if (DBG) {
            log("tearDownAll: reason=" + reason + ", releaseType="
                    + DcTracker.releaseTypeToString(releaseType));
        }
        sendMessage(DataConnection.EVENT_DISCONNECT_ALL,
                new DisconnectParams(null, reason, releaseType, onCompletedMsg));
    }
+2 −1
Original line number Diff line number Diff line
@@ -121,9 +121,10 @@ public class DataConnectionReasons {
        DATA_ALREADY_CONNECTED(true),   // Data is already connected. No need to setup data again.
        ON_IWLAN(true),
        IN_ECBM(true),
        ON_OTHER_TRANSPORT(true);   // When data retry occurs, the given APN type's preferred
        ON_OTHER_TRANSPORT(true),   // When data retry occurs, the given APN type's preferred
                                    // transport might be already changed. In this case we
                                    // should disallow data retry.
        DATA_SERVICE_NOT_READY(true);   // Underlying data service is not bound.

        private boolean mIsHardReason;

+8 −2
Original line number Diff line number Diff line
@@ -112,6 +112,9 @@ public class DataServiceManager extends Handler {

    private CellularDataServiceConnection mServiceConnection;

    private final UUID mAnomalyUUID = UUID.fromString("fc1956de-c080-45de-8431-a1faab687110");
    private String mLastBoundPackageName;

    /**
     * Helpful for logging
     * @return the tag name
@@ -142,8 +145,10 @@ public class DataServiceManager extends Handler {
        @Override
        public void binderDied() {
            // TODO: try to rebind the service.
            loge("DataService " + mTargetBindingPackageName +  ", transport type " + mTransportType
                    + " died.");
            String message = "Data service " + mLastBoundPackageName +  " for transport type "
                    + AccessNetworkConstants.transportTypeToString(mTransportType) + " died.";
            loge(message);
            AnomalyReporter.reportAnomaly(mAnomalyUUID, message);
        }
    }

@@ -215,6 +220,7 @@ public class DataServiceManager extends Handler {
            mIDataService = IDataService.Stub.asInterface(service);
            mDeathRecipient = new DataServiceManagerDeathRecipient();
            mBound = true;
            mLastBoundPackageName = getDataServicePackageName();

            try {
                service.linkToDeath(mDeathRecipient, 0);
Loading