diff --git a/core/api/system-current.txt b/core/api/system-current.txt index dc7e28c2fbd6e..307f5b86baf67 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -1287,6 +1287,7 @@ package android.app.admin { field public static final int EXEMPT_FROM_ACTIVITY_BG_START_RESTRICTION = 2; // 0x2 field public static final int EXEMPT_FROM_APP_STANDBY = 0; // 0x0 field public static final int EXEMPT_FROM_DISMISSIBLE_NOTIFICATIONS = 1; // 0x1 + field public static final int EXEMPT_FROM_HIBERNATION = 3; // 0x3 field public static final String EXTRA_FORCE_UPDATE_ROLE_HOLDER = "android.app.extra.FORCE_UPDATE_ROLE_HOLDER"; field public static final String EXTRA_LOST_MODE_LOCATION = "android.app.extra.LOST_MODE_LOCATION"; field public static final String EXTRA_PROFILE_OWNER_NAME = "android.app.extra.PROFILE_OWNER_NAME"; diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java index 90e0318f4c123..409289ca4f3f5 100644 --- a/core/java/android/app/admin/DevicePolicyManager.java +++ b/core/java/android/app/admin/DevicePolicyManager.java @@ -3895,6 +3895,14 @@ public class DevicePolicyManager { @SystemApi public static final int EXEMPT_FROM_ACTIVITY_BG_START_RESTRICTION = 2; + /** + * Prevent an app from entering hibernation. + * + * @hide + */ + @SystemApi + public static final int EXEMPT_FROM_HIBERNATION = 3; + /** * Exemptions to platform restrictions, given to an application through * {@link #setApplicationExemptions(String, Set)}. @@ -3904,7 +3912,8 @@ public class DevicePolicyManager { @IntDef(prefix = { "EXEMPT_FROM_"}, value = { EXEMPT_FROM_APP_STANDBY, EXEMPT_FROM_DISMISSIBLE_NOTIFICATIONS, - EXEMPT_FROM_ACTIVITY_BG_START_RESTRICTION + EXEMPT_FROM_ACTIVITY_BG_START_RESTRICTION, + EXEMPT_FROM_HIBERNATION }) @Retention(RetentionPolicy.SOURCE) public @interface ApplicationExemptionConstants {} diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index d6dc5d24c602a..cdcfababc604a 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -33,6 +33,7 @@ import static android.app.AppOpsManager.MODE_DEFAULT; import static android.app.AppOpsManager.OPSTR_SYSTEM_EXEMPT_FROM_ACTIVITY_BG_START_RESTRICTION; import static android.app.AppOpsManager.OPSTR_SYSTEM_EXEMPT_FROM_APP_STANDBY; import static android.app.AppOpsManager.OPSTR_SYSTEM_EXEMPT_FROM_DISMISSIBLE_NOTIFICATIONS; +import static android.app.AppOpsManager.OPSTR_SYSTEM_EXEMPT_FROM_HIBERNATION; import static android.app.admin.DeviceAdminInfo.HEADLESS_DEVICE_OWNER_MODE_AFFILIATED; import static android.app.admin.DeviceAdminReceiver.ACTION_COMPLIANCE_ACKNOWLEDGEMENT_REQUIRED; import static android.app.admin.DeviceAdminReceiver.EXTRA_TRANSFER_OWNERSHIP_ADMIN_EXTRAS_BUNDLE; @@ -61,6 +62,7 @@ import static android.app.admin.DevicePolicyManager.ENCRYPTION_STATUS_ACTIVE_PER import static android.app.admin.DevicePolicyManager.EXEMPT_FROM_ACTIVITY_BG_START_RESTRICTION; import static android.app.admin.DevicePolicyManager.EXEMPT_FROM_APP_STANDBY; import static android.app.admin.DevicePolicyManager.EXEMPT_FROM_DISMISSIBLE_NOTIFICATIONS; +import static android.app.admin.DevicePolicyManager.EXEMPT_FROM_HIBERNATION; import static android.app.admin.DevicePolicyManager.EXTRA_PROVISIONING_ACCOUNT_TO_MIGRATE; import static android.app.admin.DevicePolicyManager.EXTRA_RESOURCE_IDS; import static android.app.admin.DevicePolicyManager.EXTRA_RESOURCE_TYPE; @@ -727,6 +729,8 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { APPLICATION_EXEMPTION_CONSTANTS_TO_APP_OPS.put( EXEMPT_FROM_ACTIVITY_BG_START_RESTRICTION, OPSTR_SYSTEM_EXEMPT_FROM_ACTIVITY_BG_START_RESTRICTION); + APPLICATION_EXEMPTION_CONSTANTS_TO_APP_OPS.put( + EXEMPT_FROM_HIBERNATION, OPSTR_SYSTEM_EXEMPT_FROM_HIBERNATION); } /**