OSDN Git Service

Do not restore the media button event receiver
authorJean-Michel Trivi <jmtrivi@google.com>
Mon, 25 Aug 2014 18:23:36 +0000 (11:23 -0700)
committerJean-Michel Trivi <jmtrivi@google.com>
Mon, 25 Aug 2014 18:23:36 +0000 (11:23 -0700)
Do not restore the media button event receiver on behalf of the
  application that registered. Prevents reported vulnerability.

Bug 15428797

Change-Id: I507faefd211def0d2ea074706de76c0d06157c5a

media/java/android/media/AudioService.java

index f0fdfc1..33a687d 100644 (file)
@@ -747,9 +747,6 @@ public class AudioService extends IAudioService.Stub implements OnFinished {
         // Broadcast vibrate settings
         broadcastVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER);
         broadcastVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION);
-
-        // Restore the default media button receiver from the system settings
-        restoreMediaButtonReceiver();
     }
 
     private int rescaleIndex(int index, int srcStream, int dstStream) {
@@ -4839,26 +4836,6 @@ public class AudioService extends IAudioService.Stub implements OnFinished {
 
     /**
      * Helper function:
-     * Restore remote control receiver from the system settings.
-     */
-    private void restoreMediaButtonReceiver() {
-        String receiverName = Settings.System.getStringForUser(mContentResolver,
-                Settings.System.MEDIA_BUTTON_RECEIVER, UserHandle.USER_CURRENT);
-        if ((null != receiverName) && !receiverName.isEmpty()) {
-            ComponentName eventReceiver = ComponentName.unflattenFromString(receiverName);
-            // construct a PendingIntent targeted to the restored component name
-            // for the media button and register it
-            Intent mediaButtonIntent = new Intent(Intent.ACTION_MEDIA_BUTTON);
-            //     the associated intent will be handled by the component being registered
-            mediaButtonIntent.setComponent(eventReceiver);
-            PendingIntent pi = PendingIntent.getBroadcast(mContext,
-                    0/*requestCode, ignored*/, mediaButtonIntent, 0/*flags*/);
-            registerMediaButtonIntent(pi, eventReceiver);
-        }
-    }
-
-    /**
-     * Helper function:
      * Set the new remote control receiver at the top of the RC focus stack.
      * precondition: mediaIntent != null, target != null
      */