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

Commit 71587649 authored by Andrii Kulian's avatar Andrii Kulian
Browse files

Add permission to launch activities on VD

1. Added permission ACTIVITY_EMBEDDING which allows apps to launch
activities on virtual displays.
2. Allow owner of display to launch activities from same app without
permission check to owned display.
3. Added permission checks for launching on secondary displays to
more target task/stack resolution paths in ActivityStarter.

Bug: 63117330
Test: android.server.cts.ActivityManagerDisplayTests
Test: go/wm-smoke
Change-Id: If169a77fb56241e06f7de20168dc38c4b0a217f5
parent d16aeddb
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ package android {
    field public static final java.lang.String ACCESS_SURFACE_FLINGER = "android.permission.ACCESS_SURFACE_FLINGER";
    field public static final java.lang.String ACCESS_WIFI_STATE = "android.permission.ACCESS_WIFI_STATE";
    field public static final java.lang.String ACCOUNT_MANAGER = "android.permission.ACCOUNT_MANAGER";
    field public static final java.lang.String ACTIVITY_EMBEDDING = "android.permission.ACTIVITY_EMBEDDING";
    field public static final java.lang.String ADD_VOICEMAIL = "com.android.voicemail.permission.ADD_VOICEMAIL";
    field public static final java.lang.String ALLOCATE_AGGRESSIVE = "android.permission.ALLOCATE_AGGRESSIVE";
    field public static final java.lang.String ALLOW_ANY_CODEC_FOR_PLAYBACK = "android.permission.ALLOW_ANY_CODEC_FOR_PLAYBACK";
+4 −0
Original line number Diff line number Diff line
@@ -1855,6 +1855,10 @@
    <permission android:name="android.permission.MANAGE_ACTIVITY_STACKS"
        android:protectionLevel="signature|privileged" />

    <!-- @SystemApi @hide Allows an application to embed other activities -->
    <permission android:name="android.permission.ACTIVITY_EMBEDDING"
                android:protectionLevel="signature|privileged" />

    <!-- Allows an application to start any activity, regardless of permission
         protection or exported state.
         @hide -->
+1 −0
Original line number Diff line number Diff line
@@ -266,6 +266,7 @@ applications that come with the platform
        <permission name="android.permission.DELETE_CACHE_FILES"/>
        <permission name="android.permission.DELETE_PACKAGES"/>
        <permission name="android.permission.DUMP"/>
        <permission name="android.permission.ACTIVITY_EMBEDDING"/>
        <permission name="android.permission.FORCE_STOP_PACKAGES"/>
        <permission name="android.permission.GET_APP_OPS_STATS"/>
        <permission name="android.permission.INSTALL_LOCATION_PROVIDER"/>
+1 −0
Original line number Diff line number Diff line
@@ -114,6 +114,7 @@
    <uses-permission android:name="android.permission.GET_APP_OPS_STATS" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.MANAGE_ACTIVITY_STACKS" />
    <uses-permission android:name="android.permission.ACTIVITY_EMBEDDING" />
    <uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL" />
    <uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" />
    <uses-permission android:name="android.permission.MANAGE_AUTO_FILL" />
+1 −1
Original line number Diff line number Diff line
@@ -1181,7 +1181,7 @@ final class ActivityRecord extends ConfigurationContainer implements AppWindowCo
     */
    boolean canBeLaunchedOnDisplay(int displayId) {
        return service.mStackSupervisor.canPlaceEntityOnDisplay(displayId,
                supportsResizeableMultiWindow());
                supportsResizeableMultiWindow(), launchedFromPid, launchedFromUid, info);
    }

    /**
Loading