diff options
| author | 2022-09-07 13:14:48 +0000 | |
|---|---|---|
| committer | 2022-09-07 13:14:48 +0000 | |
| commit | 6a8a332181d2d08b400e4193a332b6f633bbdb20 (patch) | |
| tree | d9bd6fb659c56d09f661fb4fc6b69604f25f5fa6 | |
| parent | e2a41d3525a7643fbd978b8d9ac5d06cffdc326c (diff) | |
| parent | 1b2fa2486cc97fd9515300f858d4da2af8d8908c (diff) | |
Merge "Enforce MediaButtonReceiver ComponentName belongs to app"
| -rw-r--r-- | services/core/java/com/android/server/media/MediaSessionRecord.java | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/media/MediaSessionRecord.java b/services/core/java/com/android/server/media/MediaSessionRecord.java index 34cd6a012925..28c7a39ef726 100644 --- a/services/core/java/com/android/server/media/MediaSessionRecord.java +++ b/services/core/java/com/android/server/media/MediaSessionRecord.java @@ -50,6 +50,8 @@ import android.os.Process; import android.os.RemoteException; import android.os.ResultReceiver; import android.os.SystemClock; +import android.text.TextUtils; +import android.util.EventLog; import android.util.Log; import android.view.KeyEvent; @@ -932,6 +934,14 @@ public class MediaSessionRecord implements IBinder.DeathRecipient, MediaSessionR public void setMediaButtonBroadcastReceiver(ComponentName receiver) throws RemoteException { final long token = Binder.clearCallingIdentity(); try { + //mPackageName has been verified in MediaSessionService.enforcePackageName(). + if (receiver != null && !TextUtils.equals( + mPackageName, receiver.getPackageName())) { + EventLog.writeEvent(0x534e4554, "238177121", -1, ""); // SafetyNet logging. + throw new IllegalArgumentException("receiver does not belong to " + + "package name provided to MediaSessionRecord. Pkg = " + mPackageName + + ", Receiver Pkg = " + receiver.getPackageName()); + } if ((mPolicies & MediaSessionPolicyProvider.SESSION_POLICY_IGNORE_BUTTON_RECEIVER) != 0) { return; |