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

Commit be4c0539 authored by Hall Liu's avatar Hall Liu Committed by android-build-merger
Browse files

Merge "add certs to carrier configs and store them as UiccAccessRules"

am: 476bbc62

Change-Id: Ibd272e1645f1e38c0819e23e4342f4c09219292a
parents c056fc4c 476bbc62
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -352,6 +352,8 @@ public class SubscriptionController extends ISub.Stub {
        } else {
            accessRules = null;
        }
        UiccAccessRule[] carrierConfigAccessRules = UiccAccessRule.decodeRules(cursor.getBlob(
            cursor.getColumnIndexOrThrow(SubscriptionManager.ACCESS_RULES_FROM_CARRIER_CONFIGS)));
        boolean isOpportunistic = cursor.getInt(cursor.getColumnIndexOrThrow(
                SubscriptionManager.IS_OPPORTUNISTIC)) == 1;
        String groupUUID = cursor.getString(cursor.getColumnIndexOrThrow(
@@ -372,6 +374,7 @@ public class SubscriptionController extends ISub.Stub {
                    + " dataRoaming:" + dataRoaming + " mcc:" + mcc + " mnc:" + mnc
                    + " countIso:" + countryIso + " isEmbedded:"
                    + isEmbedded + " accessRules:" + Arrays.toString(accessRules)
                    + " carrierConfigAccessRules: " + Arrays.toString(carrierConfigAccessRules)
                    + " cardId:" + cardIdToPrint + " publicCardId:" + publicCardId
                    + " isOpportunistic:" + isOpportunistic + " groupUUID:" + groupUUID
                    + " profileClass:" + profileClass + " subscriptionType: " + subType);
@@ -386,7 +389,7 @@ public class SubscriptionController extends ISub.Stub {
                carrierName, nameSource, iconTint, number, dataRoaming, iconBitmap, mcc, mnc,
                countryIso, isEmbedded, accessRules, cardId, publicCardId, isOpportunistic,
                groupUUID, false /* isGroupDisabled */, carrierId, profileClass, subType,
                groupOwner);
                groupOwner, carrierConfigAccessRules);
        info.setAssociatedPlmns(ehplmns, hplmns);
        return info;
    }
+19 −0
Original line number Diff line number Diff line
@@ -66,6 +66,8 @@ import com.android.internal.telephony.uicc.UiccSlot;

import java.io.FileDescriptor;
import java.io.PrintWriter;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.List;

@@ -980,6 +982,23 @@ public class SubscriptionInfoUpdater extends Handler {
            cv.put(SubscriptionManager.IS_OPPORTUNISTIC, isOpportunistic ? "1" : "0");
        }

        String[] certs = config.getStringArray(
            CarrierConfigManager.KEY_CARRIER_CERTIFICATE_STRING_ARRAY);
        if (certs != null) {
            UiccAccessRule[] carrierConfigAccessRules = new UiccAccessRule[certs.length];
            try {
                for (int i = 0; i < certs.length; i++) {
                    carrierConfigAccessRules[i] = new UiccAccessRule(
                        MessageDigest.getInstance("SHA-256").digest(certs[i].getBytes()), null, 0);
                }
            } catch (NoSuchAlgorithmException e) {
                throw new RuntimeException("for setCarrierConfigAccessRules, SHA-256 must exist",
                    e);
            }
            cv.put(SubscriptionManager.ACCESS_RULES_FROM_CARRIER_CONFIGS,
                    UiccAccessRule.encodeRules(carrierConfigAccessRules));
        }

        String groupUuidString =
                config.getString(CarrierConfigManager.KEY_SUBSCRIPTION_GROUP_UUID_STRING, "");
        ParcelUuid groupUuid = null;
+2 −0
Original line number Diff line number Diff line
@@ -489,6 +489,8 @@ public class UiccCarrierPrivilegeRules extends Handler {
                            mRules += IccUtils.bytesToHexString(response.payload)
                                    .toUpperCase(Locale.US);
                            if (isDataComplete()) {
                                //TODO: here's where AccessRules are being updated from the psim
                                // b/139133814
                                mAccessRules.addAll(parseRules(mRules));
                                if (mAIDInUse == ARAD) {
                                    mCheckedRules = true;
+3 −2
Original line number Diff line number Diff line
@@ -109,8 +109,9 @@ public class FakeTelephonyProvider extends MockContentProvider {
                    + SubscriptionManager.SUBSCRIPTION_TYPE + " INTEGER DEFAULT 0,"
                    + SubscriptionManager.WHITE_LISTED_APN_DATA + " INTEGER DEFAULT 0,"
                    + SubscriptionManager.GROUP_OWNER + " TEXT,"
                    + SubscriptionManager.DATA_ENABLED_OVERRIDE_RULES + " TEXT"
                    + SubscriptionManager.IMSI + " TEXT"
                    + SubscriptionManager.DATA_ENABLED_OVERRIDE_RULES + " TEXT,"
                    + SubscriptionManager.IMSI + " TEXT,"
                    + SubscriptionManager.ACCESS_RULES_FROM_CARRIER_CONFIGS + " BLOB"
                    + ");";
        }

+3 −3
Original line number Diff line number Diff line
@@ -86,19 +86,19 @@ public class MultiSimSettingControllerTest extends TelephonyTest {
            "T-mobile", 0, 255, "12345", 0, null, "310", "260",
            "156", false, null, null, -1, false, mGroupUuid1.toString(), false,
            TelephonyManager.UNKNOWN_CARRIER_ID, SubscriptionManager.PROFILE_CLASS_DEFAULT,
            SubscriptionManager.SUBSCRIPTION_TYPE_LOCAL_SIM, null);
            SubscriptionManager.SUBSCRIPTION_TYPE_LOCAL_SIM, null, null);

    private SubscriptionInfo mSubInfo3 = new SubscriptionInfo(3, "subInfo3 IccId", -1, "T-mobile",
            "T-mobile", 0, 255, "12345", 0, null, "310", "260",
            "156", false, null, null, -1, false, mGroupUuid1.toString(), false,
            TelephonyManager.UNKNOWN_CARRIER_ID, SubscriptionManager.PROFILE_CLASS_DEFAULT,
            SubscriptionManager.SUBSCRIPTION_TYPE_LOCAL_SIM, null);
            SubscriptionManager.SUBSCRIPTION_TYPE_LOCAL_SIM, null, null);

    private SubscriptionInfo mSubInfo4 = new SubscriptionInfo(4, "subInfo4 IccId", -1, "T-mobile",
            "T-mobile", 0, 255, "12345", 0, null, "310", "260",
            "156", false, null, null, -1, false, mGroupUuid1.toString(), false,
            TelephonyManager.UNKNOWN_CARRIER_ID, SubscriptionManager.PROFILE_CLASS_DEFAULT,
            SubscriptionManager.SUBSCRIPTION_TYPE_LOCAL_SIM, null);
            SubscriptionManager.SUBSCRIPTION_TYPE_LOCAL_SIM, null, null);

    @Before
    public void setUp() throws Exception {
Loading