summaryrefslogtreecommitdiff
path: root/telephony/common
diff options
context:
space:
mode:
authorHall Liu <hallliu@google.com>2020-07-13 12:42:36 -0700
committerHall Liu <hallliu@google.com>2020-07-22 18:06:47 -0700
commitf470edeff3ea5fd75e7ff3ef4d8326a71e8c4fc9 (patch)
tree139216776e118994cc8cbd9d633959fd2bf3e00c /telephony/common
parentaf04506eddf6f280f39a5f8e0d1de95e2d3e6ceb (diff)
Skip carrier priv check for trusted UIDs
Checking carrier privileges for UIDs with lots of shared apps can incur a significant performance hit. For UIDs that are fixed and trusted (system and phone), skip the permission check and always allow. Bug: 160971853 Test: manual verification -- observed lower rate of cache misses for getPackageInfo from com.android.phone. Change-Id: I1399cab579308479d7cf191b8795441cbcd3ff65 Merged-In: I1399cab579308479d7cf191b8795441cbcd3ff65
Diffstat (limited to 'telephony/common')
-rw-r--r--telephony/common/com/android/internal/telephony/TelephonyPermissions.java4
1 files changed, 4 insertions, 0 deletions
diff --git a/telephony/common/com/android/internal/telephony/TelephonyPermissions.java b/telephony/common/com/android/internal/telephony/TelephonyPermissions.java
index fff6696604dc..a1398e3b6207 100644
--- a/telephony/common/com/android/internal/telephony/TelephonyPermissions.java
+++ b/telephony/common/com/android/internal/telephony/TelephonyPermissions.java
@@ -659,6 +659,10 @@ public final class TelephonyPermissions {
}
private static int getCarrierPrivilegeStatus(Context context, int subId, int uid) {
+ if (uid == Process.SYSTEM_UID || uid == Process.PHONE_UID) {
+ // Skip the check if it's one of these special uids
+ return TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS;
+ }
final long identity = Binder.clearCallingIdentity();
try {
TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(