diff options
4 files changed, 9 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityStackSupervisor.java b/services/core/java/com/android/server/wm/ActivityStackSupervisor.java index fe9e5f3ca09e..6b36663249ec 100644 --- a/services/core/java/com/android/server/wm/ActivityStackSupervisor.java +++ b/services/core/java/com/android/server/wm/ActivityStackSupervisor.java @@ -1092,8 +1092,7 @@ public class ActivityStackSupervisor implements RecentTasks.Callbacks { final boolean uidPresentOnDisplay = displayContent.isUidPresent(callingUid); final int displayOwnerUid = displayContent.mDisplay.getOwnerUid(); - if (displayContent.mDisplay.getType() == TYPE_VIRTUAL && displayOwnerUid != SYSTEM_UID - && displayOwnerUid != aInfo.applicationInfo.uid) { + if (displayContent.mDisplay.getType() == TYPE_VIRTUAL && displayOwnerUid != SYSTEM_UID) { // Limit launching on virtual displays, because their contents can be read from Surface // by apps that created them. if ((aInfo.flags & ActivityInfo.FLAG_ALLOW_EMBEDDED) == 0) { diff --git a/services/tests/wmtests/Android.bp b/services/tests/wmtests/Android.bp index 6cb8b8641ecc..e2821f40f24c 100644 --- a/services/tests/wmtests/Android.bp +++ b/services/tests/wmtests/Android.bp @@ -25,6 +25,7 @@ android_test { "testables", "ub-uiautomator", "hamcrest-library", + "compatibility-device-util-axt", ], libs: [ diff --git a/services/tests/wmtests/AndroidManifest.xml b/services/tests/wmtests/AndroidManifest.xml index 123bb079dbbb..7e7d69acc138 100644 --- a/services/tests/wmtests/AndroidManifest.xml +++ b/services/tests/wmtests/AndroidManifest.xml @@ -55,7 +55,7 @@ <activity android:name="com.android.server.wm.TaskStackChangedListenerTest$ActivityInActivityView" android:resizeableActivity="true" /> <activity android:name="com.android.server.wm.ScreenDecorWindowTests$TestActivity" - android:showWhenLocked="true" /> + android:showWhenLocked="true" android:allowEmbedded="true"/> </application> <instrumentation diff --git a/services/tests/wmtests/src/com/android/server/wm/ScreenDecorWindowTests.java b/services/tests/wmtests/src/com/android/server/wm/ScreenDecorWindowTests.java index 5e8de8792cd1..31a102ae3bad 100644 --- a/services/tests/wmtests/src/com/android/server/wm/ScreenDecorWindowTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/ScreenDecorWindowTests.java @@ -64,6 +64,8 @@ import android.widget.TextView; import androidx.test.filters.SmallTest; +import com.android.compatibility.common.util.SystemUtil; + import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -343,7 +345,10 @@ public class ScreenDecorWindowTests { intent.addFlags(FLAG_ACTIVITY_NEW_TASK); final ActivityOptions options = ActivityOptions.makeBasic(); options.setLaunchDisplayId(displayId); - final Activity activity = mInstrumentation.startActivitySync(intent, options.toBundle()); + + final Activity activity = SystemUtil.runWithShellPermissionIdentity( + () -> mInstrumentation.startActivitySync(intent, options.toBundle()), + "android.permission.ACTIVITY_EMBEDDING"); waitForIdle(); assertEquals(displayId, activity.getDisplayId()); |