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

Commit 0bfc6cec authored by Nazanin's avatar Nazanin
Browse files

Wipe carrier certificates in SubscriptionInfoUpdater

so that when certificates are wiped, we also wipe them from
accessRules

Test: CtsNetTestCasesLatestSdk:ConnectivityDiagnosticsManagerTest#testRegisterCallbackWithCarrierPrivileges --rerun-until-failure 20
Bug: 162700101
Change-Id: I9d4a69038e85cbdd8928da697b6c7f0dde8bbb58
Merged-In: I9d4a69038e85cbdd8928da697b6c7f0dde8bbb58
parent 694ea86d
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -1067,15 +1067,16 @@ public class SubscriptionInfoUpdater extends Handler {
        // this current package is not a CarrierServicePackage
        String[] certs = config.getStringArray(
            CarrierConfigManager.KEY_CARRIER_CERTIFICATE_STRING_ARRAY);
        UiccAccessRule[] carrierConfigAccessRules = null;
        if (certs != null) {
            UiccAccessRule[] carrierConfigAccessRules = new UiccAccessRule[certs.length];
            carrierConfigAccessRules = new UiccAccessRule[certs.length];
            for (int i = 0; i < certs.length; i++) {
                carrierConfigAccessRules[i] = new UiccAccessRule(IccUtils.hexStringToBytes(
                    certs[i]), null, 0);
            }
        }
        cv.put(SubscriptionManager.ACCESS_RULES_FROM_CARRIER_CONFIGS,
                UiccAccessRule.encodeRules(carrierConfigAccessRules));
        }

        if (!isCarrierServicePackage(phoneId, configPackageName)) {
            loge("Cannot manage subId=" + currentSubId + ", carrierPackage=" + configPackageName);
+10 −6
Original line number Diff line number Diff line
@@ -753,9 +753,10 @@ public class SubscriptionInfoUpdaterTest extends TelephonyTest {
        mUpdater.updateSubscriptionByCarrierConfig(mPhone.getPhoneId(),
                carrierPackageName, new PersistableBundle());

        verify(mContentProvider, never()).update(any(), any(), any(), any());
        verify(mSubscriptionController, never()).refreshCachedActiveSubscriptionInfoList();
        verify(mSubscriptionController, never()).notifySubscriptionInfoChanged();
        //at each call to updateSubscriptionByCarrierConfig, only carrier certs are updated
        verify(mContentProvider, times(1)).update(any(), any(), any(), any());
        verify(mSubscriptionController, times(1)).notifySubscriptionInfoChanged();
        verify(mSubscriptionController, times(1)).refreshCachedActiveSubscriptionInfoList();
    }

    @Test
@@ -784,7 +785,8 @@ public class SubscriptionInfoUpdaterTest extends TelephonyTest {
                cvCaptor.capture(), eq(null), eq(null));
        assertEquals(1, cvCaptor.getValue().getAsInteger(
                SubscriptionManager.IS_OPPORTUNISTIC).intValue());
        assertEquals(1, cvCaptor.getValue().size());
        // 2 updates: isOpportunistic, and carrier certs:
        assertEquals(2, cvCaptor.getValue().size());
        verify(mSubscriptionController, times(1)).refreshCachedActiveSubscriptionInfoList();
        verify(mSubscriptionController, times(1)).notifySubscriptionInfoChanged();
    }
@@ -820,7 +822,8 @@ public class SubscriptionInfoUpdaterTest extends TelephonyTest {
                cvCaptor.getValue().getAsString(SubscriptionManager.GROUP_UUID));
        assertEquals(carrierPackageName,
                cvCaptor.getValue().getAsString(SubscriptionManager.GROUP_OWNER));
        assertEquals(3, cvCaptor.getValue().size());
        // 4 updates: isOpportunistic, groupUuid, groupOwner, and carrier certs:
        assertEquals(4, cvCaptor.getValue().size());
    }

    @Test
@@ -853,7 +856,8 @@ public class SubscriptionInfoUpdaterTest extends TelephonyTest {
        assertEquals(1, cvCaptor.getValue().getAsInteger(
                SubscriptionManager.IS_OPPORTUNISTIC).intValue());
        assertNull(cvCaptor.getValue().getAsString(SubscriptionManager.GROUP_UUID));
        assertEquals(2, cvCaptor.getValue().size());
        // 3 updates: isOpportunistic, groupUuid, and carrier certs:
        assertEquals(3, cvCaptor.getValue().size());
    }

    @Test