Loading src/java/com/android/internal/telephony/SubscriptionInfoUpdater.java +33 −38 Original line number Diff line number Diff line Loading @@ -66,8 +66,6 @@ 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 @@ -967,39 +965,35 @@ public class SubscriptionInfoUpdater extends Handler { return; } if (!isCarrierServicePackage(phoneId, configPackageName)) { loge("Cannot manage subId=" + currentSubId + ", carrierPackage=" + configPackageName); return; } ContentValues cv = new ContentValues(); boolean isOpportunistic = config.getBoolean( CarrierConfigManager.KEY_IS_OPPORTUNISTIC_SUBSCRIPTION_BOOL, false); if (currentSubInfo.isOpportunistic() != isOpportunistic) { if (DBG) logd("Set SubId=" + currentSubId + " isOpportunistic=" + isOpportunistic); cv.put(SubscriptionManager.IS_OPPORTUNISTIC, isOpportunistic ? "1" : "0"); } ParcelUuid groupUuid = null; // carrier certificates are not subscription-specific, so we want to load them even if // this current package is not a CarrierServicePackage 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); 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); } else { boolean isOpportunistic = config.getBoolean( CarrierConfigManager.KEY_IS_OPPORTUNISTIC_SUBSCRIPTION_BOOL, false); if (currentSubInfo.isOpportunistic() != isOpportunistic) { if (DBG) logd("Set SubId=" + currentSubId + " isOpportunistic=" + isOpportunistic); cv.put(SubscriptionManager.IS_OPPORTUNISTIC, isOpportunistic ? "1" : "0"); } String groupUuidString = config.getString(CarrierConfigManager.KEY_SUBSCRIPTION_GROUP_UUID_STRING, ""); ParcelUuid groupUuid = null; if (!TextUtils.isEmpty(groupUuidString)) { try { // Update via a UUID Structure to ensure consistent formatting Loading @@ -1021,6 +1015,7 @@ public class SubscriptionInfoUpdater extends Handler { loge("Invalid Group UUID=" + groupUuidString); } } } if (cv.size() > 0 && mContext.getContentResolver().update(SubscriptionManager .getUriForSubscriptionId(currentSubId), cv, null, null) > 0) { sc.refreshCachedActiveSubscriptionInfoList(); Loading tests/telephonytests/src/com/android/internal/telephony/SubscriptionInfoUpdaterTest.java +6 −11 Original line number Diff line number Diff line Loading @@ -56,6 +56,7 @@ import android.test.suitebuilder.annotation.SmallTest; import com.android.internal.telephony.euicc.EuiccController; import com.android.internal.telephony.uicc.IccFileHandler; import com.android.internal.telephony.uicc.IccRecords; import com.android.internal.telephony.uicc.IccUtils; import com.android.internal.telephony.uicc.UiccSlot; import org.junit.After; Loading @@ -66,8 +67,6 @@ import org.mockito.Mock; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; Loading Loading @@ -764,17 +763,13 @@ public class SubscriptionInfoUpdaterTest extends TelephonyTest { @SmallTest public void testUpdateFromCarrierConfigCarrierCertificates() { String[] certs = new String[2]; certs[0] = "testCertificate"; certs[1] = "testCertificate2"; certs[0] = "d1f1"; certs[1] = "b5d6"; 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); IccUtils.hexStringToBytes(certs[i]), null, 0); } final int phoneId = mPhone.getPhoneId(); Loading Loading
src/java/com/android/internal/telephony/SubscriptionInfoUpdater.java +33 −38 Original line number Diff line number Diff line Loading @@ -66,8 +66,6 @@ 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 @@ -967,39 +965,35 @@ public class SubscriptionInfoUpdater extends Handler { return; } if (!isCarrierServicePackage(phoneId, configPackageName)) { loge("Cannot manage subId=" + currentSubId + ", carrierPackage=" + configPackageName); return; } ContentValues cv = new ContentValues(); boolean isOpportunistic = config.getBoolean( CarrierConfigManager.KEY_IS_OPPORTUNISTIC_SUBSCRIPTION_BOOL, false); if (currentSubInfo.isOpportunistic() != isOpportunistic) { if (DBG) logd("Set SubId=" + currentSubId + " isOpportunistic=" + isOpportunistic); cv.put(SubscriptionManager.IS_OPPORTUNISTIC, isOpportunistic ? "1" : "0"); } ParcelUuid groupUuid = null; // carrier certificates are not subscription-specific, so we want to load them even if // this current package is not a CarrierServicePackage 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); 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); } else { boolean isOpportunistic = config.getBoolean( CarrierConfigManager.KEY_IS_OPPORTUNISTIC_SUBSCRIPTION_BOOL, false); if (currentSubInfo.isOpportunistic() != isOpportunistic) { if (DBG) logd("Set SubId=" + currentSubId + " isOpportunistic=" + isOpportunistic); cv.put(SubscriptionManager.IS_OPPORTUNISTIC, isOpportunistic ? "1" : "0"); } String groupUuidString = config.getString(CarrierConfigManager.KEY_SUBSCRIPTION_GROUP_UUID_STRING, ""); ParcelUuid groupUuid = null; if (!TextUtils.isEmpty(groupUuidString)) { try { // Update via a UUID Structure to ensure consistent formatting Loading @@ -1021,6 +1015,7 @@ public class SubscriptionInfoUpdater extends Handler { loge("Invalid Group UUID=" + groupUuidString); } } } if (cv.size() > 0 && mContext.getContentResolver().update(SubscriptionManager .getUriForSubscriptionId(currentSubId), cv, null, null) > 0) { sc.refreshCachedActiveSubscriptionInfoList(); Loading
tests/telephonytests/src/com/android/internal/telephony/SubscriptionInfoUpdaterTest.java +6 −11 Original line number Diff line number Diff line Loading @@ -56,6 +56,7 @@ import android.test.suitebuilder.annotation.SmallTest; import com.android.internal.telephony.euicc.EuiccController; import com.android.internal.telephony.uicc.IccFileHandler; import com.android.internal.telephony.uicc.IccRecords; import com.android.internal.telephony.uicc.IccUtils; import com.android.internal.telephony.uicc.UiccSlot; import org.junit.After; Loading @@ -66,8 +67,6 @@ import org.mockito.Mock; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; Loading Loading @@ -764,17 +763,13 @@ public class SubscriptionInfoUpdaterTest extends TelephonyTest { @SmallTest public void testUpdateFromCarrierConfigCarrierCertificates() { String[] certs = new String[2]; certs[0] = "testCertificate"; certs[1] = "testCertificate2"; certs[0] = "d1f1"; certs[1] = "b5d6"; 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); IccUtils.hexStringToBytes(certs[i]), null, 0); } final int phoneId = mPhone.getPhoneId(); Loading