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

Commit 1f42d9a6 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix recent checkPermission() bug."

parents eeb4e1d2 d69b083b
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -1591,13 +1591,16 @@ class ContextImpl extends Context {
        }

        final IActivityManager am = ActivityManager.getService();
        if (am == null && UserHandle.getAppId(Binder.getCallingUid()) == Process.SYSTEM_UID) {
        if (am == null) {
            // Well this is super awkward; we somehow don't have an active
            // ActivityManager instance. If this is the system UID, then we
            // totally have whatever permission this is.
            Slog.w(TAG, "Missing ActivityManager; assuming system UID holds " + permission);
            // 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 PackageManager.PERMISSION_GRANTED;
            }
        }

        try {
            return am.checkPermission(permission, pid, uid);