From 1f37c4f7c792b1724dbb02405538d64471e913e7 Mon Sep 17 00:00:00 2001 From: Felipe Leme Date: Tue, 9 Nov 2021 14:08:26 -0800 Subject: [PATCH] Fixed permisssions on setStopBackgroundUsersOnSwitch(). It was requiring INTERACT_ACROSS_USERS_FULL (instead of INTERACT_ACROSS_USERS), which cannot be granted by Shell (and hence cannot be used by CtsVerifier). Test: m update-api Test: manual verification Bug: 203752848 Change-Id: Ie84311e6500cefa055548e309ee6d629c62fb10d --- core/api/test-current.txt | 2 +- core/java/android/app/ActivityManager.java | 2 +- services/core/java/com/android/server/am/UserController.java | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/core/api/test-current.txt b/core/api/test-current.txt index e3a6dd07b526e..a4fb2c1f12ff3 100644 --- a/core/api/test-current.txt +++ b/core/api/test-current.txt @@ -113,7 +113,7 @@ package android.app { method @RequiresPermission(android.Manifest.permission.RESET_APP_ERRORS) public void resetAppErrors(); method public static void resumeAppSwitches() throws android.os.RemoteException; method @RequiresPermission(android.Manifest.permission.CHANGE_CONFIGURATION) public void scheduleApplicationInfoChanged(java.util.List, int); - method @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.INTERACT_ACROSS_USERS_FULL}) public void setStopUserOnSwitch(int); + method @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_USERS, android.Manifest.permission.INTERACT_ACROSS_USERS}) public void setStopUserOnSwitch(int); method @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) public boolean stopUser(int, boolean); method @RequiresPermission(android.Manifest.permission.CHANGE_CONFIGURATION) public boolean updateMccMncConfiguration(@NonNull String, @NonNull String); method @RequiresPermission(android.Manifest.permission.DUMP) public void waitForBroadcastIdle(); diff --git a/core/java/android/app/ActivityManager.java b/core/java/android/app/ActivityManager.java index f0deecac96c51..992f02ca538b0 100644 --- a/core/java/android/app/ActivityManager.java +++ b/core/java/android/app/ActivityManager.java @@ -4117,7 +4117,7 @@ public class ActivityManager { */ @TestApi @RequiresPermission(anyOf = {android.Manifest.permission.MANAGE_USERS, - android.Manifest.permission.INTERACT_ACROSS_USERS_FULL}) + android.Manifest.permission.INTERACT_ACROSS_USERS}) public void setStopUserOnSwitch(@StopUserOnSwitch int value) { try { getService().setStopUserOnSwitch(value); diff --git a/services/core/java/com/android/server/am/UserController.java b/services/core/java/com/android/server/am/UserController.java index 319fa94058dd1..429696fd88a29 100644 --- a/services/core/java/com/android/server/am/UserController.java +++ b/services/core/java/com/android/server/am/UserController.java @@ -421,10 +421,10 @@ class UserController implements Handler.Callback { void setStopUserOnSwitch(@StopUserOnSwitch int value) { if (mInjector.checkCallingPermission(android.Manifest.permission.MANAGE_USERS) == PackageManager.PERMISSION_DENIED && mInjector.checkCallingPermission( - android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) + android.Manifest.permission.INTERACT_ACROSS_USERS) == PackageManager.PERMISSION_DENIED) { throw new SecurityException( - "You either need MANAGE_USERS or INTERACT_ACROSS_USERS_FULL permission to " + "You either need MANAGE_USERS or INTERACT_ACROSS_USERS permission to " + "call setStopUserOnSwitch()"); }