From 3da2cf7dc3953623eaa7597b6e1b0aeb62bc1873 Mon Sep 17 00:00:00 2001 From: Kholoud Mohamed Date: Tue, 9 May 2023 22:30:51 +0000 Subject: [PATCH] Fix lock task logging for permission based admins Fixes: 278061827 Test: btest a.d.c.LockTaskTest#startLockTask_recordsMetric* Change-Id: If591dd6cf5bf1bc3a2f2f4232a2edc54665a3018 --- .../devicepolicy/DevicePolicyManagerService.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index 662fd3daeed9b..ef45ceedb7f27 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -15156,6 +15156,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { for (ActiveAdmin admin : policy.mAdminList) { final boolean ownsDevice = isDeviceOwner(admin.info.getComponent(), userHandle); final boolean ownsProfile = isProfileOwner(admin.info.getComponent(), userHandle); + // TODO(b/281738975): Should we be logging this for all admins? if (ownsDevice || ownsProfile) { if (isEnabled) { sendAdminCommandLocked(admin, DeviceAdminReceiver.ACTION_LOCK_TASK_ENTERING, @@ -15172,6 +15173,20 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { } } } + // TODO(b/281738975): Should we be logging this for all admins? + for(EnforcingAdmin admin : mDevicePolicyEngine.getLocalPoliciesSetByAdmins( + PolicyDefinition.LOCK_TASK, userHandle).keySet()) { + if (admin.hasAuthority(EnforcingAdmin.DPC_AUTHORITY)) { + // already handled above + continue; + } + DevicePolicyEventLogger + .createEvent(DevicePolicyEnums.SET_LOCKTASK_MODE_ENABLED) + .setAdmin(admin.getPackageName()) + .setBoolean(isEnabled) + .setStrings(pkg) + .write(); + } } @Override