From 7f7c292af2b9f4195b121229b32286004d5b0d05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCliz=20Seray=20Tuncay?= Date: Fri, 19 Mar 2021 06:20:49 +0000 Subject: [PATCH] Call role manager with cleared calling identity in getWellbeingPackageName(). Call role manager with cleared calling identity in getWellbeingPackageName() to avoid requiring the MANAGE_USERS or CREATE_USERS permissions. Bug: 182301261 Test: atest GtsWellbeingPermissionPolicyTestCases:com.google.android.wellbeing.permissionpolicy.gts.WellbeingPermissionPolicyTest#testIsWellbeingAppKnown Change-Id: I34bc1e08038fb752e2f98579be02f67fee5dd9ab --- .../com/android/server/pm/PackageManagerService.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 1530e41917c7f..6df2662ed32b9 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -22902,9 +22902,14 @@ public class PackageManagerService extends IPackageManager.Stub @Override public String getWellbeingPackageName() { - return CollectionUtils.firstOrNull( - mContext.getSystemService(RoleManager.class).getRoleHolders( - RoleManager.ROLE_SYSTEM_WELLBEING)); + final long identity = Binder.clearCallingIdentity(); + try { + return CollectionUtils.firstOrNull( + mContext.getSystemService(RoleManager.class).getRoleHolders( + RoleManager.ROLE_SYSTEM_WELLBEING)); + } finally { + Binder.restoreCallingIdentity(identity); + } } @Override