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

Commit b39b8957 authored by Hai Zhang's avatar Hai Zhang Committed by Automerger Merge Worker
Browse files

Merge "Use per-user Shell UID for adoptShellPermissionIdentity()." into rvc-qpr-dev am: 91596432

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13186551

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I0597c4aedf0d02fdc16e89c6716d7cb7699c95b3
parents 0c847a6c 91596432
Loading
Loading
Loading
Loading
+9 −5
Original line number Diff line number Diff line
@@ -20195,10 +20195,11 @@ public class ActivityManagerService extends IActivityManager.Stub
        public int checkOperation(int code, int uid, String packageName, boolean raw,
                QuadFunction<Integer, Integer, String, Boolean, Integer> superImpl) {
            if (uid == mTargetUid && isTargetOp(code)) {
                final int shellUid = UserHandle.getUid(UserHandle.getUserId(uid),
                        Process.SHELL_UID);
                final long identity = Binder.clearCallingIdentity();
                try {
                    return superImpl.apply(code, Process.SHELL_UID,
                            "com.android.shell", raw);
                    return superImpl.apply(code, shellUid, "com.android.shell", raw);
                } finally {
                    Binder.restoreCallingIdentity(identity);
                }
@@ -20210,10 +20211,11 @@ public class ActivityManagerService extends IActivityManager.Stub
        public int checkAudioOperation(int code, int usage, int uid, String packageName,
                QuadFunction<Integer, Integer, Integer, String, Integer> superImpl) {
            if (uid == mTargetUid && isTargetOp(code)) {
                final int shellUid = UserHandle.getUid(UserHandle.getUserId(uid),
                        Process.SHELL_UID);
                final long identity = Binder.clearCallingIdentity();
                try {
                    return superImpl.apply(code, usage, Process.SHELL_UID,
                            "com.android.shell");
                    return superImpl.apply(code, usage, shellUid, "com.android.shell");
                } finally {
                    Binder.restoreCallingIdentity(identity);
                }
@@ -20228,9 +20230,11 @@ public class ActivityManagerService extends IActivityManager.Stub
                @NonNull HeptFunction<Integer, Integer, String, String, Boolean, String, Boolean,
                        Integer> superImpl) {
            if (uid == mTargetUid && isTargetOp(code)) {
                final int shellUid = UserHandle.getUid(UserHandle.getUserId(uid),
                        Process.SHELL_UID);
                final long identity = Binder.clearCallingIdentity();
                try {
                    return superImpl.apply(code, Process.SHELL_UID, "com.android.shell", featureId,
                    return superImpl.apply(code, shellUid, "com.android.shell", featureId,
                            shouldCollectAsyncNotedOp, message, shouldCollectMessage);
                } finally {
                    Binder.restoreCallingIdentity(identity);