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

Commit 5cd32eae authored by Jaewan Kim's avatar Jaewan Kim Committed by Dennis Cagle
Browse files

DO NOT MERGE Check caller for sending media key to global priority session

Prevent sending media key events from the non-system app to the global
priority session through the MediaSessionManager.dispatchMediaKeyEvent().
Note that any app can use the API indirectly with
the public API AudioManager.dispatchMediaKeyEvent().

Bug: 29833954
Tested: Installed malicious apps and confirmed that they don't work.
Tested: Run CtsTelecomTestCases and CtsMediaTestCases
Change-Id: I2a9e78196ba7455324e485f098f095d03b47ee15
(cherry picked from commit 09c3df00)
(cherry picked from commit 3de09838fb0996bb4b420630800ad34e828fd1b6)
parent ed117c86
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@ import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
import android.os.PowerManager;
import android.os.Process;
import android.os.RemoteException;
import android.os.ResultReceiver;
import android.os.ServiceManager;
@@ -763,6 +764,13 @@ public class MediaSessionService extends SystemService implements Monitor {
                            + "setup is in progress.");
                    return;
                }
                if (isGlobalPriorityActive() && uid != Process.SYSTEM_UID) {
                    // Prevent dispatching key event through reflection while the global priority
                    // session is active.
                    Slog.i(TAG, "Only the system can dispatch media key event "
                            + "to the global priority session.");
                    return;
                }

                synchronized (mLock) {
                    // If we don't have a media button receiver to fall back on