summaryrefslogtreecommitdiff
path: root/services
diff options
context:
space:
mode:
authorKevin Han <kevhan@google.com>2021-03-17 15:37:40 -0700
committerKevin Han <kevhan@google.com>2021-03-19 10:37:05 -0700
commit152e389bae3010c27296798f8e9237127a38ae2b (patch)
treec461358f8a55fa8696b252cefdda597e9a63359f /services
parent79490a9c003280e59c532d2e3bc96969759c8613 (diff)
Add MANAGE_APP_HIBERNATION permission
Add permission for app hibernation state manipulation. Bug: 183058954 Test: run hibernation job and confirm the API works for PermissionController (cherrypick of ag/13909632) Merged-In: Id57ee57f49710d0b8a49a4ec561800db43089f87 Change-Id: Id57ee57f49710d0b8a49a4ec561800db43089f87
Diffstat (limited to 'services')
-rw-r--r--services/core/java/com/android/server/apphibernation/AppHibernationService.java13
1 files changed, 12 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/apphibernation/AppHibernationService.java b/services/core/java/com/android/server/apphibernation/AppHibernationService.java
index 968cf5f1df91..aa7da77d06e8 100644
--- a/services/core/java/com/android/server/apphibernation/AppHibernationService.java
+++ b/services/core/java/com/android/server/apphibernation/AppHibernationService.java
@@ -173,7 +173,9 @@ public final class AppHibernationService extends SystemService {
if (!checkHibernationEnabled("isHibernatingForUser")) {
return false;
}
-
+ getContext().enforceCallingOrSelfPermission(
+ android.Manifest.permission.MANAGE_APP_HIBERNATION,
+ "Caller does not have MANAGE_APP_HIBERNATION permission.");
userId = handleIncomingUser(userId, "isHibernating");
if (!mUserManager.isUserUnlockingOrUnlocked(userId)) {
Slog.e(TAG, "Attempt to get hibernation state of stopped or nonexistent user "
@@ -202,6 +204,9 @@ public final class AppHibernationService extends SystemService {
if (!checkHibernationEnabled("isHibernatingGlobally")) {
return false;
}
+ getContext().enforceCallingOrSelfPermission(
+ android.Manifest.permission.MANAGE_APP_HIBERNATION,
+ "Caller does not have MANAGE_APP_HIBERNATION permission.");
synchronized (mLock) {
GlobalLevelState state = mGlobalHibernationStates.get(packageName);
if (state == null) {
@@ -223,6 +228,9 @@ public final class AppHibernationService extends SystemService {
if (!checkHibernationEnabled("setHibernatingForUser")) {
return;
}
+ getContext().enforceCallingOrSelfPermission(
+ android.Manifest.permission.MANAGE_APP_HIBERNATION,
+ "Caller does not have MANAGE_APP_HIBERNATION permission.");
userId = handleIncomingUser(userId, "setHibernating");
if (!mUserManager.isUserUnlockingOrUnlocked(userId)) {
Slog.w(TAG, "Attempt to set hibernation state for a stopped or nonexistent user "
@@ -263,6 +271,9 @@ public final class AppHibernationService extends SystemService {
if (!checkHibernationEnabled("setHibernatingGlobally")) {
return;
}
+ getContext().enforceCallingOrSelfPermission(
+ android.Manifest.permission.MANAGE_APP_HIBERNATION,
+ "Caller does not have MANAGE_APP_HIBERNATION permission.");
synchronized (mLock) {
GlobalLevelState state = mGlobalHibernationStates.get(packageName);
if (state == null) {