Loading src/java/com/android/internal/telephony/SubscriptionController.java +4 −1 Original line number Diff line number Diff line Loading @@ -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( Loading @@ -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); Loading @@ -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; } Loading src/java/com/android/internal/telephony/SubscriptionInfoUpdater.java +19 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading src/java/com/android/internal/telephony/uicc/UiccCarrierPrivilegeRules.java +2 −0 Original line number Diff line number Diff line Loading @@ -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; Loading tests/telephonytests/src/com/android/internal/telephony/FakeTelephonyProvider.java +3 −2 Original line number Diff line number Diff line Loading @@ -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" + ");"; } Loading tests/telephonytests/src/com/android/internal/telephony/MultiSimSettingControllerTest.java +3 −3 Original line number Diff line number Diff line Loading @@ -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 Loading
src/java/com/android/internal/telephony/SubscriptionController.java +4 −1 Original line number Diff line number Diff line Loading @@ -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( Loading @@ -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); Loading @@ -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; } Loading
src/java/com/android/internal/telephony/SubscriptionInfoUpdater.java +19 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading
src/java/com/android/internal/telephony/uicc/UiccCarrierPrivilegeRules.java +2 −0 Original line number Diff line number Diff line Loading @@ -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; Loading
tests/telephonytests/src/com/android/internal/telephony/FakeTelephonyProvider.java +3 −2 Original line number Diff line number Diff line Loading @@ -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" + ");"; } Loading
tests/telephonytests/src/com/android/internal/telephony/MultiSimSettingControllerTest.java +3 −3 Original line number Diff line number Diff line Loading @@ -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