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

Commit 87e02002 authored by Priyanka Advani (xWF)'s avatar Priyanka Advani (xWF) Committed by Android (Google) Code Review
Browse files

Merge "Revert "Drop VDM permissions from Shell"" into main

parents 7c48ea12 bdc9fd88
Loading
Loading
Loading
Loading
+6 −0
Original line number Original line Diff line number Diff line
@@ -743,6 +743,12 @@
    <uses-permission android:name="android.permission.READ_SAFETY_CENTER_STATUS" />
    <uses-permission android:name="android.permission.READ_SAFETY_CENTER_STATUS" />
    <uses-permission android:name="android.permission.MANAGE_SAFETY_CENTER" />
    <uses-permission android:name="android.permission.MANAGE_SAFETY_CENTER" />


    <!-- Permissions required for CTS test - CtsVirtualDevicesTestCases -->
    <uses-permission android:name="android.permission.CREATE_VIRTUAL_DEVICE" />
    <uses-permission android:name="android.permission.ADD_TRUSTED_DISPLAY" />
    <uses-permission android:name="android.permission.ADD_ALWAYS_UNLOCKED_DISPLAY" />


    <!-- Permission required for CTS test - Notification test suite -->
    <!-- Permission required for CTS test - Notification test suite -->
    <uses-permission android:name="android.permission.REVOKE_POST_NOTIFICATIONS_WITHOUT_KILL" />
    <uses-permission android:name="android.permission.REVOKE_POST_NOTIFICATIONS_WITHOUT_KILL" />


+0 −1
Original line number Original line Diff line number Diff line
@@ -113,7 +113,6 @@
    <uses-permission android:name="android.permission.MANAGE_ROLE_HOLDERS" />
    <uses-permission android:name="android.permission.MANAGE_ROLE_HOLDERS" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.CREATE_VIRTUAL_DEVICE" />


    <queries>
    <queries>
        <package android:name="com.android.servicestests.apps.suspendtestapp" />
        <package android:name="com.android.servicestests.apps.suspendtestapp" />
+1 −0
Original line number Original line Diff line number Diff line
@@ -65,6 +65,7 @@ public class AppOpsActiveWatcherTest {
            VirtualDeviceRule.withAdditionalPermissions(
            VirtualDeviceRule.withAdditionalPermissions(
                    Manifest.permission.GRANT_RUNTIME_PERMISSIONS,
                    Manifest.permission.GRANT_RUNTIME_PERMISSIONS,
                    Manifest.permission.REVOKE_RUNTIME_PERMISSIONS,
                    Manifest.permission.REVOKE_RUNTIME_PERMISSIONS,
                    Manifest.permission.CREATE_VIRTUAL_DEVICE,
                    Manifest.permission.GET_APP_OPS_STATS
                    Manifest.permission.GET_APP_OPS_STATS
            );
            );
    private static final long NOTIFICATION_TIMEOUT_MILLIS = 5000;
    private static final long NOTIFICATION_TIMEOUT_MILLIS = 5000;
+1 −0
Original line number Original line Diff line number Diff line
@@ -58,6 +58,7 @@ public class AppOpsDeviceAwareServiceTest {
            VirtualDeviceRule.withAdditionalPermissions(
            VirtualDeviceRule.withAdditionalPermissions(
                    Manifest.permission.GRANT_RUNTIME_PERMISSIONS,
                    Manifest.permission.GRANT_RUNTIME_PERMISSIONS,
                    Manifest.permission.REVOKE_RUNTIME_PERMISSIONS,
                    Manifest.permission.REVOKE_RUNTIME_PERMISSIONS,
                    Manifest.permission.CREATE_VIRTUAL_DEVICE,
                    Manifest.permission.GET_APP_OPS_STATS);
                    Manifest.permission.GET_APP_OPS_STATS);


    private static final String ATTRIBUTION_TAG_1 = "attributionTag1";
    private static final String ATTRIBUTION_TAG_1 = "attributionTag1";
+18 −7
Original line number Original line Diff line number Diff line
@@ -22,14 +22,16 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.timeout;
import static org.mockito.Mockito.timeout;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static com.android.compatibility.common.util.SystemUtil.runWithShellPermissionIdentity;


import android.app.AppOpsManager;
import android.app.AppOpsManager;
import android.app.AppOpsManager.OnOpNotedListener;
import android.app.AppOpsManager.OnOpNotedListener;
import android.companion.virtual.VirtualDeviceManager;
import android.companion.virtual.VirtualDeviceManager;
import android.companion.virtual.VirtualDeviceParams;
import android.content.AttributionSource;
import android.content.AttributionSource;
import android.content.Context;
import android.content.Context;
import android.os.Process;
import android.os.Process;
import android.virtualdevice.cts.common.VirtualDeviceRule;
import android.virtualdevice.cts.common.FakeAssociationRule;


import androidx.test.InstrumentationRegistry;
import androidx.test.InstrumentationRegistry;
import androidx.test.filters.SmallTest;
import androidx.test.filters.SmallTest;
@@ -40,6 +42,8 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runner.RunWith;
import org.mockito.InOrder;
import org.mockito.InOrder;


import java.util.concurrent.atomic.AtomicInteger;

/**
/**
 * Tests watching noted ops.
 * Tests watching noted ops.
 */
 */
@@ -47,7 +51,7 @@ import org.mockito.InOrder;
@RunWith(AndroidJUnit4.class)
@RunWith(AndroidJUnit4.class)
public class AppOpsNotedWatcherTest {
public class AppOpsNotedWatcherTest {
    @Rule
    @Rule
    public VirtualDeviceRule mVirtualDeviceRule = VirtualDeviceRule.createDefault();
    public FakeAssociationRule mFakeAssociationRule = new FakeAssociationRule();
    private static final long NOTIFICATION_TIMEOUT_MILLIS = 5000;
    private static final long NOTIFICATION_TIMEOUT_MILLIS = 5000;


    @Test
    @Test
@@ -115,12 +119,19 @@ public class AppOpsNotedWatcherTest {
    public void testWatchNotedOpsForExternalDevice() {
    public void testWatchNotedOpsForExternalDevice() {
        final AppOpsManager.OnOpNotedListener listener = mock(
        final AppOpsManager.OnOpNotedListener listener = mock(
                AppOpsManager.OnOpNotedListener.class);
                AppOpsManager.OnOpNotedListener.class);
        final VirtualDeviceManager virtualDeviceManager = getContext().getSystemService(
                VirtualDeviceManager.class);
        AtomicInteger virtualDeviceId = new AtomicInteger();
        runWithShellPermissionIdentity(() -> {
            final VirtualDeviceManager.VirtualDevice virtualDevice =
            final VirtualDeviceManager.VirtualDevice virtualDevice =
                mVirtualDeviceRule.createManagedVirtualDevice();
                    virtualDeviceManager.createVirtualDevice(
        final int virtualDeviceId = virtualDevice.getDeviceId();
                            mFakeAssociationRule.getAssociationInfo().getId(),
                            new VirtualDeviceParams.Builder().setName("virtual_device").build());
            virtualDeviceId.set(virtualDevice.getDeviceId());
        });
        AttributionSource attributionSource = new AttributionSource(Process.myUid(),
        AttributionSource attributionSource = new AttributionSource(Process.myUid(),
                getContext().getOpPackageName(), getContext().getAttributionTag(),
                getContext().getOpPackageName(), getContext().getAttributionTag(),
                virtualDeviceId);
                virtualDeviceId.get());


        final AppOpsManager appOpsManager = getContext().getSystemService(AppOpsManager.class);
        final AppOpsManager appOpsManager = getContext().getSystemService(AppOpsManager.class);
        appOpsManager.startWatchingNoted(new int[]{AppOpsManager.OP_FINE_LOCATION,
        appOpsManager.startWatchingNoted(new int[]{AppOpsManager.OP_FINE_LOCATION,
@@ -131,7 +142,7 @@ public class AppOpsNotedWatcherTest {
        verify(listener, timeout(NOTIFICATION_TIMEOUT_MILLIS)
        verify(listener, timeout(NOTIFICATION_TIMEOUT_MILLIS)
                .times(1)).onOpNoted(eq(AppOpsManager.OPSTR_FINE_LOCATION),
                .times(1)).onOpNoted(eq(AppOpsManager.OPSTR_FINE_LOCATION),
                eq(Process.myUid()), eq(getContext().getOpPackageName()),
                eq(Process.myUid()), eq(getContext().getOpPackageName()),
                eq(getContext().getAttributionTag()), eq(virtualDeviceId),
                eq(getContext().getAttributionTag()), eq(virtualDeviceId.get()),
                eq(AppOpsManager.OP_FLAG_SELF), eq(AppOpsManager.MODE_ALLOWED));
                eq(AppOpsManager.OP_FLAG_SELF), eq(AppOpsManager.MODE_ALLOWED));


        appOpsManager.finishOp(getContext().getAttributionSource().getToken(),
        appOpsManager.finishOp(getContext().getAttributionSource().getToken(),
Loading