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

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

Revert "Drop VDM permissions from Shell"

Revert submission 29561525-no-vdm-shell

Reason for revert: Droidmonitor created revert due to b/372058363. Will be verifying through ABTD before submission.

Reverted changes: /q/submissionid:29561525-no-vdm-shell

Change-Id: I2d8dddb4a761d5a27e3b86875b1a8f8ce09eda9c
parent e6aa8aae
Loading
Loading
Loading
Loading
+6 −0
Original line number 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.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 -->
    <uses-permission android:name="android.permission.REVOKE_POST_NOTIFICATIONS_WITHOUT_KILL" />

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

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

    private static final String ATTRIBUTION_TAG_1 = "attributionTag1";
+18 −7
Original line number 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.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static com.android.compatibility.common.util.SystemUtil.runWithShellPermissionIdentity;

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

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

import java.util.concurrent.atomic.AtomicInteger;

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

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

        final AppOpsManager appOpsManager = getContext().getSystemService(AppOpsManager.class);
        appOpsManager.startWatchingNoted(new int[]{AppOpsManager.OP_FINE_LOCATION,
@@ -131,7 +142,7 @@ public class AppOpsNotedWatcherTest {
        verify(listener, timeout(NOTIFICATION_TIMEOUT_MILLIS)
                .times(1)).onOpNoted(eq(AppOpsManager.OPSTR_FINE_LOCATION),
                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));

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