Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 76e3bf9a authored by François Gaffie's avatar François Gaffie Committed by Oscar Azucena
Browse files

Add MODIFY_AUDIO_SETTINGS_PRIVILEGED permission check to volume callback



Bug: 293236285
Flag: EXEMPT refactor
Test: atest AudioManagerTest

Change-Id: Ie59ddeb96913907d6b7ba494cf36b7d7274a4be0
Signed-off-by: default avatarFrançois Gaffie <francois.gaffie@ampere.cars>
parent 1c11482a
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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,
+1 −0
Original line number Diff line number Diff line
@@ -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" />

+6 −0
Original line number Diff line number Diff line
@@ -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);
    }