Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f470edef authored by Hall Liu's avatar Hall Liu
Browse files

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
parent af04506e
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -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(