From a46b7b3f5e9398a245d0730d365d1f847d313938 Mon Sep 17 00:00:00 2001 From: Daniel Colascione Date: Fri, 24 Jan 2020 13:30:25 -0800 Subject: Cache package and permission information We use the package settings class as a central point for invalidating on package information changes; for permission changes, we invalidate from inside the individual permission data objects. Bug: 140788621 Test: boots, package tests (pending) Change-Id: Iec14d4ec872124e7ef4612c72d94c89a7319ace0 --- core/java/android/app/ContextImpl.java | 23 ++--------------------- 1 file changed, 2 insertions(+), 21 deletions(-) (limited to 'core/java/android/app/ContextImpl.java') diff --git a/core/java/android/app/ContextImpl.java b/core/java/android/app/ContextImpl.java index 8df26cbbb4f4..04eaaa3ca7bf 100644 --- a/core/java/android/app/ContextImpl.java +++ b/core/java/android/app/ContextImpl.java @@ -73,6 +73,7 @@ import android.os.UserHandle; import android.os.UserManager; import android.os.storage.StorageManager; import android.permission.IPermissionManager; +import android.permission.PermissionManager; import android.system.ErrnoException; import android.system.Os; import android.system.OsConstants; @@ -1941,27 +1942,7 @@ class ContextImpl extends Context { if (permission == null) { throw new IllegalArgumentException("permission is null"); } - - final IActivityManager am = ActivityManager.getService(); - if (am == null) { - // Well this is super awkward; we somehow don't have an active - // ActivityManager instance. If we're testing a root or system - // UID, then they totally have whatever permission this is. - final int appId = UserHandle.getAppId(uid); - if (appId == Process.ROOT_UID || appId == Process.SYSTEM_UID) { - Slog.w(TAG, "Missing ActivityManager; assuming " + uid + " holds " + permission); - return PERMISSION_GRANTED; - } - Slog.w(TAG, "Missing ActivityManager; assuming " + uid + " does not hold " - + permission); - return PackageManager.PERMISSION_DENIED; - } - - try { - return am.checkPermission(permission, pid, uid); - } catch (RemoteException e) { - throw e.rethrowFromSystemServer(); - } + return PermissionManager.checkPermission(permission, pid, uid); } /** @hide */ -- cgit v1.2.3