diff options
author | Hall Liu <hallliu@google.com> | 2020-07-13 12:42:36 -0700 |
---|---|---|
committer | Hall Liu <hallliu@google.com> | 2020-07-22 18:06:47 -0700 |
commit | f470edeff3ea5fd75e7ff3ef4d8326a71e8c4fc9 (patch) | |
tree | 139216776e118994cc8cbd9d633959fd2bf3e00c | |
parent | af04506eddf6f280f39a5f8e0d1de95e2d3e6ceb (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
-rw-r--r-- | telephony/common/com/android/internal/telephony/TelephonyPermissions.java | 4 |
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( |