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
This commit is contained in:
Hall Liu
2020-07-13 12:42:36 -07:00
parent af04506edd
commit f470edeff3

View File

@@ -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(