Merge "Avoid spurious logging for read device identifier denial." into sc-dev

This commit is contained in:
Amit Mahajan
2021-05-06 17:54:58 +00:00
committed by Android (Google) Code Review

View File

@@ -263,7 +263,7 @@ public final class TelephonyPermissions {
return true; return true;
} }
return checkPrivilegedReadPermissionOrCarrierPrivilegePermission( return checkPrivilegedReadPermissionOrCarrierPrivilegePermission(
context, subId, callingPackage, callingFeatureId, message, true); context, subId, callingPackage, callingFeatureId, message, true, true);
} }
/** /**
@@ -286,14 +286,28 @@ public final class TelephonyPermissions {
*/ */
public static boolean checkCallingOrSelfReadSubscriberIdentifiers(Context context, int subId, public static boolean checkCallingOrSelfReadSubscriberIdentifiers(Context context, int subId,
String callingPackage, @Nullable String callingFeatureId, String message) { String callingPackage, @Nullable String callingFeatureId, String message) {
return checkCallingOrSelfReadSubscriberIdentifiers(context, subId, callingPackage,
callingFeatureId, message, true);
}
/**
* Same as {@link #checkCallingOrSelfReadSubscriberIdentifiers(Context, int, String, String,
* String)} except this allows an additional parameter reportFailure. Caller may not want to
* report a failure when this is an internal/intermediate check, for example,
* SubscriptionController calls this with an INVALID_SUBID to check if caller has the required
* permissions to bypass carrier privilege checks.
* @param reportFailure Indicates if failure should be reported.
*/
public static boolean checkCallingOrSelfReadSubscriberIdentifiers(Context context, int subId,
String callingPackage, @Nullable String callingFeatureId, String message,
boolean reportFailure) {
if (checkCallingOrSelfUseIccAuthWithDeviceIdentifier(context, callingPackage, if (checkCallingOrSelfUseIccAuthWithDeviceIdentifier(context, callingPackage,
callingFeatureId, message)) { callingFeatureId, message)) {
return true; return true;
} }
return checkPrivilegedReadPermissionOrCarrierPrivilegePermission( return checkPrivilegedReadPermissionOrCarrierPrivilegePermission(
context, subId, callingPackage, callingFeatureId, message, false); context, subId, callingPackage, callingFeatureId, message, false, reportFailure);
} }
/** /**
* Checks whether the app with the given pid/uid can read device identifiers. * Checks whether the app with the given pid/uid can read device identifiers.
* *
@@ -314,7 +328,7 @@ public final class TelephonyPermissions {
*/ */
private static boolean checkPrivilegedReadPermissionOrCarrierPrivilegePermission( private static boolean checkPrivilegedReadPermissionOrCarrierPrivilegePermission(
Context context, int subId, String callingPackage, @Nullable String callingFeatureId, Context context, int subId, String callingPackage, @Nullable String callingFeatureId,
String message, boolean allowCarrierPrivilegeOnAnySub) { String message, boolean allowCarrierPrivilegeOnAnySub, boolean reportFailure) {
int uid = Binder.getCallingUid(); int uid = Binder.getCallingUid();
int pid = Binder.getCallingPid(); int pid = Binder.getCallingPid();
@@ -334,8 +348,12 @@ public final class TelephonyPermissions {
return true; return true;
} }
return reportAccessDeniedToReadIdentifiers(context, subId, pid, uid, callingPackage, if (reportFailure) {
message); return reportAccessDeniedToReadIdentifiers(context, subId, pid, uid, callingPackage,
message);
} else {
return false;
}
} }
/** /**