diff options
author | 2024-07-11 11:11:51 +0200 | |
---|---|---|
committer | 2025-03-17 11:06:01 -0700 | |
commit | 76e3bf9a04746763e689e1b9237dffade6f246b9 (patch) | |
tree | b1eac33c367b56a661b861f9d941671739d80ff6 | |
parent | 1c11482afa783b3f65391dcb99c56d17f9d976cb (diff) |
Add MODIFY_AUDIO_SETTINGS_PRIVILEGED permission check to volume callback
Bug: 293236285
Flag: EXEMPT refactor
Test: atest AudioManagerTest
Change-Id: Ie59ddeb96913907d6b7ba494cf36b7d7274a4be0
Signed-off-by: François Gaffie <francois.gaffie@ampere.cars>
-rw-r--r-- | media/java/android/media/IAudioService.aidl | 2 | ||||
-rw-r--r-- | media/tests/AudioPolicyTest/AndroidManifest.xml | 1 | ||||
-rw-r--r-- | services/core/java/com/android/server/audio/AudioService.java | 6 |
3 files changed, 9 insertions, 0 deletions
diff --git a/media/java/android/media/IAudioService.aidl b/media/java/android/media/IAudioService.aidl index b97b943113b6..c505bcee0332 100644 --- a/media/java/android/media/IAudioService.aidl +++ b/media/java/android/media/IAudioService.aidl @@ -447,8 +447,10 @@ interface IAudioService { boolean isAudioServerRunning(); + @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED") void registerAudioVolumeCallback(IAudioVolumeChangeDispatcher avc); + @EnforcePermission("MODIFY_AUDIO_SETTINGS_PRIVILEGED") oneway void unregisterAudioVolumeCallback(IAudioVolumeChangeDispatcher avc); int setUidDeviceAffinity(in IAudioPolicyCallback pcb, in int uid, in int[] deviceTypes, diff --git a/media/tests/AudioPolicyTest/AndroidManifest.xml b/media/tests/AudioPolicyTest/AndroidManifest.xml index 5c911b135a5d..466da7e66fbf 100644 --- a/media/tests/AudioPolicyTest/AndroidManifest.xml +++ b/media/tests/AudioPolicyTest/AndroidManifest.xml @@ -19,6 +19,7 @@ <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> + <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_ROUTING" /> <uses-permission android:name="android.permission.CHANGE_ACCESSIBILITY_VOLUME" /> diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java index 25fc1ff23561..a8bb5231d8c0 100644 --- a/services/core/java/com/android/server/audio/AudioService.java +++ b/services/core/java/com/android/server/audio/AudioService.java @@ -4460,12 +4460,18 @@ public class AudioService extends IAudioService.Stub private final AudioVolumeChangeHandler mAudioVolumeChangeHandler; /** @see AudioManager#registerVolumeGroupCallback(executor, callback) */ + @android.annotation.EnforcePermission( + android.Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED) public void registerAudioVolumeCallback(IAudioVolumeChangeDispatcher callback) { + super.registerAudioVolumeCallback_enforcePermission(); mAudioVolumeChangeHandler.registerListener(callback); } /** @see AudioManager#unregisterVolumeGroupCallback(callback) */ + @android.annotation.EnforcePermission( + android.Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED) public void unregisterAudioVolumeCallback(IAudioVolumeChangeDispatcher callback) { + super.unregisterAudioVolumeCallback_enforcePermission(); mAudioVolumeChangeHandler.unregisterListener(callback); } |