diff --git a/core/api/system-current.txt b/core/api/system-current.txt index a87f2e2bdaee5..f09244ad7859d 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -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"; diff --git a/core/java/android/app/AppOpsManager.java b/core/java/android/app/AppOpsManager.java index 2a5916dfb6a8f..bc59d60bebd13 100644 --- a/core/java/android/app/AppOpsManager.java +++ b/core/java/android/app/AppOpsManager.java @@ -1812,6 +1812,7 @@ public class AppOpsManager { * * @hide */ + @SystemApi public static final String OPSTR_RECEIVE_AMBIENT_TRIGGER_AUDIO = "android:receive_ambient_trigger_audio"; diff --git a/services/core/java/com/android/server/appop/AppOpsService.java b/services/core/java/com/android/server/appop/AppOpsService.java index 248e35e6964d2..26d98934a6627 100644 --- a/services/core/java/com/android/server/appop/AppOpsService.java +++ b/services/core/java/com/android/server/appop/AppOpsService.java @@ -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;