From 735aa045934f9956a8d4b79b75fdf060568aae5d Mon Sep 17 00:00:00 2001 From: Hai Zhang Date: Tue, 8 Dec 2020 21:38:49 -0800 Subject: [PATCH] Always update the permissions being delegated as Shell. Previously the logic was to reuse the same permission delegate, however since we are moving to the new API, that reuse is no longer possible. So just always set up the permission delegate again to avoid delegated permissions not being updated in PermissionManagerService. Bug: 158736025 Fixes: 175085645 Test: MultiUserRollbackTest Change-Id: I58acefe7bd9053a032b3df24c0c793f4e2aacde1 --- .../com/android/server/am/ActivityManagerService.java | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index bcd122d33f7da..de4474f6273fc 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -17209,8 +17209,6 @@ public class ActivityManagerService extends IActivityManager.Stub throw new SecurityException("Shell can delegate permissions only " + "to one instrumentation at a time"); } - delegate.setPermissions(permissions); - return; } final int instrCount = mActiveInstrumentation.size(); @@ -17253,7 +17251,8 @@ public class ActivityManagerService extends IActivityManager.Stub private class ShellDelegate implements CheckOpsDelegate { private final int mTargetUid; - private @Nullable String[] mPermissions; + @Nullable + private final String[] mPermissions; ShellDelegate(int targetUid, @Nullable String[] permissions) { mTargetUid = targetUid; @@ -17264,11 +17263,6 @@ public class ActivityManagerService extends IActivityManager.Stub return mTargetUid; } - void setPermissions(@Nullable String[] permissions) { - mPermissions = permissions; - PackageManager.invalidatePackageInfoCache(); - } - @Override public int checkOperation(int code, int uid, String packageName, boolean raw, QuadFunction superImpl) {