From 48cbf292ba9ad550af7e44d950a441b1812428e2 Mon Sep 17 00:00:00 2001 From: Jinsuk Kim Date: Sat, 13 Dec 2014 02:16:28 +0900 Subject: audioservice: Clear calling identity upon calling HdmiControlService This makes sure that accessing the HdmiControlService via audio service should be possible without the system permission. Bug: 18730526 Change-Id: I05b364d8e38218eb75f3c08972a06bb2d71a982b --- media/java/android/media/AudioService.java | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/media/java/android/media/AudioService.java b/media/java/android/media/AudioService.java index 03ecad2f03c4..a94573bd232d 100644 --- a/media/java/android/media/AudioService.java +++ b/media/java/android/media/AudioService.java @@ -1159,8 +1159,13 @@ public class AudioService extends IAudioService.Stub { synchronized (mHdmiManager) { if (!mHdmiSystemAudioSupported) return; synchronized (mHdmiTvClient) { - mHdmiTvClient.setSystemAudioVolume( - (oldVolume + 5) / 10, (newVolume + 5) / 10, maxVolume); + final long token = Binder.clearCallingIdentity(); + try { + mHdmiTvClient.setSystemAudioVolume( + (oldVolume + 5) / 10, (newVolume + 5) / 10, maxVolume); + } finally { + Binder.restoreCallingIdentity(token); + } } } } @@ -1538,15 +1543,14 @@ public class AudioService extends IAudioService.Stub { private void setSystemAudioMute(boolean state) { if (mHdmiManager == null || mHdmiTvClient == null) return; synchronized (mHdmiManager) { - final long token = Binder.clearCallingIdentity(); - try { - synchronized (mHdmiTvClient) { - if (mHdmiSystemAudioSupported) { - mHdmiTvClient.setSystemAudioMute(state); - } + if (!mHdmiSystemAudioSupported) return; + synchronized (mHdmiTvClient) { + final long token = Binder.clearCallingIdentity(); + try { + mHdmiTvClient.setSystemAudioMute(state); + } finally { + Binder.restoreCallingIdentity(token); } - } finally { - Binder.restoreCallingIdentity(token); } } } -- cgit v1.2.3-59-g8ed1b