Merge "Add permission check for RemoteTransition in ActivityOptions" into udc-dev am: a02a2d0dee
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23768708 Change-Id: Ia3d17bcf9cb8d43d91203b9e1cd3c6a04d8259d3 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -48,6 +48,7 @@ import android.os.RemoteException;
|
|||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
import android.util.Slog;
|
import android.util.Slog;
|
||||||
import android.view.RemoteAnimationAdapter;
|
import android.view.RemoteAnimationAdapter;
|
||||||
|
import android.window.RemoteTransition;
|
||||||
import android.window.WindowContainerToken;
|
import android.window.WindowContainerToken;
|
||||||
|
|
||||||
import com.android.internal.annotations.VisibleForTesting;
|
import com.android.internal.annotations.VisibleForTesting;
|
||||||
@@ -385,6 +386,18 @@ public class SafeActivityOptions {
|
|||||||
throw new SecurityException(msg);
|
throw new SecurityException(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Check permission for remote transitions
|
||||||
|
final RemoteTransition transition = options.getRemoteTransition();
|
||||||
|
if (transition != null && supervisor.mService.checkPermission(
|
||||||
|
CONTROL_REMOTE_APP_TRANSITION_ANIMATIONS, callingPid, callingUid)
|
||||||
|
!= PERMISSION_GRANTED) {
|
||||||
|
final String msg = "Permission Denial: starting " + getIntentString(intent)
|
||||||
|
+ " from " + callerApp + " (pid=" + callingPid
|
||||||
|
+ ", uid=" + callingUid + ") with remoteTransition";
|
||||||
|
Slog.w(TAG, msg);
|
||||||
|
throw new SecurityException(msg);
|
||||||
|
}
|
||||||
|
|
||||||
// If launched from bubble is specified, then ensure that the caller is system or sysui.
|
// If launched from bubble is specified, then ensure that the caller is system or sysui.
|
||||||
if (options.getLaunchedFromBubble() && !isSystemOrSystemUI(callingPid, callingUid)) {
|
if (options.getLaunchedFromBubble() && !isSystemOrSystemUI(callingPid, callingUid)) {
|
||||||
final String msg = "Permission Denial: starting " + getIntentString(intent)
|
final String msg = "Permission Denial: starting " + getIntentString(intent)
|
||||||
|
|||||||
Reference in New Issue
Block a user