Loading src/java/com/android/internal/telephony/CarrierResolver.java +7 −4 Original line number Diff line number Diff line Loading @@ -132,8 +132,13 @@ public class CarrierResolver extends Handler { * /ACTION_SIM_APPLICATION_STATE_CHANGED * 3. ACTION_SUBSCRIPTION_CARRIER_IDENTITY_CHANGED * * For SIM refresh either reset or file update, SubscriptionInfoUpdater will re-trigger * carrier identification with sim loaded state. * For SIM refresh either reset or init refresh type, SubscriptionInfoUpdater will re-trigger * carrier identification with sim loaded state. Framework today silently handle single file * refresh type. * TODO: check fileId from single file refresh, if the refresh file is IMSI, gid1 or other * records which might change carrier id, framework should trigger sim loaded state just like * other refresh events: INIT or RESET and which will ultimately trigger carrier * re-identification. */ public void resolveSubscriptionCarrierId(String simState) { logd("[resolveSubscriptionCarrierId] simState: " + simState); Loading Loading @@ -224,13 +229,11 @@ public class CarrierResolver extends Handler { if (mIccRecords != newIccRecords) { if (mIccRecords != null) { logd("Removing stale icc objects."); mIccRecords.unregisterForRecordsLoaded(this); mIccRecords.unregisterForRecordsOverride(this); mIccRecords = null; } if (newIccRecords != null) { logd("new Icc object"); newIccRecords.registerForRecordsLoaded(this, SIM_LOAD_EVENT, null); newIccRecords.registerForRecordsOverride(this, SIM_LOAD_EVENT, null); mIccRecords = newIccRecords; } Loading src/java/com/android/internal/telephony/SubscriptionController.java +3 −1 Original line number Diff line number Diff line Loading @@ -2856,6 +2856,9 @@ public class SubscriptionController extends ISub.Stub { if (subIdList == null || subIdList.length == 0) { throw new IllegalArgumentException("Invalid subIdList " + subIdList); } // Makes sure calling package matches caller UID. mAppOps.checkPackage(Binder.getCallingUid(), callingPackage); // If it doesn't have modify phone state permission, or carrier privilege permission, // a SecurityException will be thrown. if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.MODIFY_PHONE_STATE) Loading Loading @@ -3081,7 +3084,6 @@ public class SubscriptionController extends ISub.Stub { * @return true if checking passes on all subId, false otherwise. */ private boolean checkCarrierPrivilegeOnSubList(int[] subIdList, String callingPackage) { mAppOps.checkPackage(Binder.getCallingUid(), callingPackage); // Check carrier privilege permission on active subscriptions first. // If it fails, they could be inactive. So keep them in a HashSet and later check // access rules in our database. Loading src/java/com/android/internal/telephony/uicc/UiccController.java +1 −0 Original line number Diff line number Diff line Loading @@ -717,6 +717,7 @@ public class UiccController extends Handler { ArrayList<UiccCardInfo> infos = new ArrayList<>(); for (int slotIndex = 0; slotIndex < mUiccSlots.length; slotIndex++) { final UiccSlot slot = mUiccSlots[slotIndex]; if (slot == null) continue; boolean isEuicc = slot.isEuicc(); String eid = null; UiccCard card = slot.getUiccCard(); Loading Loading
src/java/com/android/internal/telephony/CarrierResolver.java +7 −4 Original line number Diff line number Diff line Loading @@ -132,8 +132,13 @@ public class CarrierResolver extends Handler { * /ACTION_SIM_APPLICATION_STATE_CHANGED * 3. ACTION_SUBSCRIPTION_CARRIER_IDENTITY_CHANGED * * For SIM refresh either reset or file update, SubscriptionInfoUpdater will re-trigger * carrier identification with sim loaded state. * For SIM refresh either reset or init refresh type, SubscriptionInfoUpdater will re-trigger * carrier identification with sim loaded state. Framework today silently handle single file * refresh type. * TODO: check fileId from single file refresh, if the refresh file is IMSI, gid1 or other * records which might change carrier id, framework should trigger sim loaded state just like * other refresh events: INIT or RESET and which will ultimately trigger carrier * re-identification. */ public void resolveSubscriptionCarrierId(String simState) { logd("[resolveSubscriptionCarrierId] simState: " + simState); Loading Loading @@ -224,13 +229,11 @@ public class CarrierResolver extends Handler { if (mIccRecords != newIccRecords) { if (mIccRecords != null) { logd("Removing stale icc objects."); mIccRecords.unregisterForRecordsLoaded(this); mIccRecords.unregisterForRecordsOverride(this); mIccRecords = null; } if (newIccRecords != null) { logd("new Icc object"); newIccRecords.registerForRecordsLoaded(this, SIM_LOAD_EVENT, null); newIccRecords.registerForRecordsOverride(this, SIM_LOAD_EVENT, null); mIccRecords = newIccRecords; } Loading
src/java/com/android/internal/telephony/SubscriptionController.java +3 −1 Original line number Diff line number Diff line Loading @@ -2856,6 +2856,9 @@ public class SubscriptionController extends ISub.Stub { if (subIdList == null || subIdList.length == 0) { throw new IllegalArgumentException("Invalid subIdList " + subIdList); } // Makes sure calling package matches caller UID. mAppOps.checkPackage(Binder.getCallingUid(), callingPackage); // If it doesn't have modify phone state permission, or carrier privilege permission, // a SecurityException will be thrown. if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.MODIFY_PHONE_STATE) Loading Loading @@ -3081,7 +3084,6 @@ public class SubscriptionController extends ISub.Stub { * @return true if checking passes on all subId, false otherwise. */ private boolean checkCarrierPrivilegeOnSubList(int[] subIdList, String callingPackage) { mAppOps.checkPackage(Binder.getCallingUid(), callingPackage); // Check carrier privilege permission on active subscriptions first. // If it fails, they could be inactive. So keep them in a HashSet and later check // access rules in our database. Loading
src/java/com/android/internal/telephony/uicc/UiccController.java +1 −0 Original line number Diff line number Diff line Loading @@ -717,6 +717,7 @@ public class UiccController extends Handler { ArrayList<UiccCardInfo> infos = new ArrayList<>(); for (int slotIndex = 0; slotIndex < mUiccSlots.length; slotIndex++) { final UiccSlot slot = mUiccSlots[slotIndex]; if (slot == null) continue; boolean isEuicc = slot.isEuicc(); String eid = null; UiccCard card = slot.getUiccCard(); Loading