Add WATCHABLE_NON_PERMISSION_OPS to AppOpsService

Add a list of app ops that are not tied to a permission, but should have
note events sent to users. Also add RECEIVE_AMBIENT_TRIGGER_AUDIO to
systemApi

Fixes: 44518166
Test: manual
Change-Id: Iff9d3f5a75bee0a65be6cbb0eaa5151d81f8902a
This commit is contained in:
Nate Myren
2022-09-06 15:51:49 -07:00
parent 9a2ecfb35c
commit 8ecc69ffca
3 changed files with 10 additions and 0 deletions

View File

@@ -573,6 +573,7 @@ package android.app {
field public static final String OPSTR_READ_MEDIA_AUDIO = "android:read_media_audio";
field public static final String OPSTR_READ_MEDIA_IMAGES = "android:read_media_images";
field public static final String OPSTR_READ_MEDIA_VIDEO = "android:read_media_video";
field public static final String OPSTR_RECEIVE_AMBIENT_TRIGGER_AUDIO = "android:receive_ambient_trigger_audio";
field public static final String OPSTR_RECEIVE_EMERGENCY_BROADCAST = "android:receive_emergency_broadcast";
field public static final String OPSTR_REQUEST_DELETE_PACKAGES = "android:request_delete_packages";
field public static final String OPSTR_REQUEST_INSTALL_PACKAGES = "android:request_install_packages";

View File

@@ -1812,6 +1812,7 @@ public class AppOpsManager {
*
* @hide
*/
@SystemApi
public static final String OPSTR_RECEIVE_AMBIENT_TRIGGER_AUDIO =
"android:receive_ambient_trigger_audio";

View File

@@ -267,6 +267,10 @@ public class AppOpsService extends IAppOpsService.Stub implements PersistenceSch
OP_CAMERA,
};
private static final int[] WATCHABLE_NON_PERMISSION_OPS = {
OP_RECEIVE_AMBIENT_TRIGGER_AUDIO,
};
private static final int MAX_UNFORWARDED_OPS = 10;
private static final int MAX_UNUSED_POOLED_OBJECTS = 3;
private static final int RARELY_USED_PACKAGES_INITIALIZATION_DELAY_MILLIS = 300000;
@@ -4242,6 +4246,10 @@ public class AppOpsService extends IAppOpsService.Stub implements PersistenceSch
public boolean shouldCollectNotes(int opCode) {
Preconditions.checkArgumentInRange(opCode, 0, _NUM_OP - 1, "opCode");
if (ArrayUtils.contains(WATCHABLE_NON_PERMISSION_OPS, opCode)) {
return true;
}
String perm = AppOpsManager.opToPermission(opCode);
if (perm == null) {
return false;