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

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

Merge "Call into permission system with cleared binder identity"

parents af5b683c a0c91aac
Loading
Loading
Loading
Loading
+30 −14
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import android.content.pm.IPackageManager;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.ParceledListSlice;
import android.os.Binder;
import android.os.RemoteException;
import android.permission.IPermissionManager;
import android.util.ArrayMap;
@@ -73,7 +74,12 @@ public final class PermissionHelper {
     */
    public boolean hasPermission(int uid) {
        assertFlag();
        final long callingId = Binder.clearCallingIdentity();
        try {
            return mPmi.checkUidPermission(uid, NOTIFICATION_PERMISSION) == PERMISSION_GRANTED;
        } finally {
            Binder.restoreCallingIdentity(callingId);
        }
    }

    /**
@@ -185,6 +191,8 @@ public final class PermissionHelper {

    public boolean isPermissionFixed(String packageName, @UserIdInt int userId) {
        assertFlag();
        final long callingId = Binder.clearCallingIdentity();
        try {
            try {
                int flags = mPermManager.getPermissionFlags(packageName, NOTIFICATION_PERMISSION,
                        userId);
@@ -194,10 +202,15 @@ public final class PermissionHelper {
                Slog.e(TAG, "Could not reach system server", e);
            }
            return false;
        } finally {
            Binder.restoreCallingIdentity(callingId);
        }
    }

    boolean isPermissionUserSet(String packageName, @UserIdInt int userId) {
        assertFlag();
        final long callingId = Binder.clearCallingIdentity();
        try {
            try {
                int flags = mPermManager.getPermissionFlags(packageName, NOTIFICATION_PERMISSION,
                        userId);
@@ -206,6 +219,9 @@ public final class PermissionHelper {
                Slog.e(TAG, "Could not reach system server", e);
            }
            return false;
        } finally {
            Binder.restoreCallingIdentity(callingId);
        }
    }

    private void assertFlag() {