Merge changes from topic "carrier_certs_cherrypick"
* changes: Fix crashes seen when checking for carrierConfig certificates add checking for carrierConfigs certificates for psim
This commit is contained in:
@@ -551,7 +551,6 @@ public class SubscriptionInfo implements Parcelable {
|
||||
*
|
||||
* @param context Context of the application to check.
|
||||
* @return whether the app is authorized to manage this subscription per its metadata.
|
||||
* @throws UnsupportedOperationException if this subscription is not embedded.
|
||||
* @hide
|
||||
* @deprecated - Do not use.
|
||||
*/
|
||||
@@ -567,15 +566,11 @@ public class SubscriptionInfo implements Parcelable {
|
||||
* @param context Any context.
|
||||
* @param packageName Package name of the app to check.
|
||||
* @return whether the app is authorized to manage this subscription per its metadata.
|
||||
* @throws UnsupportedOperationException if this subscription is not embedded.
|
||||
* @hide
|
||||
* @deprecated - Do not use.
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean canManageSubscription(Context context, String packageName) {
|
||||
if (!isEmbedded()) {
|
||||
throw new UnsupportedOperationException("Not an embedded subscription");
|
||||
}
|
||||
List<UiccAccessRule> allAccessRules = getAllAccessRules();
|
||||
if (allAccessRules == null) {
|
||||
return false;
|
||||
@@ -585,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)
|
||||
@@ -606,9 +602,6 @@ public class SubscriptionInfo implements Parcelable {
|
||||
*/
|
||||
@SystemApi
|
||||
public @Nullable List<UiccAccessRule> getAccessRules() {
|
||||
if (!isEmbedded()) {
|
||||
throw new UnsupportedOperationException("Not an embedded subscription");
|
||||
}
|
||||
if (mNativeAccessRules == null) return null;
|
||||
return Arrays.asList(mNativeAccessRules);
|
||||
}
|
||||
@@ -619,11 +612,10 @@ public class SubscriptionInfo implements Parcelable {
|
||||
* @hide
|
||||
*/
|
||||
public @Nullable List<UiccAccessRule> getAllAccessRules() {
|
||||
if (!isEmbedded()) {
|
||||
throw new UnsupportedOperationException("Not an embedded subscription");
|
||||
}
|
||||
List<UiccAccessRule> merged = new ArrayList<>();
|
||||
if (mNativeAccessRules != null) merged.addAll(getAccessRules());
|
||||
if (mNativeAccessRules != null) {
|
||||
merged.addAll(getAccessRules());
|
||||
}
|
||||
if (mCarrierConfigAccessRules != null) {
|
||||
merged.addAll(Arrays.asList(mCarrierConfigAccessRules));
|
||||
}
|
||||
|
||||
@@ -2624,7 +2624,6 @@ public class SubscriptionManager {
|
||||
*
|
||||
* @param info The subscription to check.
|
||||
* @return whether the app is authorized to manage this subscription per its metadata.
|
||||
* @throws IllegalArgumentException if this subscription is not embedded.
|
||||
*/
|
||||
public boolean canManageSubscription(SubscriptionInfo info) {
|
||||
return canManageSubscription(info, mContext.getPackageName());
|
||||
@@ -2640,14 +2639,10 @@ public class SubscriptionManager {
|
||||
* @param info The subscription to check.
|
||||
* @param packageName Package name of the app to check.
|
||||
* @return whether the app is authorized to manage this subscription per its access rules.
|
||||
* @throws IllegalArgumentException if this subscription is not embedded.
|
||||
* @hide
|
||||
*/
|
||||
public boolean canManageSubscription(SubscriptionInfo info, String packageName) {
|
||||
if (!info.isEmbedded()) {
|
||||
throw new IllegalArgumentException("Not an embedded subscription");
|
||||
}
|
||||
if (info.getAllAccessRules() == null) {
|
||||
if (info == null || info.getAllAccessRules() == null) {
|
||||
return false;
|
||||
}
|
||||
PackageManager packageManager = mContext.getPackageManager();
|
||||
@@ -2655,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)
|
||||
@@ -3048,7 +3044,7 @@ public class SubscriptionManager {
|
||||
// to the caller.
|
||||
boolean hasCarrierPrivilegePermission = TelephonyManager.from(mContext)
|
||||
.hasCarrierPrivileges(info.getSubscriptionId())
|
||||
|| (info.isEmbedded() && canManageSubscription(info));
|
||||
|| canManageSubscription(info);
|
||||
return hasCarrierPrivilegePermission;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user