summaryrefslogtreecommitdiff
path: root/core/java/android/app/AppOpsManager.java
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2018-03-28 13:51:46 -0700
committerDianne Hackborn <hackbod@google.com>2018-03-30 13:10:54 -0700
commite9d9b4b9a27f419fbd6096698f692b474939cb48 (patch)
tree947fc0991f9a1256ee24ee65b968c3af2c490d12 /core/java/android/app/AppOpsManager.java
parentb5dcf7d3ac4f8b213085eb266588acb2117b4044 (diff)
Fix issue #77230164: Add app op to control foreground services
New app op added. Bug: 77230164 Test: atest CtsAppTestCases:ActivityManagerProcessStateTest\#testForegroundServiceAppOp Change-Id: I59f2f03850da4b9f5550e82ba28f175e4779e783
Diffstat (limited to 'core/java/android/app/AppOpsManager.java')
-rw-r--r--core/java/android/app/AppOpsManager.java18
1 files changed, 16 insertions, 2 deletions
diff --git a/core/java/android/app/AppOpsManager.java b/core/java/android/app/AppOpsManager.java
index ea8c71c9f398..ab0001ca8c3c 100644
--- a/core/java/android/app/AppOpsManager.java
+++ b/core/java/android/app/AppOpsManager.java
@@ -272,8 +272,10 @@ public class AppOpsManager {
public static final int OP_ACCEPT_HANDOVER = 74;
/** @hide Create and Manage IPsec Tunnels */
public static final int OP_MANAGE_IPSEC_TUNNELS = 75;
+ /** @hide Any app start foreground service. */
+ public static final int OP_START_FOREGROUND = 76;
/** @hide */
- public static final int _NUM_OP = 76;
+ public static final int _NUM_OP = 77;
/** Access to coarse location information. */
public static final String OPSTR_COARSE_LOCATION = "android:coarse_location";
@@ -512,6 +514,9 @@ public class AppOpsManager {
/** @hide */
@SystemApi @TestApi
public static final String OPSTR_MANAGE_IPSEC_TUNNELS = "android:manage_ipsec_tunnels";
+ /** @hide */
+ @SystemApi @TestApi
+ public static final String OPSTR_START_FOREGROUND = "android:start_foreground";
// Warning: If an permission is added here it also has to be added to
// com.android.packageinstaller.permission.utils.EventLogger
@@ -560,6 +565,7 @@ public class AppOpsManager {
OP_SYSTEM_ALERT_WINDOW,
OP_WRITE_SETTINGS,
OP_REQUEST_INSTALL_PACKAGES,
+ OP_START_FOREGROUND,
};
/**
@@ -647,6 +653,7 @@ public class AppOpsManager {
OP_BIND_ACCESSIBILITY_SERVICE,
OP_ACCEPT_HANDOVER,
OP_MANAGE_IPSEC_TUNNELS,
+ OP_START_FOREGROUND,
};
/**
@@ -729,6 +736,7 @@ public class AppOpsManager {
OPSTR_BIND_ACCESSIBILITY_SERVICE,
OPSTR_ACCEPT_HANDOVER,
OPSTR_MANAGE_IPSEC_TUNNELS,
+ OPSTR_START_FOREGROUND,
};
/**
@@ -812,6 +820,7 @@ public class AppOpsManager {
"BIND_ACCESSIBILITY_SERVICE",
"ACCEPT_HANDOVER",
"MANAGE_IPSEC_TUNNELS",
+ "START_FOREGROUND",
};
/**
@@ -895,6 +904,7 @@ public class AppOpsManager {
Manifest.permission.BIND_ACCESSIBILITY_SERVICE,
Manifest.permission.ACCEPT_HANDOVER,
null, // no permission for OP_MANAGE_IPSEC_TUNNELS
+ Manifest.permission.FOREGROUND_SERVICE,
};
/**
@@ -979,6 +989,7 @@ public class AppOpsManager {
null, // OP_BIND_ACCESSIBILITY_SERVICE
null, // ACCEPT_HANDOVER
null, // MANAGE_IPSEC_TUNNELS
+ null, // START_FOREGROUND
};
/**
@@ -1062,6 +1073,7 @@ public class AppOpsManager {
false, // OP_BIND_ACCESSIBILITY_SERVICE
false, // ACCEPT_HANDOVER
false, // MANAGE_IPSEC_HANDOVERS
+ false, // START_FOREGROUND
};
/**
@@ -1137,13 +1149,14 @@ public class AppOpsManager {
AppOpsManager.MODE_DEFAULT, // OP_REQUEST_INSTALL_PACKAGES
AppOpsManager.MODE_ALLOWED, // OP_PICTURE_IN_PICTURE
AppOpsManager.MODE_DEFAULT, // OP_INSTANT_APP_START_FOREGROUND
- AppOpsManager.MODE_ALLOWED, // ANSWER_PHONE_CALLS
+ AppOpsManager.MODE_ALLOWED, // ANSWER_PHONE_CALLS
AppOpsManager.MODE_ALLOWED, // OP_RUN_ANY_IN_BACKGROUND
AppOpsManager.MODE_ALLOWED, // OP_CHANGE_WIFI_STATE
AppOpsManager.MODE_ALLOWED, // REQUEST_DELETE_PACKAGES
AppOpsManager.MODE_ALLOWED, // OP_BIND_ACCESSIBILITY_SERVICE
AppOpsManager.MODE_ALLOWED, // ACCEPT_HANDOVER
AppOpsManager.MODE_ERRORED, // MANAGE_IPSEC_TUNNELS
+ AppOpsManager.MODE_ALLOWED, // OP_START_FOREGROUND
};
/**
@@ -1230,6 +1243,7 @@ public class AppOpsManager {
false, // OP_BIND_ACCESSIBILITY_SERVICE
false, // ACCEPT_HANDOVER
false, // MANAGE_IPSEC_TUNNELS
+ false, // START_FOREGROUND
};
/**