Merge "Fix delegates access to API with permission checks." into udc-dev am: 502f5a855c

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

Change-Id: Id594187e225eab00e4a0a7235cde568d4b1b917b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Elis Elliott
2023-03-02 11:25:31 +00:00
committed by Automerger Merge Worker

View File

@@ -11337,7 +11337,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
DevicePolicyEventLogger
.createEvent(DevicePolicyEnums.SET_APPLICATION_RESTRICTIONS)
.setAdmin(caller.getPackageName())
.setBoolean(/* isDelegate */ who == null)
.setBoolean(/* isDelegate */ isCallerDelegate(caller))
.setStrings(packageName)
.write();
}
@@ -13378,7 +13378,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
DevicePolicyEventLogger
.createEvent(DevicePolicyEnums.SET_APPLICATION_HIDDEN)
.setAdmin(caller.getPackageName())
.setBoolean(/* isDelegate */ who == null)
.setBoolean(/* isDelegate */ isCallerDelegate(caller))
.setStrings(packageName, hidden ? "hidden" : "not_hidden",
parent ? CALLED_FROM_PARENT : NOT_CALLED_FROM_PARENT)
.write();
@@ -13730,7 +13730,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
DevicePolicyEventLogger
.createEvent(DevicePolicyEnums.SET_UNINSTALL_BLOCKED)
.setAdmin(caller.getPackageName())
.setBoolean(/* isDelegate */ who == null)
.setBoolean(/* isDelegate */ isCallerDelegate(caller))
.setStrings(packageName)
.write();
}
@@ -16280,7 +16280,8 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
.setAdmin(caller.getPackageName())
.setStrings(permission)
.setInt(grantState)
.setBoolean(/* isDelegate */ admin == null)
.setBoolean(
/* isDelegate */ isCallerDelegate(caller))
.write();
callback.sendResult(Bundle.EMPTY);
@@ -22183,6 +22184,10 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
private static final HashMap<String, String> DELEGATE_SCOPES = new HashMap<>();
{
DELEGATE_SCOPES.put(MANAGE_DEVICE_POLICY_RUNTIME_PERMISSIONS, DELEGATION_PERMISSION_GRANT);
DELEGATE_SCOPES.put(MANAGE_DEVICE_POLICY_APP_RESTRICTIONS, DELEGATION_APP_RESTRICTIONS);
DELEGATE_SCOPES.put(MANAGE_DEVICE_POLICY_APPS_CONTROL, DELEGATION_BLOCK_UNINSTALL);
DELEGATE_SCOPES.put(MANAGE_DEVICE_POLICY_SECURITY_LOGGING, DELEGATION_SECURITY_LOGGING);
DELEGATE_SCOPES.put(MANAGE_DEVICE_POLICY_PACKAGE_STATE, DELEGATION_PACKAGE_ACCESS);
}
private static final HashMap<String, String> CROSS_USER_PERMISSIONS =
@@ -22371,6 +22376,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
+ permission
+ ", "
+ CROSS_USER_PERMISSIONS.get(permission)
+ "(if calling cross-user)"
+ "}");
}
}