diff options
| author | 2020-01-17 22:09:49 +0000 | |
|---|---|---|
| committer | 2020-01-17 22:09:49 +0000 | |
| commit | a4ba1c1a470bf23ca1fb6568796f6b9f4cb3f9c8 (patch) | |
| tree | 79e31c5104704bc8a9cb558478faad792d5cbf1b | |
| parent | 9f280c19b4764cabc4fd678e85490baa8c185855 (diff) | |
| parent | ba526d50c94751de246a2d8329336d39e920baaf (diff) | |
Merge "Revert "Revert "Add method to enforce READ_PRECISE_PHONE_STATE p..."" am: 55f9664eb3 am: ba526d50c9
Change-Id: Ie0809641be9de560d0efb9c3bf4cc8289b043300
| -rw-r--r-- | telephony/common/com/android/internal/telephony/TelephonyPermissions.java | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/telephony/common/com/android/internal/telephony/TelephonyPermissions.java b/telephony/common/com/android/internal/telephony/TelephonyPermissions.java index c8e2b8962072..5beb06d8595a 100644 --- a/telephony/common/com/android/internal/telephony/TelephonyPermissions.java +++ b/telephony/common/com/android/internal/telephony/TelephonyPermissions.java @@ -562,7 +562,7 @@ public final class TelephonyPermissions { } if (DBG) { - Log.d(LOG_TAG, "No READ_PRIVILEDED_PHONE_STATE permission, " + Log.d(LOG_TAG, "No READ_PRIVILEGED_PHONE_STATE permission, " + "check carrier privilege next."); } @@ -570,6 +570,33 @@ public final class TelephonyPermissions { } /** + * Ensure the caller (or self, if not processing an IPC) has + * {@link android.Manifest.permission#READ_PRIVILEGED_PHONE_STATE} or + * {@link android.Manifest.permission#READ_PRECISE_PHONE_STATE} or carrier privileges. + * + * @throws SecurityException if the caller does not have the required permission/privileges + */ + public static void enforeceCallingOrSelfReadPrecisePhoneStatePermissionOrCarrierPrivilege( + Context context, int subId, String message) { + if (context.checkCallingOrSelfPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE) + == PERMISSION_GRANTED) { + return; + } + + if (context.checkCallingOrSelfPermission(Manifest.permission.READ_PRECISE_PHONE_STATE) + == PERMISSION_GRANTED) { + return; + } + + if (DBG) { + Log.d(LOG_TAG, "No READ_PRIVILEGED_PHONE_STATE nor READ_PRECISE_PHONE_STATE permission" + + ", check carrier privilege next."); + } + + enforceCallingOrSelfCarrierPrivilege(context, subId, message); + } + + /** * Make sure the caller (or self, if not processing an IPC) has carrier privileges. * * @throws SecurityException if the caller does not have the required privileges |