summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Evan Chen <evanxinchen@google.com> 2023-02-17 21:23:38 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-02-17 21:23:38 +0000
commitc01e1ce41249be99e8012374ff6488e15bcfd58e (patch)
treede7b690760002907a199524cc3d8082723a8cf8c
parent74efadf7387845552752eeade855b47bc283b6b3 (diff)
parent7d27732fef9297fbe1ef5d11fa41a82c90d40aa6 (diff)
Merge "Don't require MANAGE_ROLE_HOLDERS when removing CDM associatons" into udc-dev
-rw-r--r--services/companion/java/com/android/server/companion/RolesUtils.java8
1 files changed, 7 insertions, 1 deletions
diff --git a/services/companion/java/com/android/server/companion/RolesUtils.java b/services/companion/java/com/android/server/companion/RolesUtils.java
index f674a7d20b82..163f614fb65d 100644
--- a/services/companion/java/com/android/server/companion/RolesUtils.java
+++ b/services/companion/java/com/android/server/companion/RolesUtils.java
@@ -27,6 +27,7 @@ import android.annotation.UserIdInt;
import android.app.role.RoleManager;
import android.companion.AssociationInfo;
import android.content.Context;
+import android.os.Binder;
import android.os.UserHandle;
import android.util.Log;
import android.util.Slog;
@@ -84,7 +85,9 @@ final class RolesUtils {
Slog.i(TAG, "Removing CDM role holder, role=" + deviceProfile
+ ", package=u" + userId + "\\" + packageName);
- roleManager.removeRoleHolderAsUser(deviceProfile, packageName,
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ roleManager.removeRoleHolderAsUser(deviceProfile, packageName,
MANAGE_HOLDERS_FLAG_DONT_KILL_APP, userHandle, context.getMainExecutor(),
success -> {
if (!success) {
@@ -92,6 +95,9 @@ final class RolesUtils {
+ " from the list of " + deviceProfile + " holders.");
}
});
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
}
private RolesUtils() {};