From e878706d71b1b7ade1792a184294a554e4da827f Mon Sep 17 00:00:00 2001 From: Pavel Grafov Date: Wed, 12 Feb 2020 16:02:48 +0000 Subject: [PATCH] Add COPE related metric. * setManagedProfileMaximumTimeOff * setPersonalAppsSuspended * COMP -> COPE migration Test: OrgOwnedProfileOwnerTest#testSetManagedProfileMaximumTimeOffLogged Test: OrgOwnedProfileOwnerTest#testSetPersonalAppsSuspendedLogged Test: manual, via "adb shell cmd stats print-logs" + "adb logcat | grep statsd" during boot Bug: 148788010 Change-Id: Iaf09b536328bdb6623a2d4f6c92f73cd7f94f28c --- .../devicepolicy/device_policy_enums.proto | 3 +++ .../DevicePolicyManagerService.java | 24 ++++++++++++++++--- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/core/proto/android/stats/devicepolicy/device_policy_enums.proto b/core/proto/android/stats/devicepolicy/device_policy_enums.proto index d1392a5e0f310..a648831021862 100644 --- a/core/proto/android/stats/devicepolicy/device_policy_enums.proto +++ b/core/proto/android/stats/devicepolicy/device_policy_enums.proto @@ -159,4 +159,7 @@ enum EventId { ALLOW_MODIFICATION_OF_ADMIN_CONFIGURED_NETWORKS = 132; SET_TIME = 133; SET_TIME_ZONE = 134; + SET_PERSONAL_APPS_SUSPENDED = 135; + SET_MANAGED_PROFILE_MAXIMUM_TIME_OFF = 136; + COMP_TO_ORG_OWNED_PO_MIGRATED = 137; } diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index 4f9371ec540e7..17454f57d8b5d 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -2542,7 +2542,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { * corporate owned device. */ @GuardedBy("getLockObject()") - private void maybeMigrateToProfileOnOrganizationOwnedDeviceLocked() { + private void migrateToProfileOnOrganizationOwnedDeviceIfCompLocked() { logIfVerbose("Checking whether we need to migrate COMP "); final int doUserId = mOwners.getDeviceOwnerUserId(); if (doUserId == UserHandle.USER_NULL) { @@ -2605,6 +2605,11 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { // Note: KeyChain keys are not removed and will remain accessible for the apps that have // been given grants to use them. + + DevicePolicyEventLogger + .createEvent(DevicePolicyEnums.COMP_TO_ORG_OWNED_PO_MIGRATED) + .setAdmin(poAdminComponent) + .write(); } private void moveDoPoliciesToProfileParentAdmin(ActiveAdmin doAdmin, ActiveAdmin parentAdmin) { @@ -3865,7 +3870,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { case SystemService.PHASE_ACTIVITY_MANAGER_READY: maybeStartSecurityLogMonitorOnActivityManagerReady(); synchronized (getLockObject()) { - maybeMigrateToProfileOnOrganizationOwnedDeviceLocked(); + migrateToProfileOnOrganizationOwnedDeviceIfCompLocked(); } final int userId = getManagedUserId(UserHandle.USER_SYSTEM); if (userId >= 0) { @@ -15545,6 +15550,12 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { mInjector.binderWithCleanCallingIdentity( () -> applyPersonalAppsSuspension(callingUserId, suspended)); + + DevicePolicyEventLogger + .createEvent(DevicePolicyEnums.SET_PERSONAL_APPS_SUSPENDED) + .setAdmin(who) + .setBoolean(suspended) + .write(); } /** @@ -15716,9 +15727,16 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { mInjector.binderWithCleanCallingIdentity( () -> updatePersonalAppSuspension(userId, mUserManager.isUserUnlocked())); + + DevicePolicyEventLogger + .createEvent(DevicePolicyEnums.SET_MANAGED_PROFILE_MAXIMUM_TIME_OFF) + .setAdmin(who) + .setTimePeriod(timeoutMs) + .write(); } - void enforceHandlesCheckPolicyComplianceIntent(@UserIdInt int userId, String packageName) { + private void enforceHandlesCheckPolicyComplianceIntent( + @UserIdInt int userId, String packageName) { mInjector.binderWithCleanCallingIdentity(() -> { final Intent intent = new Intent(DevicePolicyManager.ACTION_CHECK_POLICY_COMPLIANCE); intent.setPackage(packageName);