diff --git a/telephony/java/android/telephony/SubscriptionInfo.java b/telephony/java/android/telephony/SubscriptionInfo.java index bb2269fc4d00b..58f2858513758 100644 --- a/telephony/java/android/telephony/SubscriptionInfo.java +++ b/telephony/java/android/telephony/SubscriptionInfo.java @@ -580,7 +580,8 @@ public class SubscriptionInfo implements Parcelable { try { packageInfo = packageManager.getPackageInfo(packageName, PackageManager.GET_SIGNATURES); } catch (PackageManager.NameNotFoundException e) { - throw new IllegalArgumentException("Unknown package: " + packageName, e); + Log.d("SubscriptionInfo", "canManageSubscription: Unknown package: " + packageName, e); + return false; } for (UiccAccessRule rule : allAccessRules) { if (rule.getCarrierPrivilegeStatus(packageInfo) @@ -612,7 +613,9 @@ public class SubscriptionInfo implements Parcelable { */ public @Nullable List getAllAccessRules() { List merged = new ArrayList<>(); - if (mNativeAccessRules != null) merged.addAll(getAccessRules()); + if (mNativeAccessRules != null) { + merged.addAll(getAccessRules()); + } if (mCarrierConfigAccessRules != null) { merged.addAll(Arrays.asList(mCarrierConfigAccessRules)); } diff --git a/telephony/java/android/telephony/SubscriptionManager.java b/telephony/java/android/telephony/SubscriptionManager.java index 8ef63d501a907..8e6e9b842c34e 100644 --- a/telephony/java/android/telephony/SubscriptionManager.java +++ b/telephony/java/android/telephony/SubscriptionManager.java @@ -2642,7 +2642,7 @@ public class SubscriptionManager { * @hide */ public boolean canManageSubscription(SubscriptionInfo info, String packageName) { - if (info.getAllAccessRules() == null) { + if (info == null || info.getAllAccessRules() == null) { return false; } PackageManager packageManager = mContext.getPackageManager(); @@ -2650,7 +2650,8 @@ public class SubscriptionManager { try { packageInfo = packageManager.getPackageInfo(packageName, PackageManager.GET_SIGNATURES); } catch (PackageManager.NameNotFoundException e) { - throw new IllegalArgumentException("Unknown package: " + packageName, e); + logd("Unknown package: " + packageName); + return false; } for (UiccAccessRule rule : info.getAllAccessRules()) { if (rule.getCarrierPrivilegeStatus(packageInfo)