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

Commit 3ea30de4 authored by Carter Hsu's avatar Carter Hsu
Browse files

add permission check for isUltrasoundSupported



Bug: 217366076
Test: build pass
Signed-off-by: default avatarCarter Hsu <carterhsu@google.com>
Change-Id: I7f68e5f6244637973b7ca468c4eef1dc5b05aaad
parent b2134e69
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -6013,7 +6013,7 @@ package android.media {
    method public boolean isAudioServerRunning();
    method public boolean isHdmiSystemAudioSupported();
    method @RequiresPermission(android.Manifest.permission.CALL_AUDIO_INTERCEPTION) public boolean isPstnCallAudioInterceptable();
    method public static boolean isUltrasoundSupported();
    method @RequiresPermission(android.Manifest.permission.ACCESS_ULTRASOUND) public boolean isUltrasoundSupported();
    method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void muteAwaitConnection(@NonNull int[], @NonNull android.media.AudioDeviceAttributes, long, @NonNull java.util.concurrent.TimeUnit) throws java.lang.IllegalStateException;
    method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public int registerAudioPolicy(@NonNull android.media.audiopolicy.AudioPolicy);
    method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void registerMuteAwaitConnectionCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.AudioManager.MuteAwaitConnectionCallback);
+7 −2
Original line number Diff line number Diff line
@@ -7293,8 +7293,13 @@ public class AudioManager {
     * Ultrasound playback and capture, false otherwise.
     */
    @SystemApi
    public static boolean isUltrasoundSupported() {
        return AudioSystem.isUltrasoundSupported();
    @RequiresPermission(android.Manifest.permission.ACCESS_ULTRASOUND)
    public boolean isUltrasoundSupported() {
        try {
            return getService().isUltrasoundSupported();
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
    }

    /**
+2 −0
Original line number Diff line number Diff line
@@ -136,6 +136,8 @@ interface IAudioService {

    boolean isMicrophoneMuted();

    boolean isUltrasoundSupported();

    void setMicrophoneMute(boolean on, String callingPackage, int userId, in String attributionTag);

    oneway void setMicrophoneMuteFromSwitch(boolean on);
+13 −0
Original line number Diff line number Diff line
@@ -3249,6 +3249,13 @@ public class AudioService extends IAudioService.Stub
        }
    }

    private void enforceAccessUltrasoundPermission() {
        if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.ACCESS_ULTRASOUND)
                != PackageManager.PERMISSION_GRANTED) {
            throw new SecurityException("Missing ACCESS_ULTRASOUND permission");
        }
    }

    private void enforceQueryStatePermission() {
        if (mContext.checkCallingOrSelfPermission(Manifest.permission.QUERY_AUDIO_STATE)
                != PackageManager.PERMISSION_GRANTED) {
@@ -3381,6 +3388,12 @@ public class AudioService extends IAudioService.Stub
                attributionTag, Binder.getCallingUid(), callingOrSelfHasAudioSettingsPermission());
    }

    /** @see AudioManager#isUltrasoundSupported() */
    public boolean isUltrasoundSupported() {
        enforceAccessUltrasoundPermission();
        return AudioSystem.isUltrasoundSupported();
    }

    private boolean canChangeAccessibilityVolume() {
        synchronized (mAccessibilityServiceUidsLock) {
            if (PackageManager.PERMISSION_GRANTED == mContext.checkCallingOrSelfPermission(