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

Commit b474e68d authored by Nazanin Bakhshi's avatar Nazanin Bakhshi Committed by Android (Google) Code Review
Browse files

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

parents 13d4b5e4 b8d40e5a
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -382,6 +382,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(
@@ -402,6 +404,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);
@@ -416,7 +419,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
@@ -67,6 +67,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;

@@ -975,6 +977,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
@@ -83,19 +83,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