Merge "Add APIs to move suggestions below/above window" into rvc-dev
diff --git a/apps/CameraITS/tests/scene0/test_audio_restriction.py b/apps/CameraITS/tests/scene0/test_vibration_restriction.py
similarity index 100%
rename from apps/CameraITS/tests/scene0/test_audio_restriction.py
rename to apps/CameraITS/tests/scene0/test_vibration_restriction.py
diff --git a/apps/CameraITS/tests/scene2_a/SampleTarget.jpg b/apps/CameraITS/tests/scene2_a/SampleTarget.jpg
deleted file mode 100644
index c054f7e..0000000
--- a/apps/CameraITS/tests/scene2_a/SampleTarget.jpg
+++ /dev/null
Binary files differ
diff --git a/apps/CameraITS/tests/scene4/SampleTarget.pdf b/apps/CameraITS/tests/scene4/SampleTarget.pdf
deleted file mode 100644
index e693b34..0000000
--- a/apps/CameraITS/tests/scene4/SampleTarget.pdf
+++ /dev/null
Binary files differ
diff --git a/apps/CrossProfileTestApp/Android.bp b/apps/CrossProfileTestApp/Android.bp
index cbf092b..3f1bcf9 100644
--- a/apps/CrossProfileTestApp/Android.bp
+++ b/apps/CrossProfileTestApp/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/apps/CtsVerifier/res/values/strings.xml b/apps/CtsVerifier/res/values/strings.xml
index 9332c9b..284230f 100755
--- a/apps/CtsVerifier/res/values/strings.xml
+++ b/apps/CtsVerifier/res/values/strings.xml
@@ -2837,7 +2837,7 @@
     <string name="provisioning_byod_cross_profile_permission_disabled_by_default">Cross profile permission disabled by default</string>
     <string name="provisioning_byod_cross_profile_permission_disabled_by_default_instruction">
         Press the Go button to go to Settings &gt; Apps &amp; notifications &gt; Special app access >\n
-        Connected personal and work apps.\n
+        Connected work and personal apps.\n
         Choose the \"Cross profile test app\" from the list and check that the switch is disabled.\n
         Go back to CTS Verifier and mark the test as \"Pass\" or \"Fail\".
     </string>
@@ -2845,7 +2845,7 @@
     <string name="provisioning_byod_cross_profile_permission_enabled_instruction">
         Press the Go button to open the \"Cross Profile Test App\".\n
         Press the \"Open Settings\" button to go to Settings &gt; Apps &amp; notifications &gt; Special app access >
-        Connected personal and work apps > Cross profile test app, then enable the switch.\n
+        Connected work and personal apps > Cross profile test app, then enable the switch.\n
         Verify that when you go back it takes you to the \"Cross Profile Test App\".\n
         Now verify that it shows \"INTERACTING ACROSS PROFILES ALLOWED\" message.\n
         Go back to CTS Verifier and mark the test as \"Pass\" or \"Fail\".
@@ -2854,7 +2854,7 @@
     <string name="provisioning_byod_cross_profile_permission_disabled_instruction">
         Press the Go button to open the \"Cross Profile Test App\".\n
         Press the \"Open Settings\" button to go to Settings &gt; Apps &amp; notifications &gt; Special app access >
-        Connected personal and work apps > Cross profile test app, then disable the switch.\n
+        Connected work and personal apps > Cross profile test app, then disable the switch.\n
         Verify that when you go back it takes you to the \"Cross Profile Test App\".\n
         Now verify that it shows \"INTERACTING ACROSS PROFILES NOT ALLOWED\" message.\n
         Go back to CTS Verifier and mark the test as \"Pass\" or \"Fail\".
@@ -3393,10 +3393,10 @@
     </string>
     <string name="device_owner_disable_statusbar_test">Disable status bar</string>
     <string name="device_owner_disable_statusbar_test_info">
-            Please press the below button to disable the status bar and verify that quick settings, notifications
-            and the assistant gesture are no longer available.\n
-            Next, press the button to reenable the status bar and verify that quick settings, notification
-            and the assistant gesture are available again.\n
+            Please press the below button to disable the status bar and verify that quick settings and notifications
+            are no longer available.\n
+            Next, press the button to reenable the status bar and verify that quick settings and notifications
+            are available again.\n
             Please mark the test accordingly.
     </string>
     <string name="device_owner_disable_statusbar_button">Disable status bar</string>
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/camera/bokeh/CameraBokehActivity.java b/apps/CtsVerifier/src/com/android/cts/verifier/camera/bokeh/CameraBokehActivity.java
index fd38e98..7365b32 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/camera/bokeh/CameraBokehActivity.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/camera/bokeh/CameraBokehActivity.java
@@ -222,19 +222,19 @@
                 CameraCharacteristics characteristics =
                         mCameraManager.getCameraCharacteristics(id);
                 Key<Capability[]> key =
-                        CameraCharacteristics.CONTROL_AVAILABLE_BOKEH_CAPABILITIES;
-                Capability[] bokehCaps = characteristics.get(key);
+                        CameraCharacteristics.CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_CAPABILITIES;
+                Capability[] extendedSceneModeCaps = characteristics.get(key);
 
-                if (bokehCaps == null) {
+                if (extendedSceneModeCaps == null) {
                     continue;
                 }
 
                 ArrayList<Capability> nonOffModes = new ArrayList<>();
-                for (Capability bokehCap : bokehCaps) {
-                    int mode = bokehCap.getMode();
-                    if (mode == CameraMetadata.CONTROL_BOKEH_MODE_STILL_CAPTURE ||
-                            mode == CameraMetadata.CONTROL_BOKEH_MODE_CONTINUOUS) {
-                        nonOffModes.add(bokehCap);
+                for (Capability cap : extendedSceneModeCaps) {
+                    int mode = cap.getMode();
+                    if (mode == CameraMetadata.CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE ||
+                            mode == CameraMetadata.CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS) {
+                        nonOffModes.add(cap);
                     }
                 }
 
@@ -277,9 +277,9 @@
         // Must be kept in sync with camera bokeh mode manually
         mModeNames = new SparseArray(2);
         mModeNames.append(
-                CameraMetadata.CONTROL_BOKEH_MODE_STILL_CAPTURE, "STILL_CAPTURE");
+                CameraMetadata.CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE, "STILL_CAPTURE");
         mModeNames.append(
-                CameraMetadata.CONTROL_BOKEH_MODE_CONTINUOUS, "CONTINUOUS");
+                CameraMetadata.CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS, "CONTINUOUS");
 
         mNextButton = findViewById(R.id.next_button);
         mNextButton.setOnClickListener(v -> {
@@ -638,7 +638,8 @@
             }
 
             // For BOKEH_MODE_STILL_CAPTURE, add 2 combinations: one streaming, one still capture.
-            if (bokehCap.getMode() == CaptureRequest.CONTROL_BOKEH_MODE_STILL_CAPTURE) {
+            if (bokehCap.getMode() ==
+                    CaptureRequest.CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE) {
                 CameraCombination combination2 = new CameraCombination(
                         index, bokehCap.getMode(), previewSize.getWidth(),
                         previewSize.getHeight(), mCameraId,
@@ -783,8 +784,8 @@
 
             /* Set bokeh mode and start streaming */
             int bokehMode = mNextCombination.mMode;
-            mPreviewRequestBuilder.set(CaptureRequest.CONTROL_BOKEH_MODE, bokehMode);
-            mStillCaptureRequestBuilder.set(CaptureRequest.CONTROL_BOKEH_MODE, bokehMode);
+            mPreviewRequestBuilder.set(CaptureRequest.CONTROL_EXTENDED_SCENE_MODE, bokehMode);
+            mStillCaptureRequestBuilder.set(CaptureRequest.CONTROL_EXTENDED_SCENE_MODE, bokehMode);
             mPreviewRequest = mPreviewRequestBuilder.build();
             mStillCaptureRequest = mStillCaptureRequestBuilder.build();
 
diff --git a/apps/EmptyDeviceAdmin/Android.bp b/apps/EmptyDeviceAdmin/Android.bp
index 3adab9a..bc59750 100644
--- a/apps/EmptyDeviceAdmin/Android.bp
+++ b/apps/EmptyDeviceAdmin/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/apps/EmptyDeviceOwner/Android.bp b/apps/EmptyDeviceOwner/Android.bp
index 8e0fdcc..704489c 100644
--- a/apps/EmptyDeviceOwner/Android.bp
+++ b/apps/EmptyDeviceOwner/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/apps/ForceStopHelperApp/Android.bp b/apps/ForceStopHelperApp/Android.bp
index 06bfd98..e52ee85 100644
--- a/apps/ForceStopHelperApp/Android.bp
+++ b/apps/ForceStopHelperApp/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/apps/OomCatcher/Android.bp b/apps/OomCatcher/Android.bp
index 8548661..40d260d 100644
--- a/apps/OomCatcher/Android.bp
+++ b/apps/OomCatcher/Android.bp
@@ -23,5 +23,6 @@
         "cts",
         "sts",
         "vts",
+        "vts10",
     ],
 }
diff --git a/apps/PermissionApp/Android.bp b/apps/PermissionApp/Android.bp
index b6bc3c4..0422292 100644
--- a/apps/PermissionApp/Android.bp
+++ b/apps/PermissionApp/Android.bp
@@ -23,6 +23,7 @@
         "arcts",
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/apps/VpnApp/Android.bp b/apps/VpnApp/Android.bp
index 88d56f2..1a1505a 100644
--- a/apps/VpnApp/Android.bp
+++ b/apps/VpnApp/Android.bp
@@ -26,6 +26,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -37,6 +38,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -48,6 +50,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -59,6 +62,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/apps/hotspot/Android.mk b/apps/hotspot/Android.mk
index ae93979..04160c8 100644
--- a/apps/hotspot/Android.mk
+++ b/apps/hotspot/Android.mk
@@ -13,6 +13,6 @@
 
 LOCAL_STATIC_JAVA_LIBRARIES := android-support-v4
 
-LOCAL_COMPATIBILITY_SUITE := cts sts vts
+LOCAL_COMPATIBILITY_SUITE := cts sts vts vts10
 
 include $(BUILD_CTS_PACKAGE)
diff --git a/hostsidetests/abioverride/Android.bp b/hostsidetests/abioverride/Android.bp
index 7717acc..ad27517 100644
--- a/hostsidetests/abioverride/Android.bp
+++ b/hostsidetests/abioverride/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     libs: [
diff --git a/hostsidetests/abioverride/app/Android.bp b/hostsidetests/abioverride/app/Android.bp
index 12923c0..3561d7a 100644
--- a/hostsidetests/abioverride/app/Android.bp
+++ b/hostsidetests/abioverride/app/Android.bp
@@ -26,6 +26,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/hostsidetests/accounts/Android.bp b/hostsidetests/accounts/Android.bp
index 3bf3334..38669eb 100644
--- a/hostsidetests/accounts/Android.bp
+++ b/hostsidetests/accounts/Android.bp
@@ -28,6 +28,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/accounts/test-apps/AccountManagerCrossUserApp/Android.bp b/hostsidetests/accounts/test-apps/AccountManagerCrossUserApp/Android.bp
index 9eb425f..d9f434a 100644
--- a/hostsidetests/accounts/test-apps/AccountManagerCrossUserApp/Android.bp
+++ b/hostsidetests/accounts/test-apps/AccountManagerCrossUserApp/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/hostsidetests/accounts/test-apps/Android.mk b/hostsidetests/accounts/test-apps/Android.mk
index 7280aab..2061de1 100644
--- a/hostsidetests/accounts/test-apps/Android.mk
+++ b/hostsidetests/accounts/test-apps/Android.mk
@@ -17,7 +17,7 @@
 include $(CLEAR_VARS)
 
 # tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 # Build the test APKs using their own makefiles
 include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/hostsidetests/angle/Android.bp b/hostsidetests/angle/Android.bp
index 1013607..e8dbed0 100644
--- a/hostsidetests/angle/Android.bp
+++ b/hostsidetests/angle/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
         "mts"
     ],
diff --git a/hostsidetests/angle/app/driverTest/Android.bp b/hostsidetests/angle/app/driverTest/Android.bp
index 986824d..bf00b76 100644
--- a/hostsidetests/angle/app/driverTest/Android.bp
+++ b/hostsidetests/angle/app/driverTest/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "mts"
     ],
     compile_multilib: "both",
diff --git a/hostsidetests/angle/app/driverTestSecondary/Android.bp b/hostsidetests/angle/app/driverTestSecondary/Android.bp
index 45fba06..7ea1fce 100644
--- a/hostsidetests/angle/app/driverTestSecondary/Android.bp
+++ b/hostsidetests/angle/app/driverTestSecondary/Android.bp
@@ -24,6 +24,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "mts"
     ],
     compile_multilib: "both",
diff --git a/hostsidetests/appbinding/app/Android.bp b/hostsidetests/appbinding/app/Android.bp
index 58deb2f..7c1c04b 100644
--- a/hostsidetests/appbinding/app/Android.bp
+++ b/hostsidetests/appbinding/app/Android.bp
@@ -46,6 +46,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -61,6 +62,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -76,6 +78,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -91,6 +94,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -105,6 +109,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -120,6 +125,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -135,6 +141,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/appbinding/hostside/Android.bp b/hostsidetests/appbinding/hostside/Android.bp
index 85eb736..b1b4316 100644
--- a/hostsidetests/appbinding/hostside/Android.bp
+++ b/hostsidetests/appbinding/hostside/Android.bp
@@ -26,6 +26,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     target_required: [
diff --git a/hostsidetests/appcompat/compatchanges/Android.bp b/hostsidetests/appcompat/compatchanges/Android.bp
index 85fb5bb..425881d 100644
--- a/hostsidetests/appcompat/compatchanges/Android.bp
+++ b/hostsidetests/appcompat/compatchanges/Android.bp
@@ -26,6 +26,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     java_resources: [":cts-global-compat-config"],
diff --git a/hostsidetests/appcompat/compatchanges/app/Android.bp b/hostsidetests/appcompat/compatchanges/app/Android.bp
index 9ff5b17..f6788bf 100644
--- a/hostsidetests/appcompat/compatchanges/app/Android.bp
+++ b/hostsidetests/appcompat/compatchanges/app/Android.bp
@@ -31,6 +31,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/appsecurity/Android.mk b/hostsidetests/appsecurity/Android.mk
index 55d7720..b5f2774 100644
--- a/hostsidetests/appsecurity/Android.mk
+++ b/hostsidetests/appsecurity/Android.mk
@@ -36,7 +36,7 @@
 LOCAL_CTS_TEST_PACKAGE := android.appsecurity
 
 # tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests mts sts
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests mts sts
 
 LOCAL_REQUIRED_MODULES := \
 	CtsCorruptApkTests_b71360999 \
diff --git a/hostsidetests/appsecurity/src/android/appsecurity/cts/PrivilegedUpdateTests.java b/hostsidetests/appsecurity/src/android/appsecurity/cts/PrivilegedUpdateTests.java
index aa28a97..af9d4d2 100644
--- a/hostsidetests/appsecurity/src/android/appsecurity/cts/PrivilegedUpdateTests.java
+++ b/hostsidetests/appsecurity/src/android/appsecurity/cts/PrivilegedUpdateTests.java
@@ -17,21 +17,22 @@
 package android.appsecurity.cts;
 
 import android.platform.test.annotations.AppModeFull;
+import android.platform.test.annotations.LargeTest;
+
 import com.android.compatibility.common.tradefed.build.CompatibilityBuildHelper;
 import com.android.ddmlib.Log;
 import com.android.tradefed.build.IBuildInfo;
 import com.android.tradefed.device.DeviceNotAvailableException;
-import com.android.tradefed.device.ITestDevice;
 import com.android.tradefed.testtype.DeviceTestCase;
 import com.android.tradefed.testtype.IAbi;
 import com.android.tradefed.testtype.IAbiReceiver;
 import com.android.tradefed.testtype.IBuildReceiver;
 import com.android.tradefed.util.AbiFormatter;
-import com.android.tradefed.util.AbiUtils;
 
 /**
  * Tests that verify intent filters.
  */
+@LargeTest
 @AppModeFull(reason="Instant applications can never be system or privileged")
 public class PrivilegedUpdateTests extends DeviceTestCase implements IAbiReceiver, IBuildReceiver {
     private static final String TAG = "PrivilegedUpdateTests";
@@ -151,6 +152,28 @@
         }
     }
 
+    public void testUpdatedSystemAppPreservedOnReboot() throws Exception {
+        if (!isDefaultAbi()) {
+            Log.w(TAG, "Skipping test for non-default abi.");
+            return;
+        }
+
+        getDevice().executeShellCommand("pm enable " + SHIM_PKG);
+        runDeviceTests(TEST_PKG, ".PrivilegedAppDisableTest", "testPrivAppAndEnabled");
+        try {
+            assertNull(getDevice().installPackage(
+                    mBuildHelper.getTestFile(SHIM_UPDATE_APK), true));
+            getDevice().executeShellCommand("pm enable " + SHIM_PKG);
+            runDeviceTests(TEST_PKG, ".PrivilegedAppDisableTest", "testUpdatedPrivAppAndEnabled");
+
+            getDevice().reboot();
+
+            runDeviceTests(TEST_PKG, ".PrivilegedAppDisableTest", "testUpdatedPrivAppAndEnabled");
+        } finally {
+            getDevice().uninstallPackage(SHIM_PKG);
+        }
+    }
+
     private void runDeviceTests(String packageName, String testClassName, String testMethodName)
             throws DeviceNotAvailableException {
         Utils.runDeviceTests(getDevice(), packageName, testClassName, testMethodName);
diff --git a/hostsidetests/appsecurity/test-apps/AccessSerialLegacy/Android.bp b/hostsidetests/appsecurity/test-apps/AccessSerialLegacy/Android.bp
index a236664..a59acb4 100644
--- a/hostsidetests/appsecurity/test-apps/AccessSerialLegacy/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/AccessSerialLegacy/Android.bp
@@ -24,6 +24,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     optimize: {
diff --git a/hostsidetests/appsecurity/test-apps/AccessSerialModern/Android.bp b/hostsidetests/appsecurity/test-apps/AccessSerialModern/Android.bp
index 747a5d9..4a4d90c 100644
--- a/hostsidetests/appsecurity/test-apps/AccessSerialModern/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/AccessSerialModern/Android.bp
@@ -27,6 +27,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     optimize: {
diff --git a/hostsidetests/appsecurity/test-apps/Android.mk b/hostsidetests/appsecurity/test-apps/Android.mk
index 24249f2..3eba1f9 100644
--- a/hostsidetests/appsecurity/test-apps/Android.mk
+++ b/hostsidetests/appsecurity/test-apps/Android.mk
@@ -17,7 +17,7 @@
 include $(CLEAR_VARS)
 
 # tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests sts
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests sts
 
 # Build the test APKs using their own makefiles
 include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/hostsidetests/appsecurity/test-apps/AppAccessData/Android.bp b/hostsidetests/appsecurity/test-apps/AppAccessData/Android.bp
index 2c3960a..1c76741 100644
--- a/hostsidetests/appsecurity/test-apps/AppAccessData/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/AppAccessData/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     // although not strictly necessary, sign this app with different cert than CtsAppWithData
diff --git a/hostsidetests/appsecurity/test-apps/AppDataIsolationTestApp/Android.bp b/hostsidetests/appsecurity/test-apps/AppDataIsolationTestApp/Android.bp
index e415ec7..0f4e251 100644
--- a/hostsidetests/appsecurity/test-apps/AppDataIsolationTestApp/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/AppDataIsolationTestApp/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     certificate: ":cts-testkey1",
@@ -43,6 +44,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     certificate: ":cts-testkey1",
@@ -63,6 +65,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     certificate: ":cts-testkey1",
@@ -83,6 +86,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     certificate: ":cts-testkey1",
@@ -103,6 +107,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     certificate: ":cts-testkey1",
diff --git a/hostsidetests/appsecurity/test-apps/AppWithData/Android.bp b/hostsidetests/appsecurity/test-apps/AppWithData/Android.bp
index 2b59838..6d205de 100644
--- a/hostsidetests/appsecurity/test-apps/AppWithData/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/AppWithData/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     certificate: ":cts-testkey1",
diff --git a/hostsidetests/appsecurity/test-apps/ApplicationVisibilityCrossUserApp/Android.bp b/hostsidetests/appsecurity/test-apps/ApplicationVisibilityCrossUserApp/Android.bp
index 6c70ccd..e532b30 100644
--- a/hostsidetests/appsecurity/test-apps/ApplicationVisibilityCrossUserApp/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/ApplicationVisibilityCrossUserApp/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/hostsidetests/appsecurity/test-apps/AuthBoundKeyApp/Android.bp b/hostsidetests/appsecurity/test-apps/AuthBoundKeyApp/Android.bp
index 9d392de..516c376 100644
--- a/hostsidetests/appsecurity/test-apps/AuthBoundKeyApp/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/AuthBoundKeyApp/Android.bp
@@ -26,6 +26,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     // sign this app with a different cert than CtsUsePermissionDiffCert
diff --git a/hostsidetests/appsecurity/test-apps/CorruptApkTests/Android.bp b/hostsidetests/appsecurity/test-apps/CorruptApkTests/Android.bp
index a6e4f83..0123ccd 100644
--- a/hostsidetests/appsecurity/test-apps/CorruptApkTests/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/CorruptApkTests/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ]
 }
@@ -30,6 +31,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ]
 }
@@ -41,6 +43,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ]
 }
diff --git a/hostsidetests/appsecurity/test-apps/DeviceIdentifiers/Android.bp b/hostsidetests/appsecurity/test-apps/DeviceIdentifiers/Android.bp
index 71129b9..a20fb95 100644
--- a/hostsidetests/appsecurity/test-apps/DeviceIdentifiers/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/DeviceIdentifiers/Android.bp
@@ -26,6 +26,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     optimize: {
diff --git a/hostsidetests/appsecurity/test-apps/DocumentClient/Android.bp b/hostsidetests/appsecurity/test-apps/DocumentClient/Android.bp
index d9da67a..3dc602a 100644
--- a/hostsidetests/appsecurity/test-apps/DocumentClient/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/DocumentClient/Android.bp
@@ -33,6 +33,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
         "mts",
     ],
@@ -43,4 +44,6 @@
     dex_preopt: {
         enabled: false,
     },
+    min_sdk_version: "29",
+    target_sdk_version: "29",
 }
diff --git a/hostsidetests/appsecurity/test-apps/DocumentProvider/Android.bp b/hostsidetests/appsecurity/test-apps/DocumentProvider/Android.bp
index 9b57550..8225294 100644
--- a/hostsidetests/appsecurity/test-apps/DocumentProvider/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/DocumentProvider/Android.bp
@@ -29,6 +29,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
         "mts",
     ],
@@ -39,4 +40,6 @@
     dex_preopt: {
         enabled: false,
     },
+    min_sdk_version: "29",
+    target_sdk_version: "29",
 }
diff --git a/hostsidetests/appsecurity/test-apps/DocumentProvider/AndroidManifest.xml b/hostsidetests/appsecurity/test-apps/DocumentProvider/AndroidManifest.xml
index 2b2f1fd..2f4d5fe 100644
--- a/hostsidetests/appsecurity/test-apps/DocumentProvider/AndroidManifest.xml
+++ b/hostsidetests/appsecurity/test-apps/DocumentProvider/AndroidManifest.xml
@@ -16,6 +16,9 @@
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
           package="com.android.cts.documentprovider">
+
+    <uses-sdk android:minSdkVersion="29" android:targetSdkVersion="29"/>
+
     <application android:forceQueryable="true">
         <uses-library android:name="android.test.runner" />
 
diff --git a/hostsidetests/appsecurity/test-apps/DuplicatePermissionDeclareApp/Android.bp b/hostsidetests/appsecurity/test-apps/DuplicatePermissionDeclareApp/Android.bp
index 6bc0b8d..a70dca9 100644
--- a/hostsidetests/appsecurity/test-apps/DuplicatePermissionDeclareApp/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/DuplicatePermissionDeclareApp/Android.bp
@@ -24,6 +24,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/appsecurity/test-apps/EncryptionApp/Android.bp b/hostsidetests/appsecurity/test-apps/EncryptionApp/Android.bp
index 42a1c3e..b1f23b3 100644
--- a/hostsidetests/appsecurity/test-apps/EncryptionApp/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/EncryptionApp/Android.bp
@@ -31,6 +31,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     certificate: ":cts-testkey1",
diff --git a/hostsidetests/appsecurity/test-apps/EphemeralTestApp/EphemeralApp1/Android.bp b/hostsidetests/appsecurity/test-apps/EphemeralTestApp/EphemeralApp1/Android.bp
index f745d17..429677b 100644
--- a/hostsidetests/appsecurity/test-apps/EphemeralTestApp/EphemeralApp1/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/EphemeralTestApp/EphemeralApp1/Android.bp
@@ -32,6 +32,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     srcs: ["src/**/*.java"],
diff --git a/hostsidetests/appsecurity/test-apps/EphemeralTestApp/EphemeralApp2/Android.bp b/hostsidetests/appsecurity/test-apps/EphemeralTestApp/EphemeralApp2/Android.bp
index abce8e6..5e1b086 100644
--- a/hostsidetests/appsecurity/test-apps/EphemeralTestApp/EphemeralApp2/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/EphemeralTestApp/EphemeralApp2/Android.bp
@@ -31,6 +31,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     srcs: ["src/**/*.java"],
diff --git a/hostsidetests/appsecurity/test-apps/EphemeralTestApp/ImplicitlyExposedApp/Android.bp b/hostsidetests/appsecurity/test-apps/EphemeralTestApp/ImplicitlyExposedApp/Android.bp
index ae294f8..7b425bd 100644
--- a/hostsidetests/appsecurity/test-apps/EphemeralTestApp/ImplicitlyExposedApp/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/EphemeralTestApp/ImplicitlyExposedApp/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     srcs: ["src/**/*.java"],
diff --git a/hostsidetests/appsecurity/test-apps/EphemeralTestApp/NormalApp/Android.bp b/hostsidetests/appsecurity/test-apps/EphemeralTestApp/NormalApp/Android.bp
index d715a00..a8c173f 100644
--- a/hostsidetests/appsecurity/test-apps/EphemeralTestApp/NormalApp/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/EphemeralTestApp/NormalApp/Android.bp
@@ -26,6 +26,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     srcs: ["src/**/*.java"],
diff --git a/hostsidetests/appsecurity/test-apps/EphemeralTestApp/UnexposedApp/Android.bp b/hostsidetests/appsecurity/test-apps/EphemeralTestApp/UnexposedApp/Android.bp
index c00a6fc..842318f 100644
--- a/hostsidetests/appsecurity/test-apps/EphemeralTestApp/UnexposedApp/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/EphemeralTestApp/UnexposedApp/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     resource_dirs: ["res"],
diff --git a/hostsidetests/appsecurity/test-apps/EphemeralTestApp/UserApp/Android.bp b/hostsidetests/appsecurity/test-apps/EphemeralTestApp/UserApp/Android.bp
index 85c3bbf..b9c49e4 100644
--- a/hostsidetests/appsecurity/test-apps/EphemeralTestApp/UserApp/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/EphemeralTestApp/UserApp/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     srcs: ["src/**/*.java"],
diff --git a/hostsidetests/appsecurity/test-apps/EphemeralTestApp/UserAppTest/Android.bp b/hostsidetests/appsecurity/test-apps/EphemeralTestApp/UserAppTest/Android.bp
index 42497c1..10448e5 100644
--- a/hostsidetests/appsecurity/test-apps/EphemeralTestApp/UserAppTest/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/EphemeralTestApp/UserAppTest/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     srcs: ["src/**/*.java"],
diff --git a/hostsidetests/appsecurity/test-apps/ExternalStorageApp/Android.bp b/hostsidetests/appsecurity/test-apps/ExternalStorageApp/Android.bp
index b97bf62..14d51a2 100644
--- a/hostsidetests/appsecurity/test-apps/ExternalStorageApp/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/ExternalStorageApp/Android.bp
@@ -27,6 +27,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     dex_preopt: {
diff --git a/hostsidetests/appsecurity/test-apps/InstantCookieApp/Android.bp b/hostsidetests/appsecurity/test-apps/InstantCookieApp/Android.bp
index 1a8c858..174b16e 100644
--- a/hostsidetests/appsecurity/test-apps/InstantCookieApp/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/InstantCookieApp/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     certificate: ":cts-keyset-test-a",
diff --git a/hostsidetests/appsecurity/test-apps/InstantCookieApp2/Android.bp b/hostsidetests/appsecurity/test-apps/InstantCookieApp2/Android.bp
index 9a71c16..1a79a47 100644
--- a/hostsidetests/appsecurity/test-apps/InstantCookieApp2/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/InstantCookieApp2/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     certificate: ":cts-keyset-test-b",
diff --git a/hostsidetests/appsecurity/test-apps/InstantUpgradeApp/Android.bp b/hostsidetests/appsecurity/test-apps/InstantUpgradeApp/Android.bp
index 411bccc..02f21a8 100644
--- a/hostsidetests/appsecurity/test-apps/InstantUpgradeApp/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/InstantUpgradeApp/Android.bp
@@ -31,6 +31,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     srcs: ["src/**/*.java"],
diff --git a/hostsidetests/appsecurity/test-apps/InstrumentationAppDiffCert/Android.bp b/hostsidetests/appsecurity/test-apps/InstrumentationAppDiffCert/Android.bp
index 9f5d35a..801d619 100644
--- a/hostsidetests/appsecurity/test-apps/InstrumentationAppDiffCert/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/InstrumentationAppDiffCert/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     // sign this app with different cert than CtsTargetInstrumentationApp
diff --git a/hostsidetests/appsecurity/test-apps/IsolatedSplitApp/Android.bp b/hostsidetests/appsecurity/test-apps/IsolatedSplitApp/Android.bp
index 91c5be6..80025f0 100644
--- a/hostsidetests/appsecurity/test-apps/IsolatedSplitApp/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/IsolatedSplitApp/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/hostsidetests/appsecurity/test-apps/IsolatedSplitApp/feature_a/Android.bp b/hostsidetests/appsecurity/test-apps/IsolatedSplitApp/feature_a/Android.bp
index b26ce47..363fae8 100644
--- a/hostsidetests/appsecurity/test-apps/IsolatedSplitApp/feature_a/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/IsolatedSplitApp/feature_a/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     // Feature splits are dependent on this split, so it must be exported.
diff --git a/hostsidetests/appsecurity/test-apps/IsolatedSplitApp/feature_b/Android.bp b/hostsidetests/appsecurity/test-apps/IsolatedSplitApp/feature_b/Android.bp
index 7a32ea9..f14eee2 100644
--- a/hostsidetests/appsecurity/test-apps/IsolatedSplitApp/feature_b/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/IsolatedSplitApp/feature_b/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     // Make sure our test locale polish is not stripped.
diff --git a/hostsidetests/appsecurity/test-apps/IsolatedSplitApp/feature_c/Android.bp b/hostsidetests/appsecurity/test-apps/IsolatedSplitApp/feature_c/Android.bp
index 3df120d..d44ce9b 100644
--- a/hostsidetests/appsecurity/test-apps/IsolatedSplitApp/feature_c/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/IsolatedSplitApp/feature_c/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     // Make sure our test locale polish is not stripped.
diff --git a/hostsidetests/appsecurity/test-apps/ListeningPortsApp/Android.bp b/hostsidetests/appsecurity/test-apps/ListeningPortsApp/Android.bp
index 10938de..f36c685 100644
--- a/hostsidetests/appsecurity/test-apps/ListeningPortsApp/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/ListeningPortsApp/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     srcs: ["src/**/*.java"],
diff --git a/hostsidetests/appsecurity/test-apps/MajorVersionApp/Version000000000000ffff/Android.bp b/hostsidetests/appsecurity/test-apps/MajorVersionApp/Version000000000000ffff/Android.bp
index 8029df5..cb34819 100644
--- a/hostsidetests/appsecurity/test-apps/MajorVersionApp/Version000000000000ffff/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/MajorVersionApp/Version000000000000ffff/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     // sign this app with a different cert than CtsSimpleAppInstallDiffCert
diff --git a/hostsidetests/appsecurity/test-apps/MajorVersionApp/Version00000000ffffffff/Android.bp b/hostsidetests/appsecurity/test-apps/MajorVersionApp/Version00000000ffffffff/Android.bp
index 148d2ee..3891fbd 100644
--- a/hostsidetests/appsecurity/test-apps/MajorVersionApp/Version00000000ffffffff/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/MajorVersionApp/Version00000000ffffffff/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     // sign this app with a different cert than CtsSimpleAppInstallDiffCert
diff --git a/hostsidetests/appsecurity/test-apps/MajorVersionApp/Version000000ff00000000/Android.bp b/hostsidetests/appsecurity/test-apps/MajorVersionApp/Version000000ff00000000/Android.bp
index 3efce33..34e11a5 100644
--- a/hostsidetests/appsecurity/test-apps/MajorVersionApp/Version000000ff00000000/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/MajorVersionApp/Version000000ff00000000/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     // sign this app with a different cert than CtsSimpleAppInstallDiffCert
diff --git a/hostsidetests/appsecurity/test-apps/MajorVersionApp/Version000000ffffffffff/Android.bp b/hostsidetests/appsecurity/test-apps/MajorVersionApp/Version000000ffffffffff/Android.bp
index d68a767..c9ed3ba 100644
--- a/hostsidetests/appsecurity/test-apps/MajorVersionApp/Version000000ffffffffff/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/MajorVersionApp/Version000000ffffffffff/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     // sign this app with a different cert than CtsSimpleAppInstallDiffCert
diff --git a/hostsidetests/appsecurity/test-apps/MediaStorageApp/Android.bp b/hostsidetests/appsecurity/test-apps/MediaStorageApp/Android.bp
index 1f2b551..b6310bb 100644
--- a/hostsidetests/appsecurity/test-apps/MediaStorageApp/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/MediaStorageApp/Android.bp
@@ -27,6 +27,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -46,6 +47,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     manifest: "AndroidManifest28.xml",
@@ -66,6 +68,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     manifest: "AndroidManifest29.xml",
diff --git a/hostsidetests/appsecurity/test-apps/MultiUserStorageApp/Android.bp b/hostsidetests/appsecurity/test-apps/MultiUserStorageApp/Android.bp
index fe3990d..c01ce22 100644
--- a/hostsidetests/appsecurity/test-apps/MultiUserStorageApp/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/MultiUserStorageApp/Android.bp
@@ -28,6 +28,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     dex_preopt: {
diff --git a/hostsidetests/appsecurity/test-apps/NoRestartApp/Android.bp b/hostsidetests/appsecurity/test-apps/NoRestartApp/Android.bp
index dda150a..a967823 100644
--- a/hostsidetests/appsecurity/test-apps/NoRestartApp/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/NoRestartApp/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     export_package_resources: true,
diff --git a/hostsidetests/appsecurity/test-apps/NoRestartApp/feature/Android.bp b/hostsidetests/appsecurity/test-apps/NoRestartApp/feature/Android.bp
index 9bbdfc9..9ae3cc9 100644
--- a/hostsidetests/appsecurity/test-apps/NoRestartApp/feature/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/NoRestartApp/feature/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     libs: ["CtsNoRestartBase"],
diff --git a/hostsidetests/appsecurity/test-apps/OrderedActivityApp/Android.bp b/hostsidetests/appsecurity/test-apps/OrderedActivityApp/Android.bp
index 2e3b6e9..b7cd088 100644
--- a/hostsidetests/appsecurity/test-apps/OrderedActivityApp/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/OrderedActivityApp/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     srcs: ["src/**/*.java"],
diff --git a/hostsidetests/appsecurity/test-apps/PackageAccessApp/Android.bp b/hostsidetests/appsecurity/test-apps/PackageAccessApp/Android.bp
index 7e1137e..05d2f7a 100644
--- a/hostsidetests/appsecurity/test-apps/PackageAccessApp/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/PackageAccessApp/Android.bp
@@ -24,6 +24,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/hostsidetests/appsecurity/test-apps/PermissionDeclareApp/Android.bp b/hostsidetests/appsecurity/test-apps/PermissionDeclareApp/Android.bp
index 4c79dca..150a427 100644
--- a/hostsidetests/appsecurity/test-apps/PermissionDeclareApp/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/PermissionDeclareApp/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
         "sts",
     ],
diff --git a/hostsidetests/appsecurity/test-apps/PermissionDeclareAppCompat/Android.bp b/hostsidetests/appsecurity/test-apps/PermissionDeclareAppCompat/Android.bp
index 76203e9..1b924fd 100644
--- a/hostsidetests/appsecurity/test-apps/PermissionDeclareAppCompat/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/PermissionDeclareAppCompat/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
         "sts",
     ],
diff --git a/hostsidetests/appsecurity/test-apps/PrivilegedUpdateApp/Android.bp b/hostsidetests/appsecurity/test-apps/PrivilegedUpdateApp/Android.bp
index 61e5d4c..0f2579a 100644
--- a/hostsidetests/appsecurity/test-apps/PrivilegedUpdateApp/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/PrivilegedUpdateApp/Android.bp
@@ -15,6 +15,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     optimize: {
diff --git a/hostsidetests/appsecurity/test-apps/PrivilegedUpdateApp/Android.mk b/hostsidetests/appsecurity/test-apps/PrivilegedUpdateApp/Android.mk
index ef27f50..3d69a2f 100644
--- a/hostsidetests/appsecurity/test-apps/PrivilegedUpdateApp/Android.mk
+++ b/hostsidetests/appsecurity/test-apps/PrivilegedUpdateApp/Android.mk
@@ -12,7 +12,7 @@
 LOCAL_BUILT_MODULE_STEM := package.apk
 # Make sure the build system doesn't try to resign the APK
 LOCAL_CERTIFICATE := PRESIGNED
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 # The 'arm' apk has both arm and arm64 so's. Same for x86/x86_64.
 my_apk_dir := $(subst arm64,arm,$(TARGET_ARCH))
@@ -32,7 +32,7 @@
 LOCAL_BUILT_MODULE_STEM := package.apk
 # Make sure the build system doesn't try to resign the APK
 LOCAL_CERTIFICATE := PRESIGNED
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 LOCAL_REPLACE_PREBUILT_APK_INSTALLED := $(LOCAL_PATH)/apk/$(my_apk_dir)/CtsShimPrivUpgradeWrongSHA.apk
 
diff --git a/hostsidetests/appsecurity/test-apps/PrivilegedUpdateApp/AndroidManifest.xml b/hostsidetests/appsecurity/test-apps/PrivilegedUpdateApp/AndroidManifest.xml
index 95169b6..a1487af 100644
--- a/hostsidetests/appsecurity/test-apps/PrivilegedUpdateApp/AndroidManifest.xml
+++ b/hostsidetests/appsecurity/test-apps/PrivilegedUpdateApp/AndroidManifest.xml
@@ -17,6 +17,8 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
         package="com.android.cts.privilegedupdate">
 
+    <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>
+
     <application android:label="PrivilegedUpdateApp">
         <uses-library android:name="android.test.runner" />
         <activity android:name=".MainActivity" />
diff --git a/hostsidetests/appsecurity/test-apps/PrivilegedUpdateApp/src/com/android/cts/privilegedupdate/PrivilegedAppDisableTest.java b/hostsidetests/appsecurity/test-apps/PrivilegedUpdateApp/src/com/android/cts/privilegedupdate/PrivilegedAppDisableTest.java
index 606ada1..18962a9 100644
--- a/hostsidetests/appsecurity/test-apps/PrivilegedUpdateApp/src/com/android/cts/privilegedupdate/PrivilegedAppDisableTest.java
+++ b/hostsidetests/appsecurity/test-apps/PrivilegedUpdateApp/src/com/android/cts/privilegedupdate/PrivilegedAppDisableTest.java
@@ -35,29 +35,27 @@
     private static final String PRIVILEGED_SHIM_PKG = "com.android.cts.priv.ctsshim";
 
     public void testPrivAppAndEnabled() throws Exception {
-        assertEquals((getApplicationFlags() & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP),
-                0);
+        assertEquals(0, (getApplicationFlags() & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP));
         assertPackageEnabledState(PRIVILEGED_SHIM_PKG,
                 PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
     }
 
     public void testPrivAppAndDisabled() throws Exception {
-        assertEquals((getApplicationFlags() & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP),
-                0);
+        assertEquals(0, (getApplicationFlags() & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP));
         assertPackageEnabledState(PRIVILEGED_SHIM_PKG,
                 PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER);
     }
 
     public void testUpdatedPrivAppAndEnabled() throws Exception {
-        assertEquals((getApplicationFlags() & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP),
-                ApplicationInfo.FLAG_UPDATED_SYSTEM_APP);
+        assertEquals(ApplicationInfo.FLAG_UPDATED_SYSTEM_APP,
+                (getApplicationFlags() & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP));
         assertPackageEnabledState(PRIVILEGED_SHIM_PKG,
                 PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
     }
 
     public void testUpdatedPrivAppAndDisabled() throws Exception {
-        assertEquals((getApplicationFlags() & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP),
-                ApplicationInfo.FLAG_UPDATED_SYSTEM_APP);
+        assertEquals(ApplicationInfo.FLAG_UPDATED_SYSTEM_APP,
+                (getApplicationFlags() & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP));
         assertPackageEnabledState(PRIVILEGED_SHIM_PKG,
                 PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER);
     }
diff --git a/hostsidetests/appsecurity/test-apps/ReadExternalStorageApp/Android.bp b/hostsidetests/appsecurity/test-apps/ReadExternalStorageApp/Android.bp
index d8acb10..35f30d9 100644
--- a/hostsidetests/appsecurity/test-apps/ReadExternalStorageApp/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/ReadExternalStorageApp/Android.bp
@@ -31,6 +31,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     dex_preopt: {
diff --git a/hostsidetests/appsecurity/test-apps/SessionInspector/Android.bp b/hostsidetests/appsecurity/test-apps/SessionInspector/Android.bp
index 421c9de..aebf608 100644
--- a/hostsidetests/appsecurity/test-apps/SessionInspector/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/SessionInspector/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -37,6 +38,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/appsecurity/test-apps/SharedUidInstall/Android.bp b/hostsidetests/appsecurity/test-apps/SharedUidInstall/Android.bp
index 15f04c5..8ce8d71 100644
--- a/hostsidetests/appsecurity/test-apps/SharedUidInstall/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/SharedUidInstall/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     // sign this app with a different cert than CtsSharedUidInstallDiffCert
diff --git a/hostsidetests/appsecurity/test-apps/SharedUidInstallDiffCert/Android.bp b/hostsidetests/appsecurity/test-apps/SharedUidInstallDiffCert/Android.bp
index 87a9fce..c97be7d 100644
--- a/hostsidetests/appsecurity/test-apps/SharedUidInstallDiffCert/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/SharedUidInstallDiffCert/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     // sign this app with a different cert than CtsSharedUidInstall
diff --git a/hostsidetests/appsecurity/test-apps/SimpleAppInstall/Android.bp b/hostsidetests/appsecurity/test-apps/SimpleAppInstall/Android.bp
index 943165f..f9ceac4 100644
--- a/hostsidetests/appsecurity/test-apps/SimpleAppInstall/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/SimpleAppInstall/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     // sign this app with a different cert than CtsSimpleAppInstallDiffCert
diff --git a/hostsidetests/appsecurity/test-apps/SimpleAppInstallDiffCert/Android.bp b/hostsidetests/appsecurity/test-apps/SimpleAppInstallDiffCert/Android.bp
index 64005a0..d30837a 100644
--- a/hostsidetests/appsecurity/test-apps/SimpleAppInstallDiffCert/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/SimpleAppInstallDiffCert/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     // sign this app with a different cert than CtsSimpleAppInstall
diff --git a/hostsidetests/appsecurity/test-apps/SplitApp/Android.mk b/hostsidetests/appsecurity/test-apps/SplitApp/Android.mk
index 59482af..eaf8f0e 100644
--- a/hostsidetests/appsecurity/test-apps/SplitApp/Android.mk
+++ b/hostsidetests/appsecurity/test-apps/SplitApp/Android.mk
@@ -31,7 +31,7 @@
 LOCAL_PACKAGE_SPLITS := mdpi-v4 hdpi-v4 xhdpi-v4 xxhdpi-v4 v7 fr de
 
 # Tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 LOCAL_ASSET_DIR := $(LOCAL_PATH)/assets
 
@@ -64,7 +64,7 @@
 LOCAL_PACKAGE_SPLITS := v7
 
 # Tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 LOCAL_MANIFEST_FILE := revision/AndroidManifest.xml
 LOCAL_CERTIFICATE := cts/hostsidetests/appsecurity/certs/cts-testkey1
@@ -94,7 +94,7 @@
 LOCAL_PACKAGE_SPLITS := v7
 
 # Tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 LOCAL_CERTIFICATE := cts/hostsidetests/appsecurity/certs/cts-testkey1
 LOCAL_AAPT_FLAGS := --version-code 101 --version-name OneHundredOne --replace-version
@@ -123,7 +123,7 @@
 LOCAL_PACKAGE_SPLITS := v7
 
 # Tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 LOCAL_CERTIFICATE := cts/hostsidetests/appsecurity/certs/cts-testkey2
 LOCAL_AAPT_FLAGS := --version-code 100 --version-name OneHundred --replace-version
@@ -150,7 +150,7 @@
 LOCAL_MIN_SDK_VERSION := 4
 LOCAL_PACKAGE_SPLITS := xxhdpi-v4
 
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 LOCAL_ASSET_DIR := $(LOCAL_PATH)/assets
 
diff --git a/hostsidetests/appsecurity/test-apps/SplitApp/feature/Android.mk b/hostsidetests/appsecurity/test-apps/SplitApp/feature/Android.mk
index 0a8a99a..29570cf 100644
--- a/hostsidetests/appsecurity/test-apps/SplitApp/feature/Android.mk
+++ b/hostsidetests/appsecurity/test-apps/SplitApp/feature/Android.mk
@@ -31,7 +31,7 @@
 LOCAL_MODULE_TAGS := tests
 
 # tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 LOCAL_USE_AAPT2 := true
 LOCAL_APK_LIBRARIES := CtsSplitApp
@@ -56,7 +56,7 @@
 LOCAL_SDK_VERSION := current
 LOCAL_MIN_SDK_VERSION := 4
 
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 LOCAL_ASSET_DIR := $(LOCAL_PATH)/assets
 
diff --git a/hostsidetests/appsecurity/test-apps/SplitApp/jni/Android.mk b/hostsidetests/appsecurity/test-apps/SplitApp/jni/Android.mk
index fbc7143..7fa6046 100644
--- a/hostsidetests/appsecurity/test-apps/SplitApp/jni/Android.mk
+++ b/hostsidetests/appsecurity/test-apps/SplitApp/jni/Android.mk
@@ -24,6 +24,6 @@
 LOCAL_LDLIBS += -llog
 
 # tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 include $(BUILD_SHARED_LIBRARY)
diff --git a/hostsidetests/appsecurity/test-apps/SplitApp/libs/arm64-v8a/Android.mk b/hostsidetests/appsecurity/test-apps/SplitApp/libs/arm64-v8a/Android.mk
index 5337057..cd88994 100644
--- a/hostsidetests/appsecurity/test-apps/SplitApp/libs/arm64-v8a/Android.mk
+++ b/hostsidetests/appsecurity/test-apps/SplitApp/libs/arm64-v8a/Android.mk
@@ -24,7 +24,7 @@
 LOCAL_JAVA_RESOURCE_DIRS := raw
 
 # tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 LOCAL_CERTIFICATE := cts/hostsidetests/appsecurity/certs/cts-testkey1
 LOCAL_AAPT_FLAGS := --version-code 100 --replace-version
diff --git a/hostsidetests/appsecurity/test-apps/SplitApp/libs/armeabi-v7a/Android.mk b/hostsidetests/appsecurity/test-apps/SplitApp/libs/armeabi-v7a/Android.mk
index 7fceede..954e6de 100644
--- a/hostsidetests/appsecurity/test-apps/SplitApp/libs/armeabi-v7a/Android.mk
+++ b/hostsidetests/appsecurity/test-apps/SplitApp/libs/armeabi-v7a/Android.mk
@@ -24,7 +24,7 @@
 LOCAL_JAVA_RESOURCE_DIRS := raw
 
 # tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 LOCAL_CERTIFICATE := cts/hostsidetests/appsecurity/certs/cts-testkey1
 LOCAL_AAPT_FLAGS := --version-code 100 --replace-version
diff --git a/hostsidetests/appsecurity/test-apps/SplitApp/libs/armeabi/Android.mk b/hostsidetests/appsecurity/test-apps/SplitApp/libs/armeabi/Android.mk
index 9149930..01767bb 100644
--- a/hostsidetests/appsecurity/test-apps/SplitApp/libs/armeabi/Android.mk
+++ b/hostsidetests/appsecurity/test-apps/SplitApp/libs/armeabi/Android.mk
@@ -24,7 +24,7 @@
 LOCAL_JAVA_RESOURCE_DIRS := raw
 
 # tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 LOCAL_CERTIFICATE := cts/hostsidetests/appsecurity/certs/cts-testkey1
 LOCAL_AAPT_FLAGS := --version-code 100 --replace-version
diff --git a/hostsidetests/appsecurity/test-apps/SplitApp/libs/mips/Android.mk b/hostsidetests/appsecurity/test-apps/SplitApp/libs/mips/Android.mk
index 95d02d0..ffb5109 100644
--- a/hostsidetests/appsecurity/test-apps/SplitApp/libs/mips/Android.mk
+++ b/hostsidetests/appsecurity/test-apps/SplitApp/libs/mips/Android.mk
@@ -24,7 +24,7 @@
 LOCAL_JAVA_RESOURCE_DIRS := raw
 
 # tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 LOCAL_CERTIFICATE := cts/hostsidetests/appsecurity/certs/cts-testkey1
 LOCAL_AAPT_FLAGS := --version-code 100 --replace-version
diff --git a/hostsidetests/appsecurity/test-apps/SplitApp/libs/mips64/Android.mk b/hostsidetests/appsecurity/test-apps/SplitApp/libs/mips64/Android.mk
index ad10be0..d364d96 100644
--- a/hostsidetests/appsecurity/test-apps/SplitApp/libs/mips64/Android.mk
+++ b/hostsidetests/appsecurity/test-apps/SplitApp/libs/mips64/Android.mk
@@ -24,7 +24,7 @@
 LOCAL_JAVA_RESOURCE_DIRS := raw
 
 # tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 LOCAL_CERTIFICATE := cts/hostsidetests/appsecurity/certs/cts-testkey1
 LOCAL_AAPT_FLAGS := --version-code 100 --replace-version
diff --git a/hostsidetests/appsecurity/test-apps/SplitApp/libs/x86/Android.mk b/hostsidetests/appsecurity/test-apps/SplitApp/libs/x86/Android.mk
index f008564..9155ad4 100644
--- a/hostsidetests/appsecurity/test-apps/SplitApp/libs/x86/Android.mk
+++ b/hostsidetests/appsecurity/test-apps/SplitApp/libs/x86/Android.mk
@@ -24,7 +24,7 @@
 LOCAL_JAVA_RESOURCE_DIRS := raw
 
 # tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 LOCAL_CERTIFICATE := cts/hostsidetests/appsecurity/certs/cts-testkey1
 LOCAL_AAPT_FLAGS := --version-code 100 --replace-version
diff --git a/hostsidetests/appsecurity/test-apps/SplitApp/libs/x86_64/Android.mk b/hostsidetests/appsecurity/test-apps/SplitApp/libs/x86_64/Android.mk
index ded5b29..79b9726 100644
--- a/hostsidetests/appsecurity/test-apps/SplitApp/libs/x86_64/Android.mk
+++ b/hostsidetests/appsecurity/test-apps/SplitApp/libs/x86_64/Android.mk
@@ -24,7 +24,7 @@
 LOCAL_JAVA_RESOURCE_DIRS := raw
 
 # tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 LOCAL_CERTIFICATE := cts/hostsidetests/appsecurity/certs/cts-testkey1
 LOCAL_AAPT_FLAGS := --version-code 100 --replace-version
diff --git a/hostsidetests/appsecurity/test-apps/StorageApp/Android.bp b/hostsidetests/appsecurity/test-apps/StorageApp/Android.bp
index a110513..ae88857 100644
--- a/hostsidetests/appsecurity/test-apps/StorageApp/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/StorageApp/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     manifest: "AndroidManifestA.xml",
@@ -40,6 +41,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     manifest: "AndroidManifestB.xml",
diff --git a/hostsidetests/appsecurity/test-apps/StorageStatsApp/Android.bp b/hostsidetests/appsecurity/test-apps/StorageStatsApp/Android.bp
index 9017af5..b949f18 100644
--- a/hostsidetests/appsecurity/test-apps/StorageStatsApp/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/StorageStatsApp/Android.bp
@@ -28,6 +28,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     dex_preopt: {
diff --git a/hostsidetests/appsecurity/test-apps/TargetInstrumentationApp/Android.bp b/hostsidetests/appsecurity/test-apps/TargetInstrumentationApp/Android.bp
index 8085465..dd48f86 100644
--- a/hostsidetests/appsecurity/test-apps/TargetInstrumentationApp/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/TargetInstrumentationApp/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     // sign this app with different cert than CtsInstrumentationAppDiffCert
diff --git a/hostsidetests/appsecurity/test-apps/UseEmbeddedDexApp/Android.bp b/hostsidetests/appsecurity/test-apps/UseEmbeddedDexApp/Android.bp
index 4c605e1..2c84c59 100644
--- a/hostsidetests/appsecurity/test-apps/UseEmbeddedDexApp/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/UseEmbeddedDexApp/Android.bp
@@ -24,6 +24,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -38,6 +39,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -52,6 +54,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -70,6 +73,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -84,6 +88,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/appsecurity/test-apps/UsePermissionDiffCert/Android.bp b/hostsidetests/appsecurity/test-apps/UsePermissionDiffCert/Android.bp
index cbedea9..8334f32 100644
--- a/hostsidetests/appsecurity/test-apps/UsePermissionDiffCert/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/UsePermissionDiffCert/Android.bp
@@ -28,6 +28,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
         "sts",
     ],
diff --git a/hostsidetests/appsecurity/test-apps/UseProcessFailActivity/Android.bp b/hostsidetests/appsecurity/test-apps/UseProcessFailActivity/Android.bp
index 4b8d944..d1bf39e 100644
--- a/hostsidetests/appsecurity/test-apps/UseProcessFailActivity/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/UseProcessFailActivity/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     certificate: ":cts-testkey1",
diff --git a/hostsidetests/appsecurity/test-apps/UseProcessFailApplication/Android.bp b/hostsidetests/appsecurity/test-apps/UseProcessFailApplication/Android.bp
index 0a86b6b..11b81b2 100644
--- a/hostsidetests/appsecurity/test-apps/UseProcessFailApplication/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/UseProcessFailApplication/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     certificate: ":cts-testkey1",
diff --git a/hostsidetests/appsecurity/test-apps/UseProcessFailProvider/Android.bp b/hostsidetests/appsecurity/test-apps/UseProcessFailProvider/Android.bp
index 2969503..ba7328a 100644
--- a/hostsidetests/appsecurity/test-apps/UseProcessFailProvider/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/UseProcessFailProvider/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     certificate: ":cts-testkey1",
diff --git a/hostsidetests/appsecurity/test-apps/UseProcessFailReceiver/Android.bp b/hostsidetests/appsecurity/test-apps/UseProcessFailReceiver/Android.bp
index f5c1532..ae60cb7 100644
--- a/hostsidetests/appsecurity/test-apps/UseProcessFailReceiver/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/UseProcessFailReceiver/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     certificate: ":cts-testkey1",
diff --git a/hostsidetests/appsecurity/test-apps/UseProcessFailService/Android.bp b/hostsidetests/appsecurity/test-apps/UseProcessFailService/Android.bp
index 91765ae..2a309a9 100644
--- a/hostsidetests/appsecurity/test-apps/UseProcessFailService/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/UseProcessFailService/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     certificate: ":cts-testkey1",
diff --git a/hostsidetests/appsecurity/test-apps/UseProcessSuccess/Android.bp b/hostsidetests/appsecurity/test-apps/UseProcessSuccess/Android.bp
index b3c8a45..6b3e7de 100644
--- a/hostsidetests/appsecurity/test-apps/UseProcessSuccess/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/UseProcessSuccess/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     certificate: ":cts-testkey1",
diff --git a/hostsidetests/appsecurity/test-apps/V3SigningSchemeRotation/Android.bp b/hostsidetests/appsecurity/test-apps/V3SigningSchemeRotation/Android.bp
index 9de8251..5507715 100644
--- a/hostsidetests/appsecurity/test-apps/V3SigningSchemeRotation/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/V3SigningSchemeRotation/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
         "sts",
     ],
diff --git a/hostsidetests/appsecurity/test-apps/WriteExternalStorageApp/Android.bp b/hostsidetests/appsecurity/test-apps/WriteExternalStorageApp/Android.bp
index 660ab53..11f3fa1 100644
--- a/hostsidetests/appsecurity/test-apps/WriteExternalStorageApp/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/WriteExternalStorageApp/Android.bp
@@ -31,6 +31,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/appsecurity/test-apps/WriteExternalStorageApp2/Android.bp b/hostsidetests/appsecurity/test-apps/WriteExternalStorageApp2/Android.bp
index f45a3ff..e4bc752 100644
--- a/hostsidetests/appsecurity/test-apps/WriteExternalStorageApp2/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/WriteExternalStorageApp2/Android.bp
@@ -29,6 +29,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/appsecurity/test-apps/dummyime/Android.bp b/hostsidetests/appsecurity/test-apps/dummyime/Android.bp
index b356368..d12d67f 100644
--- a/hostsidetests/appsecurity/test-apps/dummyime/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/dummyime/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
         "mts",
     ],
@@ -33,4 +34,6 @@
     dex_preopt: {
         enabled: false,
     },
+    min_sdk_version: "29",
+    target_sdk_version: "29",
 }
diff --git a/hostsidetests/appsecurity/test-apps/dummyime/AndroidManifest.xml b/hostsidetests/appsecurity/test-apps/dummyime/AndroidManifest.xml
index ea88b38..2f71a4b 100644
--- a/hostsidetests/appsecurity/test-apps/dummyime/AndroidManifest.xml
+++ b/hostsidetests/appsecurity/test-apps/dummyime/AndroidManifest.xml
@@ -18,6 +18,7 @@
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
         package="com.android.cts.dummyime">
+    <uses-sdk android:minSdkVersion="29" android:targetSdkVersion="29" />
     <application android:label="Dummy IME">
         <service android:name=".CtsDummyIme"
                 android:permission="android.permission.BIND_INPUT_METHOD">
diff --git a/hostsidetests/appsecurity/test-apps/keysets/malBadKey/Android.bp b/hostsidetests/appsecurity/test-apps/keysets/malBadKey/Android.bp
index a7a89fd..ada5abe 100644
--- a/hostsidetests/appsecurity/test-apps/keysets/malBadKey/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/keysets/malBadKey/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/hostsidetests/appsecurity/test-apps/keysets/malNoDef/Android.bp b/hostsidetests/appsecurity/test-apps/keysets/malNoDef/Android.bp
index 77a7e8d..cba1470 100644
--- a/hostsidetests/appsecurity/test-apps/keysets/malNoDef/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/keysets/malNoDef/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/hostsidetests/appsecurity/test-apps/keysets/malOneDef/Android.bp b/hostsidetests/appsecurity/test-apps/keysets/malOneDef/Android.bp
index fed13ff..abea10f 100644
--- a/hostsidetests/appsecurity/test-apps/keysets/malOneDef/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/keysets/malOneDef/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/hostsidetests/appsecurity/test-apps/keysets/permDef/Android.bp b/hostsidetests/appsecurity/test-apps/keysets/permDef/Android.bp
index 1ca7814..cc1e730 100644
--- a/hostsidetests/appsecurity/test-apps/keysets/permDef/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/keysets/permDef/Android.bp
@@ -26,6 +26,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -44,6 +45,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/appsecurity/test-apps/keysets/permUse/Android.bp b/hostsidetests/appsecurity/test-apps/keysets/permUse/Android.bp
index 8171ac2..5fb06d1 100644
--- a/hostsidetests/appsecurity/test-apps/keysets/permUse/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/keysets/permUse/Android.bp
@@ -26,6 +26,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -44,6 +45,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/appsecurity/test-apps/keysets/testApp/Android.bp b/hostsidetests/appsecurity/test-apps/keysets/testApp/Android.bp
index 2ed9a96..8b70ab6 100644
--- a/hostsidetests/appsecurity/test-apps/keysets/testApp/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/keysets/testApp/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     srcs: ["src/**/*.java"],
diff --git a/hostsidetests/appsecurity/test-apps/keysets/uA/Android.bp b/hostsidetests/appsecurity/test-apps/keysets/uA/Android.bp
index c6d340e..4998228 100644
--- a/hostsidetests/appsecurity/test-apps/keysets/uA/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/keysets/uA/Android.bp
@@ -26,6 +26,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -44,6 +45,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -62,6 +64,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -81,6 +84,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/appsecurity/test-apps/keysets/uAB/Android.bp b/hostsidetests/appsecurity/test-apps/keysets/uAB/Android.bp
index f8c37af..132ef0f 100644
--- a/hostsidetests/appsecurity/test-apps/keysets/uAB/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/keysets/uAB/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/hostsidetests/appsecurity/test-apps/keysets/uAuB/Android.bp b/hostsidetests/appsecurity/test-apps/keysets/uAuB/Android.bp
index 5094978..ed709e3 100644
--- a/hostsidetests/appsecurity/test-apps/keysets/uAuB/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/keysets/uAuB/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/hostsidetests/appsecurity/test-apps/keysets/uB/Android.bp b/hostsidetests/appsecurity/test-apps/keysets/uB/Android.bp
index 3691f76..5d12f0e 100644
--- a/hostsidetests/appsecurity/test-apps/keysets/uB/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/keysets/uB/Android.bp
@@ -26,6 +26,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -44,6 +45,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -63,6 +65,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/appsecurity/test-apps/keysets/uBsharedUser/Android.bp b/hostsidetests/appsecurity/test-apps/keysets/uBsharedUser/Android.bp
index 9ad20b6..22a7f87 100644
--- a/hostsidetests/appsecurity/test-apps/keysets/uBsharedUser/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/keysets/uBsharedUser/Android.bp
@@ -26,6 +26,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -44,6 +45,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/appsecurity/test-apps/keysets/uEcA/Android.bp b/hostsidetests/appsecurity/test-apps/keysets/uEcA/Android.bp
index a6e731b..6bf7563 100644
--- a/hostsidetests/appsecurity/test-apps/keysets/uEcA/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/keysets/uEcA/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/hostsidetests/appsecurity/test-apps/keysets/uNone/Android.bp b/hostsidetests/appsecurity/test-apps/keysets/uNone/Android.bp
index 6941217..6b53d05 100644
--- a/hostsidetests/appsecurity/test-apps/keysets/uNone/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/keysets/uNone/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/hostsidetests/appsecurity/test-apps/rro/OverlayAll/Android.bp b/hostsidetests/appsecurity/test-apps/rro/OverlayAll/Android.bp
index 11dea0f..dea69fb 100644
--- a/hostsidetests/appsecurity/test-apps/rro/OverlayAll/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/rro/OverlayAll/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -36,6 +37,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -49,6 +51,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -62,6 +65,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/appsecurity/test-apps/rro/OverlayAndroid/Android.bp b/hostsidetests/appsecurity/test-apps/rro/OverlayAndroid/Android.bp
index 748949e..4148a56 100644
--- a/hostsidetests/appsecurity/test-apps/rro/OverlayAndroid/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/rro/OverlayAndroid/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/appsecurity/test-apps/rro/OverlayApp/Android.bp b/hostsidetests/appsecurity/test-apps/rro/OverlayApp/Android.bp
index c9a5584..4e34ffa 100644
--- a/hostsidetests/appsecurity/test-apps/rro/OverlayApp/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/rro/OverlayApp/Android.bp
@@ -26,6 +26,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/appsecurity/test-apps/rro/OverlayPolicyProduct/Android.bp b/hostsidetests/appsecurity/test-apps/rro/OverlayPolicyProduct/Android.bp
index 01c909a..8dfb565 100644
--- a/hostsidetests/appsecurity/test-apps/rro/OverlayPolicyProduct/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/rro/OverlayPolicyProduct/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/appsecurity/test-apps/rro/OverlayPolicySignatureDifferent/Android.bp b/hostsidetests/appsecurity/test-apps/rro/OverlayPolicySignatureDifferent/Android.bp
index ac6acc1..2c53ede 100644
--- a/hostsidetests/appsecurity/test-apps/rro/OverlayPolicySignatureDifferent/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/rro/OverlayPolicySignatureDifferent/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/appsecurity/test-apps/rro/OverlayPolicySystem/Android.bp b/hostsidetests/appsecurity/test-apps/rro/OverlayPolicySystem/Android.bp
index ed4f41b..5364ff6 100644
--- a/hostsidetests/appsecurity/test-apps/rro/OverlayPolicySystem/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/rro/OverlayPolicySystem/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/appsecurity/test-apps/rro/OverlayPolicyVendor/Android.bp b/hostsidetests/appsecurity/test-apps/rro/OverlayPolicyVendor/Android.bp
index 3e46df9..8b044f6 100644
--- a/hostsidetests/appsecurity/test-apps/rro/OverlayPolicyVendor/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/rro/OverlayPolicyVendor/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/appsecurity/test-apps/rro/OverlayTarget/Android.bp b/hostsidetests/appsecurity/test-apps/rro/OverlayTarget/Android.bp
index a906453..a4c12a3 100644
--- a/hostsidetests/appsecurity/test-apps/rro/OverlayTarget/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/rro/OverlayTarget/Android.bp
@@ -26,6 +26,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -41,6 +42,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/appsecurity/test-apps/tinyapp/Android.bp b/hostsidetests/appsecurity/test-apps/tinyapp/Android.bp
index 64aa2a5..dd78f19 100644
--- a/hostsidetests/appsecurity/test-apps/tinyapp/Android.bp
+++ b/hostsidetests/appsecurity/test-apps/tinyapp/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     srcs: ["src/**/*.java"],
diff --git a/hostsidetests/atrace/Android.bp b/hostsidetests/atrace/Android.bp
index 5e3cf77..09d9bca 100644
--- a/hostsidetests/atrace/Android.bp
+++ b/hostsidetests/atrace/Android.bp
@@ -26,6 +26,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/atrace/AtraceTestApp/Android.bp b/hostsidetests/atrace/AtraceTestApp/Android.bp
index 169ccbb..e018195 100644
--- a/hostsidetests/atrace/AtraceTestApp/Android.bp
+++ b/hostsidetests/atrace/AtraceTestApp/Android.bp
@@ -27,6 +27,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/backup/AllowBackup/BackupAllowedApp/Android.bp b/hostsidetests/backup/AllowBackup/BackupAllowedApp/Android.bp
index 1f7fb9a4..cafe920 100644
--- a/hostsidetests/backup/AllowBackup/BackupAllowedApp/Android.bp
+++ b/hostsidetests/backup/AllowBackup/BackupAllowedApp/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/hostsidetests/backup/AllowBackup/BackupNotAllowedApp/Android.bp b/hostsidetests/backup/AllowBackup/BackupNotAllowedApp/Android.bp
index a8e2fa3..3b3fea3 100644
--- a/hostsidetests/backup/AllowBackup/BackupNotAllowedApp/Android.bp
+++ b/hostsidetests/backup/AllowBackup/BackupNotAllowedApp/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/hostsidetests/backup/Android.bp b/hostsidetests/backup/Android.bp
index 98a36e0..86fc3e9 100644
--- a/hostsidetests/backup/Android.bp
+++ b/hostsidetests/backup/Android.bp
@@ -20,6 +20,7 @@
         "arcts",
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     libs: [
diff --git a/hostsidetests/backup/AutoRestoreApp/Android.bp b/hostsidetests/backup/AutoRestoreApp/Android.bp
index 227fe13..4b6a823 100644
--- a/hostsidetests/backup/AutoRestoreApp/Android.bp
+++ b/hostsidetests/backup/AutoRestoreApp/Android.bp
@@ -28,6 +28,7 @@
         "arcts",
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     platform_apis: true,
diff --git a/hostsidetests/backup/BackupTransportApp/Android.bp b/hostsidetests/backup/BackupTransportApp/Android.bp
index 240a460..930f113 100644
--- a/hostsidetests/backup/BackupTransportApp/Android.bp
+++ b/hostsidetests/backup/BackupTransportApp/Android.bp
@@ -27,6 +27,7 @@
         "arcts",
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "system_current",
diff --git a/hostsidetests/backup/FullBackupOnly/FullBackupOnlyFalseNoAgentApp/Android.bp b/hostsidetests/backup/FullBackupOnly/FullBackupOnlyFalseNoAgentApp/Android.bp
index f14e5d0..645ff86 100644
--- a/hostsidetests/backup/FullBackupOnly/FullBackupOnlyFalseNoAgentApp/Android.bp
+++ b/hostsidetests/backup/FullBackupOnly/FullBackupOnlyFalseNoAgentApp/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/hostsidetests/backup/FullBackupOnly/FullBackupOnlyFalseWithAgentApp/Android.bp b/hostsidetests/backup/FullBackupOnly/FullBackupOnlyFalseWithAgentApp/Android.bp
index 01e25ef..0cbb7d5 100644
--- a/hostsidetests/backup/FullBackupOnly/FullBackupOnlyFalseWithAgentApp/Android.bp
+++ b/hostsidetests/backup/FullBackupOnly/FullBackupOnlyFalseWithAgentApp/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/hostsidetests/backup/FullBackupOnly/FullBackupOnlyTrueWithAgentApp/Android.bp b/hostsidetests/backup/FullBackupOnly/FullBackupOnlyTrueWithAgentApp/Android.bp
index 8fb4b4b..5094b1a 100644
--- a/hostsidetests/backup/FullBackupOnly/FullBackupOnlyTrueWithAgentApp/Android.bp
+++ b/hostsidetests/backup/FullBackupOnly/FullBackupOnlyTrueWithAgentApp/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/hostsidetests/backup/KeyValueApp/Android.bp b/hostsidetests/backup/KeyValueApp/Android.bp
index 7a48b75..1081acd 100644
--- a/hostsidetests/backup/KeyValueApp/Android.bp
+++ b/hostsidetests/backup/KeyValueApp/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     platform_apis: true,
diff --git a/hostsidetests/backup/OtherSoundsSettingsApp/Android.bp b/hostsidetests/backup/OtherSoundsSettingsApp/Android.bp
index e34b256..8bcf99f 100644
--- a/hostsidetests/backup/OtherSoundsSettingsApp/Android.bp
+++ b/hostsidetests/backup/OtherSoundsSettingsApp/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     // Uncomment when b/78787392 is fixed
diff --git a/hostsidetests/backup/PreservedSettingsApp/Android.bp b/hostsidetests/backup/PreservedSettingsApp/Android.bp
index 9a4de9e..780864a 100644
--- a/hostsidetests/backup/PreservedSettingsApp/Android.bp
+++ b/hostsidetests/backup/PreservedSettingsApp/Android.bp
@@ -26,6 +26,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
     ],
     // Uncomment when b/78787392 is fixed
     // sdk_version: "system_test_current",
diff --git a/hostsidetests/backup/ProfileFullBackupApp/Android.bp b/hostsidetests/backup/ProfileFullBackupApp/Android.bp
index c5d7dd1..a1c81f1 100644
--- a/hostsidetests/backup/ProfileFullBackupApp/Android.bp
+++ b/hostsidetests/backup/ProfileFullBackupApp/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/hostsidetests/backup/ProfileKeyValueApp/Android.bp b/hostsidetests/backup/ProfileKeyValueApp/Android.bp
index df6b009..a7b6d59 100644
--- a/hostsidetests/backup/ProfileKeyValueApp/Android.bp
+++ b/hostsidetests/backup/ProfileKeyValueApp/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/hostsidetests/backup/ProfileSerialNumberApp/Android.bp b/hostsidetests/backup/ProfileSerialNumberApp/Android.bp
index d8713cc..112ccb1 100644
--- a/hostsidetests/backup/ProfileSerialNumberApp/Android.bp
+++ b/hostsidetests/backup/ProfileSerialNumberApp/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
     ],
     // Uncomment when b/78787392 is fixed
     // sdk_version: "system_test_current",
diff --git a/hostsidetests/backup/RestoreAnyVersion/NewVersionApp/Android.bp b/hostsidetests/backup/RestoreAnyVersion/NewVersionApp/Android.bp
index 5f536c3..14e49d4 100644
--- a/hostsidetests/backup/RestoreAnyVersion/NewVersionApp/Android.bp
+++ b/hostsidetests/backup/RestoreAnyVersion/NewVersionApp/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/hostsidetests/backup/RestoreAnyVersion/NoRestoreAnyVersionApp/Android.bp b/hostsidetests/backup/RestoreAnyVersion/NoRestoreAnyVersionApp/Android.bp
index 587ffb9..34291ae 100644
--- a/hostsidetests/backup/RestoreAnyVersion/NoRestoreAnyVersionApp/Android.bp
+++ b/hostsidetests/backup/RestoreAnyVersion/NoRestoreAnyVersionApp/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/hostsidetests/backup/RestoreAnyVersion/RestoreAnyVersionApp/Android.bp b/hostsidetests/backup/RestoreAnyVersion/RestoreAnyVersionApp/Android.bp
index c7c63fe..65e2eae 100644
--- a/hostsidetests/backup/RestoreAnyVersion/RestoreAnyVersionApp/Android.bp
+++ b/hostsidetests/backup/RestoreAnyVersion/RestoreAnyVersionApp/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/hostsidetests/backup/RestoreSessionTest/Android.bp b/hostsidetests/backup/RestoreSessionTest/Android.bp
index a3ac883..80b57af 100644
--- a/hostsidetests/backup/RestoreSessionTest/Android.bp
+++ b/hostsidetests/backup/RestoreSessionTest/Android.bp
@@ -27,6 +27,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "system_current",
diff --git a/hostsidetests/backup/SharedPreferencesRestoreApp/Android.bp b/hostsidetests/backup/SharedPreferencesRestoreApp/Android.bp
index 24131cc..0226e10 100644
--- a/hostsidetests/backup/SharedPreferencesRestoreApp/Android.bp
+++ b/hostsidetests/backup/SharedPreferencesRestoreApp/Android.bp
@@ -24,6 +24,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
     ],
     sdk_version: "current",
 }
diff --git a/hostsidetests/backup/SuccessNotificationApp/Android.bp b/hostsidetests/backup/SuccessNotificationApp/Android.bp
index f4ff7e0..b897c58 100644
--- a/hostsidetests/backup/SuccessNotificationApp/Android.bp
+++ b/hostsidetests/backup/SuccessNotificationApp/Android.bp
@@ -24,6 +24,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
     ],
     sdk_version: "current",
 }
diff --git a/hostsidetests/backup/SyncAdapterSettingsApp/Android.bp b/hostsidetests/backup/SyncAdapterSettingsApp/Android.bp
index 290c350..c6c1294 100644
--- a/hostsidetests/backup/SyncAdapterSettingsApp/Android.bp
+++ b/hostsidetests/backup/SyncAdapterSettingsApp/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/hostsidetests/backup/fullbackupapp/Android.bp b/hostsidetests/backup/fullbackupapp/Android.bp
index a1926d0..b554aee 100644
--- a/hostsidetests/backup/fullbackupapp/Android.bp
+++ b/hostsidetests/backup/fullbackupapp/Android.bp
@@ -25,6 +25,7 @@
         "arcts",
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/hostsidetests/backup/includeexcludeapp/Android.bp b/hostsidetests/backup/includeexcludeapp/Android.bp
index 5093888..e494d79 100644
--- a/hostsidetests/backup/includeexcludeapp/Android.bp
+++ b/hostsidetests/backup/includeexcludeapp/Android.bp
@@ -25,6 +25,7 @@
         "arcts",
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/hostsidetests/backup/restoresessionapp1/Android.bp b/hostsidetests/backup/restoresessionapp1/Android.bp
index 2eb5d0e..2aa678a 100644
--- a/hostsidetests/backup/restoresessionapp1/Android.bp
+++ b/hostsidetests/backup/restoresessionapp1/Android.bp
@@ -27,6 +27,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
     ],
     sdk_version: "system_current",
 }
diff --git a/hostsidetests/backup/restoresessionapp2/Android.bp b/hostsidetests/backup/restoresessionapp2/Android.bp
index e389054..c44b77b 100644
--- a/hostsidetests/backup/restoresessionapp2/Android.bp
+++ b/hostsidetests/backup/restoresessionapp2/Android.bp
@@ -27,6 +27,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
     ],
     sdk_version: "system_current",
 }
diff --git a/hostsidetests/backup/restoresessionapp3/Android.bp b/hostsidetests/backup/restoresessionapp3/Android.bp
index 1451823..97501eb 100644
--- a/hostsidetests/backup/restoresessionapp3/Android.bp
+++ b/hostsidetests/backup/restoresessionapp3/Android.bp
@@ -27,6 +27,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
     ],
     sdk_version: "system_current",
 }
diff --git a/hostsidetests/blobstore/Android.bp b/hostsidetests/blobstore/Android.bp
index 2baec7f..b4c8600 100644
--- a/hostsidetests/blobstore/Android.bp
+++ b/hostsidetests/blobstore/Android.bp
@@ -26,6 +26,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests"
     ]
 }
@@ -47,6 +48,7 @@
   test_suites: [
     "cts",
     "vts",
+        "vts10",
     "general-tests"
   ]
 }
diff --git a/hostsidetests/blobstore/test-apps/BlobStoreHostTestHelper/src/com/android/cts/device/blob/BaseBlobStoreDeviceTest.java b/hostsidetests/blobstore/test-apps/BlobStoreHostTestHelper/src/com/android/cts/device/blob/BaseBlobStoreDeviceTest.java
new file mode 100644
index 0000000..81cd918
--- /dev/null
+++ b/hostsidetests/blobstore/test-apps/BlobStoreHostTestHelper/src/com/android/cts/device/blob/BaseBlobStoreDeviceTest.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.cts.device.blob;
+
+import android.app.Instrumentation;
+import android.app.blob.BlobHandle;
+import android.app.blob.BlobStoreManager;
+import android.content.Context;
+
+import androidx.test.platform.app.InstrumentationRegistry;
+
+import org.junit.Before;
+
+public class BaseBlobStoreDeviceTest {
+
+    protected static final String KEY_SESSION_ID = "session";
+
+    protected static final String KEY_DIGEST = "digest";
+    protected static final String KEY_LABEL = "label";
+    protected static final String KEY_EXPIRY = "expiry";
+    protected static final String KEY_TAG = "tag";
+
+    protected static final String KEY_ALLOW_PUBLIC = "public";
+
+    protected static final long PARTIAL_FILE_LENGTH_BYTES = 2002;
+    protected static final long TIMEOUT_WAIT_FOR_IDLE_MS = 2_000;
+    protected static final long TIMEOUT_COMMIT_CALLBACK_MS = 10_000;
+
+    protected Context mContext;
+    protected Instrumentation mInstrumentation;
+    protected BlobStoreManager mBlobStoreManager;
+
+    @Before
+    public void setUp() {
+        mInstrumentation = InstrumentationRegistry.getInstrumentation();
+        mContext = mInstrumentation.getContext();
+        mBlobStoreManager = (BlobStoreManager) mContext.getSystemService(
+                Context.BLOB_STORE_SERVICE);
+    }
+
+    protected long createSession(BlobHandle blobHandle) throws Exception {
+        final long sessionId = mBlobStoreManager.createSession(blobHandle);
+        return sessionId;
+    }
+}
diff --git a/hostsidetests/blobstore/test-apps/BlobStoreHostTestHelper/src/com/android/cts/device/blob/DataCleanupTest.java b/hostsidetests/blobstore/test-apps/BlobStoreHostTestHelper/src/com/android/cts/device/blob/DataCleanupTest.java
index 72b907e..bc248eb 100644
--- a/hostsidetests/blobstore/test-apps/BlobStoreHostTestHelper/src/com/android/cts/device/blob/DataCleanupTest.java
+++ b/hostsidetests/blobstore/test-apps/BlobStoreHostTestHelper/src/com/android/cts/device/blob/DataCleanupTest.java
@@ -20,16 +20,13 @@
 import static org.testng.Assert.assertThrows;
 import static org.testng.Assert.fail;
 
-import android.app.Instrumentation;
 import android.app.blob.BlobHandle;
 import android.app.blob.BlobStoreManager;
-import android.content.Context;
 import android.os.Bundle;
 import android.os.ParcelFileDescriptor;
 
 import com.android.utils.blob.DummyBlobData;
 
-import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -41,31 +38,7 @@
 import androidx.test.platform.app.InstrumentationRegistry;
 
 @RunWith(AndroidJUnit4.class)
-public class DataCleanupTest {
-    private static final long TIMEOUT_COMMIT_CALLBACK_MS = 5_000;
-
-    private static final long PARTIAL_FILE_LENGTH_BYTES = 2002;
-
-    private static final String KEY_SESSION_ID = "session";
-
-    private static final String KEY_DIGEST = "digest";
-    private static final String KEY_EXPIRY = "expiry";
-    private static final String KEY_LABEL = "label";
-    private static final String KEY_TAG = "tag";
-
-    private static final String KEY_ALLOW_PUBLIC = "public";
-
-    private Context mContext;
-    private Instrumentation mInstrumentation;
-    private BlobStoreManager mBlobStoreManager;
-
-    @Before
-    public void setUp() {
-        mInstrumentation = InstrumentationRegistry.getInstrumentation();
-        mContext = mInstrumentation.getContext();
-        mBlobStoreManager = (BlobStoreManager) mContext.getSystemService(
-                Context.BLOB_STORE_SERVICE);
-    }
+public class DataCleanupTest extends BaseBlobStoreDeviceTest {
 
     @Test
     public void testCreateSession() throws Exception {
@@ -143,11 +116,6 @@
                 () -> mBlobStoreManager.openBlob(blobHandle));
     }
 
-    private long createSession(BlobHandle blobHandle) throws Exception {
-        final long sessionId = mBlobStoreManager.createSession(blobHandle);
-        return sessionId;
-    }
-
     private void addSessionIdToResults(long sessionId) {
         final Bundle results = new Bundle();
         results.putLong(KEY_SESSION_ID, sessionId);
diff --git a/hostsidetests/blobstore/test-apps/BlobStoreHostTestHelper/src/com/android/cts/device/blob/DataPersistenceTest.java b/hostsidetests/blobstore/test-apps/BlobStoreHostTestHelper/src/com/android/cts/device/blob/DataPersistenceTest.java
index 72c6847..5759e93 100644
--- a/hostsidetests/blobstore/test-apps/BlobStoreHostTestHelper/src/com/android/cts/device/blob/DataPersistenceTest.java
+++ b/hostsidetests/blobstore/test-apps/BlobStoreHostTestHelper/src/com/android/cts/device/blob/DataPersistenceTest.java
@@ -26,7 +26,6 @@
 import com.android.compatibility.common.util.ShellIdentityUtils;
 import com.android.utils.blob.DummyBlobData;
 
-import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -38,27 +37,7 @@
 import androidx.test.platform.app.InstrumentationRegistry;
 
 @RunWith(AndroidJUnit4.class)
-public class DataPersistenceTest {
-
-    private static final String KEY_SESSION_ID = "id";
-    private static final String KEY_DIGEST = "digest";
-    private static final String KEY_LABEL = "label";
-    private static final String KEY_EXPIRY = "expiry";
-    private static final String KEY_TAG = "tag";
-
-    private static final long PARTIAL_FILE_LENGTH_BYTES = 2002;
-    private static final long TIMEOUT_WAIT_FOR_IDLE_MS = 2_000;
-    private static final long TIMEOUT_COMMIT_CALLBACK_MS = 5_000;
-
-    private Context mContext;
-    private BlobStoreManager mBlobStoreManager;
-
-    @Before
-    public void setUp() {
-        mContext = InstrumentationRegistry.getInstrumentation().getContext();
-        mBlobStoreManager = (BlobStoreManager) mContext.getSystemService(
-                Context.BLOB_STORE_SERVICE);
-    }
+public class DataPersistenceTest extends BaseBlobStoreDeviceTest {
 
     @Test
     public void testCreateSession() throws Exception {
@@ -114,11 +93,6 @@
         }
     }
 
-    private long createSession(BlobHandle blobHandle) throws Exception {
-        final long sessionId = mBlobStoreManager.createSession(blobHandle);
-        return sessionId;
-    }
-
     private void writeSessionIdToDisk(long sessionId) {
         final SharedPreferences sharedPref = getSharedPreferences();
         assertThat(sharedPref.edit().putLong(KEY_SESSION_ID, sessionId).commit())
diff --git a/hostsidetests/blobstore/test-apps/BlobStoreHostTestHelper/src/com/android/cts/device/blob/InstantAppAccessTest.java b/hostsidetests/blobstore/test-apps/BlobStoreHostTestHelper/src/com/android/cts/device/blob/InstantAppAccessTest.java
index 4d7fd48..480a45c 100644
--- a/hostsidetests/blobstore/test-apps/BlobStoreHostTestHelper/src/com/android/cts/device/blob/InstantAppAccessTest.java
+++ b/hostsidetests/blobstore/test-apps/BlobStoreHostTestHelper/src/com/android/cts/device/blob/InstantAppAccessTest.java
@@ -27,11 +27,10 @@
 import androidx.test.platform.app.InstrumentationRegistry;
 
 @RunWith(AndroidJUnit4.class)
-public class InstantAppAccessTest {
+public class InstantAppAccessTest extends BaseBlobStoreDeviceTest {
     @Test
     public void testInstantAppAccess() {
-        final Context context = InstrumentationRegistry.getInstrumentation().getContext();
-        assertThat(context.getPackageManager().isInstantApp()).isTrue();
-        assertThat(context.getSystemService(Context.BLOB_STORE_SERVICE)).isNull();
+        assertThat(mContext.getPackageManager().isInstantApp()).isTrue();
+        assertThat(mContext.getSystemService(Context.BLOB_STORE_SERVICE)).isNull();
     }
 }
diff --git a/hostsidetests/bootstats/Android.bp b/hostsidetests/bootstats/Android.bp
index 07f9c84..a302c1b 100644
--- a/hostsidetests/bootstats/Android.bp
+++ b/hostsidetests/bootstats/Android.bp
@@ -28,6 +28,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/classloaders/splits/Android.bp b/hostsidetests/classloaders/splits/Android.bp
index 592bbc3..78d60c9 100644
--- a/hostsidetests/classloaders/splits/Android.bp
+++ b/hostsidetests/classloaders/splits/Android.bp
@@ -24,6 +24,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     required: [
diff --git a/hostsidetests/classloaders/useslibrary/Android.bp b/hostsidetests/classloaders/useslibrary/Android.bp
index 970f93b..31de742 100644
--- a/hostsidetests/classloaders/useslibrary/Android.bp
+++ b/hostsidetests/classloaders/useslibrary/Android.bp
@@ -24,6 +24,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     required: [ "CtsUsesLibraryApp" ],
diff --git a/hostsidetests/compilation/Android.bp b/hostsidetests/compilation/Android.bp
index 4402ed6..d668c62 100644
--- a/hostsidetests/compilation/Android.bp
+++ b/hostsidetests/compilation/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     libs: [
diff --git a/hostsidetests/compilation/app/Android.bp b/hostsidetests/compilation/app/Android.bp
index 770baea..360125b 100644
--- a/hostsidetests/compilation/app/Android.bp
+++ b/hostsidetests/compilation/app/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/content/Android.bp b/hostsidetests/content/Android.bp
index 4478035..5ef8eb8 100644
--- a/hostsidetests/content/Android.bp
+++ b/hostsidetests/content/Android.bp
@@ -27,6 +27,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/content/test-apps/ContextCrossProfileApps/ContextCrossProfileApp/Android.bp b/hostsidetests/content/test-apps/ContextCrossProfileApps/ContextCrossProfileApp/Android.bp
index 06d5b40..275e314 100644
--- a/hostsidetests/content/test-apps/ContextCrossProfileApps/ContextCrossProfileApp/Android.bp
+++ b/hostsidetests/content/test-apps/ContextCrossProfileApps/ContextCrossProfileApp/Android.bp
@@ -24,6 +24,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/hostsidetests/content/test-apps/ContextCrossProfileApps/ContextCrossProfileTestServiceApp/Android.bp b/hostsidetests/content/test-apps/ContextCrossProfileApps/ContextCrossProfileTestServiceApp/Android.bp
index 7b93470..ced0a19 100644
--- a/hostsidetests/content/test-apps/ContextCrossProfileApps/ContextCrossProfileTestServiceApp/Android.bp
+++ b/hostsidetests/content/test-apps/ContextCrossProfileApps/ContextCrossProfileTestServiceApp/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/hostsidetests/content/test-apps/CtsSyncInvalidAccountAuthorityTestCases/Android.bp b/hostsidetests/content/test-apps/CtsSyncInvalidAccountAuthorityTestCases/Android.bp
index 5a91da1..2412639 100644
--- a/hostsidetests/content/test-apps/CtsSyncInvalidAccountAuthorityTestCases/Android.bp
+++ b/hostsidetests/content/test-apps/CtsSyncInvalidAccountAuthorityTestCases/Android.bp
@@ -27,6 +27,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     optimize: {
diff --git a/hostsidetests/cpptools/Android.bp b/hostsidetests/cpptools/Android.bp
index 208e734..9c07d7b 100644
--- a/hostsidetests/cpptools/Android.bp
+++ b/hostsidetests/cpptools/Android.bp
@@ -24,6 +24,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/cpptools/test-apps/BasicApp/Android.bp b/hostsidetests/cpptools/test-apps/BasicApp/Android.bp
index f96f5a5..fced0ac 100644
--- a/hostsidetests/cpptools/test-apps/BasicApp/Android.bp
+++ b/hostsidetests/cpptools/test-apps/BasicApp/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/hostsidetests/cpptools/test-apps/ConnectorNativeProgram/Android.bp b/hostsidetests/cpptools/test-apps/ConnectorNativeProgram/Android.bp
index 832725c..bdbf984 100644
--- a/hostsidetests/cpptools/test-apps/ConnectorNativeProgram/Android.bp
+++ b/hostsidetests/cpptools/test-apps/ConnectorNativeProgram/Android.bp
@@ -32,6 +32,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/cpptools/test-apps/DomainSocketApp/Android.bp b/hostsidetests/cpptools/test-apps/DomainSocketApp/Android.bp
index d4dab8b..3f0e1a1 100644
--- a/hostsidetests/cpptools/test-apps/DomainSocketApp/Android.bp
+++ b/hostsidetests/cpptools/test-apps/DomainSocketApp/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/deviceidle/Android.bp b/hostsidetests/deviceidle/Android.bp
index d7bb076..f49874b 100644
--- a/hostsidetests/deviceidle/Android.bp
+++ b/hostsidetests/deviceidle/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/devicepolicy/Android.bp b/hostsidetests/devicepolicy/Android.bp
index 4eef832..c44e795 100644
--- a/hostsidetests/devicepolicy/Android.bp
+++ b/hostsidetests/devicepolicy/Android.bp
@@ -30,6 +30,7 @@
         "cts",
         "general-tests",
         "vts",
+        "vts10",
     ],
     java_resource_dirs: ["res"],
     data: [":current-api-xml"],
diff --git a/hostsidetests/devicepolicy/app/AccountCheck/Android.bp b/hostsidetests/devicepolicy/app/AccountCheck/Android.bp
index e6edff6..97abf71 100644
--- a/hostsidetests/devicepolicy/app/AccountCheck/Android.bp
+++ b/hostsidetests/devicepolicy/app/AccountCheck/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     srcs: ["src-owner/**/*.java"],
@@ -40,6 +41,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     srcs: ["src-owner/**/*.java"],
@@ -61,6 +63,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     srcs: ["src-owner/**/*.java"],
diff --git a/hostsidetests/devicepolicy/app/AccountCheck/Auth/Android.bp b/hostsidetests/devicepolicy/app/AccountCheck/Auth/Android.bp
index 9e9035c..0e71200 100644
--- a/hostsidetests/devicepolicy/app/AccountCheck/Auth/Android.bp
+++ b/hostsidetests/devicepolicy/app/AccountCheck/Auth/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     srcs: ["src/**/*.java"],
diff --git a/hostsidetests/devicepolicy/app/AccountCheck/Tester/Android.bp b/hostsidetests/devicepolicy/app/AccountCheck/Tester/Android.bp
index 7ac443c..41f30dc 100644
--- a/hostsidetests/devicepolicy/app/AccountCheck/Tester/Android.bp
+++ b/hostsidetests/devicepolicy/app/AccountCheck/Tester/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     srcs: ["src/**/*.java"],
diff --git a/hostsidetests/devicepolicy/app/AccountManagement/Android.bp b/hostsidetests/devicepolicy/app/AccountManagement/Android.bp
index d5c59dd..6938ea4 100644
--- a/hostsidetests/devicepolicy/app/AccountManagement/Android.bp
+++ b/hostsidetests/devicepolicy/app/AccountManagement/Android.bp
@@ -20,6 +20,7 @@
         "arcts",
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     srcs: ["src/**/*.java"],
diff --git a/hostsidetests/devicepolicy/app/AppRestrictionsTargetApp/Android.bp b/hostsidetests/devicepolicy/app/AppRestrictionsTargetApp/Android.bp
index b756842..e5b4e19 100644
--- a/hostsidetests/devicepolicy/app/AppRestrictionsTargetApp/Android.bp
+++ b/hostsidetests/devicepolicy/app/AppRestrictionsTargetApp/Android.bp
@@ -23,6 +23,7 @@
         "arcts",
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/devicepolicy/app/Assistant/Android.bp b/hostsidetests/devicepolicy/app/Assistant/Android.bp
index 91a7b79..0a58e3b 100644
--- a/hostsidetests/devicepolicy/app/Assistant/Android.bp
+++ b/hostsidetests/devicepolicy/app/Assistant/Android.bp
@@ -20,9 +20,11 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     static_libs: [
diff --git a/hostsidetests/devicepolicy/app/AutofillApp/Android.bp b/hostsidetests/devicepolicy/app/AutofillApp/Android.bp
index acf343b..fb41d1b 100644
--- a/hostsidetests/devicepolicy/app/AutofillApp/Android.bp
+++ b/hostsidetests/devicepolicy/app/AutofillApp/Android.bp
@@ -21,6 +21,7 @@
         "arcts",
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/hostsidetests/devicepolicy/app/CertInstaller/Android.bp b/hostsidetests/devicepolicy/app/CertInstaller/Android.bp
index a3ae108..b0c65da 100644
--- a/hostsidetests/devicepolicy/app/CertInstaller/Android.bp
+++ b/hostsidetests/devicepolicy/app/CertInstaller/Android.bp
@@ -34,6 +34,7 @@
         "arcts",
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/devicepolicy/app/ContactDirectoryProvider/Android.bp b/hostsidetests/devicepolicy/app/ContactDirectoryProvider/Android.bp
index 9387f0e..7064bd0 100644
--- a/hostsidetests/devicepolicy/app/ContactDirectoryProvider/Android.bp
+++ b/hostsidetests/devicepolicy/app/ContactDirectoryProvider/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/hostsidetests/devicepolicy/app/ContentCaptureApp/Android.bp b/hostsidetests/devicepolicy/app/ContentCaptureApp/Android.bp
index 3f78f9d..9f76ebd 100644
--- a/hostsidetests/devicepolicy/app/ContentCaptureApp/Android.bp
+++ b/hostsidetests/devicepolicy/app/ContentCaptureApp/Android.bp
@@ -21,6 +21,7 @@
         "arcts",
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "system_current",
diff --git a/hostsidetests/devicepolicy/app/ContentCaptureService/Android.bp b/hostsidetests/devicepolicy/app/ContentCaptureService/Android.bp
index 5c98da2..12d00e6 100644
--- a/hostsidetests/devicepolicy/app/ContentCaptureService/Android.bp
+++ b/hostsidetests/devicepolicy/app/ContentCaptureService/Android.bp
@@ -21,6 +21,7 @@
         "arcts",
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "system_current",
diff --git a/hostsidetests/devicepolicy/app/ContentSuggestionsApp/Android.bp b/hostsidetests/devicepolicy/app/ContentSuggestionsApp/Android.bp
index 2422d71..5d6b0d9 100644
--- a/hostsidetests/devicepolicy/app/ContentSuggestionsApp/Android.bp
+++ b/hostsidetests/devicepolicy/app/ContentSuggestionsApp/Android.bp
@@ -21,6 +21,7 @@
         "arcts",
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "system_current",
diff --git a/hostsidetests/devicepolicy/app/CorpOwnedManagedProfile/Android.bp b/hostsidetests/devicepolicy/app/CorpOwnedManagedProfile/Android.bp
index 5673db0..8dc75d5 100644
--- a/hostsidetests/devicepolicy/app/CorpOwnedManagedProfile/Android.bp
+++ b/hostsidetests/devicepolicy/app/CorpOwnedManagedProfile/Android.bp
@@ -42,6 +42,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -71,6 +72,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     aaptflags: [
diff --git a/hostsidetests/devicepolicy/app/CrossProfileTestApps/CrossProfileAppsTest/Android.bp b/hostsidetests/devicepolicy/app/CrossProfileTestApps/CrossProfileAppsTest/Android.bp
index 94b6232..19c2bf2 100644
--- a/hostsidetests/devicepolicy/app/CrossProfileTestApps/CrossProfileAppsTest/Android.bp
+++ b/hostsidetests/devicepolicy/app/CrossProfileTestApps/CrossProfileAppsTest/Android.bp
@@ -30,6 +30,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/devicepolicy/app/CrossProfileTestApps/CrossProfileAppsTest/src/com/android/cts/crossprofileappstest/CrossProfileAppsPermissionToInteractTest.java b/hostsidetests/devicepolicy/app/CrossProfileTestApps/CrossProfileAppsTest/src/com/android/cts/crossprofileappstest/CrossProfileAppsPermissionToInteractTest.java
index 485aec8..1b44d36 100644
--- a/hostsidetests/devicepolicy/app/CrossProfileTestApps/CrossProfileAppsTest/src/com/android/cts/crossprofileappstest/CrossProfileAppsPermissionToInteractTest.java
+++ b/hostsidetests/devicepolicy/app/CrossProfileTestApps/CrossProfileAppsTest/src/com/android/cts/crossprofileappstest/CrossProfileAppsPermissionToInteractTest.java
@@ -18,6 +18,8 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.junit.Assert.fail;
+
 import android.app.AppOpsManager;
 import android.content.Context;
 import android.content.Intent;
@@ -129,10 +131,13 @@
     }
 
     @Test
-    public void testCreateRequestInteractAcrossProfilesIntent_canNotRequestInteraction_returnsNull() {
-        Intent intent = mCrossProfileApps.createRequestInteractAcrossProfilesIntent();
-
-        assertThat(intent).isNull();
+    public void testCreateRequestInteractAcrossProfilesIntent_canNotRequestInteraction_throwsSecurityException() {
+        try {
+            mCrossProfileApps.createRequestInteractAcrossProfilesIntent();
+        } catch (SecurityException e) {
+            return;
+        }
+        fail("Should throw a Security Exception");
     }
 
     /**
diff --git a/hostsidetests/devicepolicy/app/CrossProfileTestApps/CrossProfileAppsWithNoPermissionTest/Android.bp b/hostsidetests/devicepolicy/app/CrossProfileTestApps/CrossProfileAppsWithNoPermissionTest/Android.bp
index 7ede135..4fa0c4e 100644
--- a/hostsidetests/devicepolicy/app/CrossProfileTestApps/CrossProfileAppsWithNoPermissionTest/Android.bp
+++ b/hostsidetests/devicepolicy/app/CrossProfileTestApps/CrossProfileAppsWithNoPermissionTest/Android.bp
@@ -30,6 +30,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/devicepolicy/app/CrossProfileTestApps/CrossProfileEnabledApp/Android.bp b/hostsidetests/devicepolicy/app/CrossProfileTestApps/CrossProfileEnabledApp/Android.bp
index 805897d..0c98f7f 100644
--- a/hostsidetests/devicepolicy/app/CrossProfileTestApps/CrossProfileEnabledApp/Android.bp
+++ b/hostsidetests/devicepolicy/app/CrossProfileTestApps/CrossProfileEnabledApp/Android.bp
@@ -30,6 +30,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/devicepolicy/app/CrossProfileTestApps/CrossProfileEnabledNoPermsApp/Android.bp b/hostsidetests/devicepolicy/app/CrossProfileTestApps/CrossProfileEnabledNoPermsApp/Android.bp
index 44d5732..49e3dff 100644
--- a/hostsidetests/devicepolicy/app/CrossProfileTestApps/CrossProfileEnabledNoPermsApp/Android.bp
+++ b/hostsidetests/devicepolicy/app/CrossProfileTestApps/CrossProfileEnabledNoPermsApp/Android.bp
@@ -30,6 +30,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/devicepolicy/app/CrossProfileTestApps/CrossProfileNotEnabledApp/Android.bp b/hostsidetests/devicepolicy/app/CrossProfileTestApps/CrossProfileNotEnabledApp/Android.bp
index 7a6592d..2733337 100644
--- a/hostsidetests/devicepolicy/app/CrossProfileTestApps/CrossProfileNotEnabledApp/Android.bp
+++ b/hostsidetests/devicepolicy/app/CrossProfileTestApps/CrossProfileNotEnabledApp/Android.bp
@@ -30,6 +30,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/devicepolicy/app/CrossProfileTestApps/CrossProfileUserEnabledApp/Android.bp b/hostsidetests/devicepolicy/app/CrossProfileTestApps/CrossProfileUserEnabledApp/Android.bp
index f3c4611..7659eea 100644
--- a/hostsidetests/devicepolicy/app/CrossProfileTestApps/CrossProfileUserEnabledApp/Android.bp
+++ b/hostsidetests/devicepolicy/app/CrossProfileTestApps/CrossProfileUserEnabledApp/Android.bp
@@ -30,6 +30,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/devicepolicy/app/CustomizationApp/Android.bp b/hostsidetests/devicepolicy/app/CustomizationApp/Android.bp
index b8eb974..a34e712 100644
--- a/hostsidetests/devicepolicy/app/CustomizationApp/Android.bp
+++ b/hostsidetests/devicepolicy/app/CustomizationApp/Android.bp
@@ -19,6 +19,7 @@
         "arcts",
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     srcs: ["src/**/*.java"],
diff --git a/hostsidetests/devicepolicy/app/DelegateApp/Android.bp b/hostsidetests/devicepolicy/app/DelegateApp/Android.bp
index 2a98af0..547e098 100644
--- a/hostsidetests/devicepolicy/app/DelegateApp/Android.bp
+++ b/hostsidetests/devicepolicy/app/DelegateApp/Android.bp
@@ -34,6 +34,7 @@
         "arcts",
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/devicepolicy/app/DeviceAdmin/Android.bp b/hostsidetests/devicepolicy/app/DeviceAdmin/Android.bp
index 3a4e724..365029c 100644
--- a/hostsidetests/devicepolicy/app/DeviceAdmin/Android.bp
+++ b/hostsidetests/devicepolicy/app/DeviceAdmin/Android.bp
@@ -31,6 +31,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     manifest: "api23/AndroidManifest.xml",
@@ -57,6 +58,7 @@
         "arcts",
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     manifest: "api24/AndroidManifest.xml",
@@ -81,6 +83,7 @@
         "arcts",
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     manifest: "api29/AndroidManifest.xml",
diff --git a/hostsidetests/devicepolicy/app/DeviceAdminService/Android.bp b/hostsidetests/devicepolicy/app/DeviceAdminService/Android.bp
index 4800c11..6bb0257 100644
--- a/hostsidetests/devicepolicy/app/DeviceAdminService/Android.bp
+++ b/hostsidetests/devicepolicy/app/DeviceAdminService/Android.bp
@@ -27,6 +27,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     manifest: "package1/AndroidManifest.xml",
@@ -47,6 +48,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     manifest: "package2/AndroidManifest.xml",
@@ -67,6 +69,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     manifest: "package3/AndroidManifest.xml",
@@ -87,6 +90,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     manifest: "package4/AndroidManifest.xml",
@@ -107,6 +111,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     manifest: "packageb/AndroidManifest.xml",
diff --git a/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/Android.bp b/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/Android.bp
index e6599b6..b8dd038 100644
--- a/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/Android.bp
+++ b/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/Android.bp
@@ -35,6 +35,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     manifest: "api23/AndroidManifest.xml",
@@ -64,6 +65,7 @@
         "arcts",
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     manifest: "api25/AndroidManifest.xml",
@@ -93,6 +95,7 @@
         "arcts",
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     manifest: "latest/AndroidManifest.xml",
diff --git a/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/PermissionsTest.java b/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/PermissionsTest.java
index 95d9d85..f058747 100644
--- a/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/PermissionsTest.java
+++ b/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/PermissionsTest.java
@@ -495,7 +495,8 @@
     private CountDownLatch initLocationPermissionNotificationLatch() {
         CountDownLatch notificationCounterLatch = new CountDownLatch(1);
         NotificationListener.getInstance().addListener((notification) -> {
-            if (notification.getPackageName().equals("com.google.android.permissioncontroller") &&
+            if (notification.getPackageName().equals(
+                    mPackageManager.getPermissionControllerPackageName()) &&
                     notification.getNotification().getChannelId().equals(
                             AUTO_GRANTED_PERMISSIONS_CHANNEL_ID)) {
                 notificationCounterLatch.countDown();
diff --git a/hostsidetests/devicepolicy/app/DeviceOwner/Android.bp b/hostsidetests/devicepolicy/app/DeviceOwner/Android.bp
index 70d59d6..47469b7 100644
--- a/hostsidetests/devicepolicy/app/DeviceOwner/Android.bp
+++ b/hostsidetests/devicepolicy/app/DeviceOwner/Android.bp
@@ -44,6 +44,7 @@
         "arcts",
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/devicepolicy/app/DummyApps/Android.bp b/hostsidetests/devicepolicy/app/DummyApps/Android.bp
index 1b7c282..fd00ced 100644
--- a/hostsidetests/devicepolicy/app/DummyApps/Android.bp
+++ b/hostsidetests/devicepolicy/app/DummyApps/Android.bp
@@ -33,6 +33,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     manifest: "dummyapp1/AndroidManifest.xml",
@@ -59,6 +60,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     manifest: "dummyapp2/AndroidManifest.xml",
@@ -85,6 +87,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     manifest: "dummyapp3/AndroidManifest.xml",
@@ -111,6 +114,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     manifest: "dummyapp4/AndroidManifest.xml",
diff --git a/hostsidetests/devicepolicy/app/DummyIme/Android.bp b/hostsidetests/devicepolicy/app/DummyIme/Android.bp
index af8013e..a43b742 100644
--- a/hostsidetests/devicepolicy/app/DummyIme/Android.bp
+++ b/hostsidetests/devicepolicy/app/DummyIme/Android.bp
@@ -24,6 +24,7 @@
         "arcts",
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/devicepolicy/app/DummyLauncher/Android.bp b/hostsidetests/devicepolicy/app/DummyLauncher/Android.bp
index dd0ab0a..0fcc74a 100644
--- a/hostsidetests/devicepolicy/app/DummyLauncher/Android.bp
+++ b/hostsidetests/devicepolicy/app/DummyLauncher/Android.bp
@@ -23,6 +23,7 @@
         "arcts",
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/devicepolicy/app/HasLauncherActivityApp/Android.bp b/hostsidetests/devicepolicy/app/HasLauncherActivityApp/Android.bp
index 8dc698e..3f9ef51 100644
--- a/hostsidetests/devicepolicy/app/HasLauncherActivityApp/Android.bp
+++ b/hostsidetests/devicepolicy/app/HasLauncherActivityApp/Android.bp
@@ -28,6 +28,7 @@
         "arcts",
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
@@ -48,6 +49,7 @@
         "arcts",
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     manifest: "no_launcher_activity_AndroidManifest.xml",
@@ -69,6 +71,7 @@
         "arcts",
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     manifest: "no_permission_AndroidManifest.xml",
diff --git a/hostsidetests/devicepolicy/app/IntentReceiver/Android.bp b/hostsidetests/devicepolicy/app/IntentReceiver/Android.bp
index 8503e83..7e7ae83 100644
--- a/hostsidetests/devicepolicy/app/IntentReceiver/Android.bp
+++ b/hostsidetests/devicepolicy/app/IntentReceiver/Android.bp
@@ -31,6 +31,7 @@
         "arcts",
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/devicepolicy/app/IntentSender/Android.bp b/hostsidetests/devicepolicy/app/IntentSender/Android.bp
index 0de3463..8b63e31 100644
--- a/hostsidetests/devicepolicy/app/IntentSender/Android.bp
+++ b/hostsidetests/devicepolicy/app/IntentSender/Android.bp
@@ -31,6 +31,7 @@
         "arcts",
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/devicepolicy/app/LauncherTests/Android.bp b/hostsidetests/devicepolicy/app/LauncherTests/Android.bp
index 5b9dd20..7221a23 100644
--- a/hostsidetests/devicepolicy/app/LauncherTests/Android.bp
+++ b/hostsidetests/devicepolicy/app/LauncherTests/Android.bp
@@ -32,6 +32,7 @@
         "arcts",
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/devicepolicy/app/LauncherTestsSupport/Android.bp b/hostsidetests/devicepolicy/app/LauncherTestsSupport/Android.bp
index c690f9c..b513ee9 100644
--- a/hostsidetests/devicepolicy/app/LauncherTestsSupport/Android.bp
+++ b/hostsidetests/devicepolicy/app/LauncherTestsSupport/Android.bp
@@ -24,6 +24,7 @@
         "arcts",
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/devicepolicy/app/ManagedProfile/Android.bp b/hostsidetests/devicepolicy/app/ManagedProfile/Android.bp
index 4bd90fa..9a51bb0 100644
--- a/hostsidetests/devicepolicy/app/ManagedProfile/Android.bp
+++ b/hostsidetests/devicepolicy/app/ManagedProfile/Android.bp
@@ -37,6 +37,7 @@
         "arcts",
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     platform_apis: true,
diff --git a/hostsidetests/devicepolicy/app/MeteredDataTestApp/Android.bp b/hostsidetests/devicepolicy/app/MeteredDataTestApp/Android.bp
index a308d22..ce1a4ad 100644
--- a/hostsidetests/devicepolicy/app/MeteredDataTestApp/Android.bp
+++ b/hostsidetests/devicepolicy/app/MeteredDataTestApp/Android.bp
@@ -21,6 +21,7 @@
         "arcts",
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/hostsidetests/devicepolicy/app/NotificationSender/Android.bp b/hostsidetests/devicepolicy/app/NotificationSender/Android.bp
index 56afe62..853f782 100644
--- a/hostsidetests/devicepolicy/app/NotificationSender/Android.bp
+++ b/hostsidetests/devicepolicy/app/NotificationSender/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/hostsidetests/devicepolicy/app/PackageInstaller/Android.bp b/hostsidetests/devicepolicy/app/PackageInstaller/Android.bp
index 473666e..c36ae40 100644
--- a/hostsidetests/devicepolicy/app/PackageInstaller/Android.bp
+++ b/hostsidetests/devicepolicy/app/PackageInstaller/Android.bp
@@ -32,6 +32,7 @@
         "arcts",
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/devicepolicy/app/PasswordComplexity/Android.bp b/hostsidetests/devicepolicy/app/PasswordComplexity/Android.bp
index 46daad8..b38e503 100644
--- a/hostsidetests/devicepolicy/app/PasswordComplexity/Android.bp
+++ b/hostsidetests/devicepolicy/app/PasswordComplexity/Android.bp
@@ -30,6 +30,7 @@
         "arcts",
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/devicepolicy/app/PrintingApp/Android.bp b/hostsidetests/devicepolicy/app/PrintingApp/Android.bp
index 0cdad22..1667020 100644
--- a/hostsidetests/devicepolicy/app/PrintingApp/Android.bp
+++ b/hostsidetests/devicepolicy/app/PrintingApp/Android.bp
@@ -22,6 +22,7 @@
         "arcts",
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/devicepolicy/app/ProfileOwner/Android.bp b/hostsidetests/devicepolicy/app/ProfileOwner/Android.bp
index 2ead68f..10a036c 100644
--- a/hostsidetests/devicepolicy/app/ProfileOwner/Android.bp
+++ b/hostsidetests/devicepolicy/app/ProfileOwner/Android.bp
@@ -32,6 +32,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/devicepolicy/app/SimpleApp/Android.bp b/hostsidetests/devicepolicy/app/SimpleApp/Android.bp
index 66d9ca1..c847244 100644
--- a/hostsidetests/devicepolicy/app/SimpleApp/Android.bp
+++ b/hostsidetests/devicepolicy/app/SimpleApp/Android.bp
@@ -21,6 +21,7 @@
         "arcts",
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/hostsidetests/devicepolicy/app/SimplePreMApp/Android.bp b/hostsidetests/devicepolicy/app/SimplePreMApp/Android.bp
index c52ad38..0fbc3d3 100644
--- a/hostsidetests/devicepolicy/app/SimplePreMApp/Android.bp
+++ b/hostsidetests/devicepolicy/app/SimplePreMApp/Android.bp
@@ -24,6 +24,7 @@
         "arcts",
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/devicepolicy/app/SingleAdminApp/Android.bp b/hostsidetests/devicepolicy/app/SingleAdminApp/Android.bp
index 28f59fa..0fafcbe 100644
--- a/hostsidetests/devicepolicy/app/SingleAdminApp/Android.bp
+++ b/hostsidetests/devicepolicy/app/SingleAdminApp/Android.bp
@@ -32,6 +32,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/devicepolicy/app/TransferOwnerIncomingApp/Android.bp b/hostsidetests/devicepolicy/app/TransferOwnerIncomingApp/Android.bp
index 614637d..34b0a68 100644
--- a/hostsidetests/devicepolicy/app/TransferOwnerIncomingApp/Android.bp
+++ b/hostsidetests/devicepolicy/app/TransferOwnerIncomingApp/Android.bp
@@ -34,6 +34,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/devicepolicy/app/TransferOwnerOutgoingApp/Android.bp b/hostsidetests/devicepolicy/app/TransferOwnerOutgoingApp/Android.bp
index f24944e..f6c6f08 100644
--- a/hostsidetests/devicepolicy/app/TransferOwnerOutgoingApp/Android.bp
+++ b/hostsidetests/devicepolicy/app/TransferOwnerOutgoingApp/Android.bp
@@ -34,6 +34,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/devicepolicy/app/WidgetProvider/Android.bp b/hostsidetests/devicepolicy/app/WidgetProvider/Android.bp
index 3b7aec3..16394e3 100644
--- a/hostsidetests/devicepolicy/app/WidgetProvider/Android.bp
+++ b/hostsidetests/devicepolicy/app/WidgetProvider/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/devicepolicy/app/WifiConfigCreator/Android.bp b/hostsidetests/devicepolicy/app/WifiConfigCreator/Android.bp
index 0d7f72f..66668e4 100644
--- a/hostsidetests/devicepolicy/app/WifiConfigCreator/Android.bp
+++ b/hostsidetests/devicepolicy/app/WifiConfigCreator/Android.bp
@@ -24,6 +24,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/CrossProfileAppsPermissionHostSideTest.java b/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/CrossProfileAppsPermissionHostSideTest.java
index ff3b70b..c07b87c 100644
--- a/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/CrossProfileAppsPermissionHostSideTest.java
+++ b/hostsidetests/devicepolicy/src/com/android/cts/devicepolicy/CrossProfileAppsPermissionHostSideTest.java
@@ -263,14 +263,14 @@
     }
 
     @Test
-    public void testCreateRequestInteractAcrossProfilesIntent_canNotRequestInteraction_returnsNull()
+    public void testCreateRequestInteractAcrossProfilesIntent_canNotRequestInteraction_throwsSecurityException()
             throws Exception {
         installAppAsUser(TEST_WITH_REQUESTED_PERMISSION_APK, mPrimaryUserId);
 
         runDeviceTestsAsUser(
                 TEST_WITH_REQUESTED_PERMISSION_PACKAGE,
                 TEST_WITH_REQUESTED_PERMISSION_CLASS,
-                "testCreateRequestInteractAcrossProfilesIntent_canNotRequestInteraction_returnsNull",
+                "testCreateRequestInteractAcrossProfilesIntent_canNotRequestInteraction_throwsSecurityException",
                 mProfileId,
                 Collections.EMPTY_MAP);
     }
diff --git a/hostsidetests/dumpsys/Android.bp b/hostsidetests/dumpsys/Android.bp
index d26c8c4..4434430 100644
--- a/hostsidetests/dumpsys/Android.bp
+++ b/hostsidetests/dumpsys/Android.bp
@@ -26,6 +26,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/dumpsys/apps/FramestatsTestApp/Android.bp b/hostsidetests/dumpsys/apps/FramestatsTestApp/Android.bp
index 1dcf148..ee120c4 100644
--- a/hostsidetests/dumpsys/apps/FramestatsTestApp/Android.bp
+++ b/hostsidetests/dumpsys/apps/FramestatsTestApp/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/dumpsys/apps/ProcStatsHelperApp/Android.bp b/hostsidetests/dumpsys/apps/ProcStatsHelperApp/Android.bp
index 8bd1e8e..a7b8e42 100644
--- a/hostsidetests/dumpsys/apps/ProcStatsHelperApp/Android.bp
+++ b/hostsidetests/dumpsys/apps/ProcStatsHelperApp/Android.bp
@@ -28,6 +28,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/dumpsys/apps/ProcStatsTestApp/Android.bp b/hostsidetests/dumpsys/apps/ProcStatsTestApp/Android.bp
index abaf6cd..4773ff9 100644
--- a/hostsidetests/dumpsys/apps/ProcStatsTestApp/Android.bp
+++ b/hostsidetests/dumpsys/apps/ProcStatsTestApp/Android.bp
@@ -30,6 +30,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/dumpsys/apps/storagedapp/Android.bp b/hostsidetests/dumpsys/apps/storagedapp/Android.bp
index 321d5f9..9bb7e3b 100644
--- a/hostsidetests/dumpsys/apps/storagedapp/Android.bp
+++ b/hostsidetests/dumpsys/apps/storagedapp/Android.bp
@@ -30,6 +30,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/edi/Android.bp b/hostsidetests/edi/Android.bp
index 2a8ac6e..912c165 100644
--- a/hostsidetests/edi/Android.bp
+++ b/hostsidetests/edi/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     libs: [
diff --git a/hostsidetests/harmfulappwarning/Android.bp b/hostsidetests/harmfulappwarning/Android.bp
index eef6b59..ff9dec7 100644
--- a/hostsidetests/harmfulappwarning/Android.bp
+++ b/hostsidetests/harmfulappwarning/Android.bp
@@ -24,6 +24,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/harmfulappwarning/sampleapp/Android.bp b/hostsidetests/harmfulappwarning/sampleapp/Android.bp
index e129af5..cb68d80 100644
--- a/hostsidetests/harmfulappwarning/sampleapp/Android.bp
+++ b/hostsidetests/harmfulappwarning/sampleapp/Android.bp
@@ -27,6 +27,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/hostsidetests/harmfulappwarning/testapp/Android.bp b/hostsidetests/harmfulappwarning/testapp/Android.bp
index 9e1174f..a9785f3 100644
--- a/hostsidetests/harmfulappwarning/testapp/Android.bp
+++ b/hostsidetests/harmfulappwarning/testapp/Android.bp
@@ -30,6 +30,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/hostsidetests/hdmicec/Android.bp b/hostsidetests/hdmicec/Android.bp
index 0fa3a6a..3ab68f6 100644
--- a/hostsidetests/hdmicec/Android.bp
+++ b/hostsidetests/hdmicec/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     libs: [
diff --git a/hostsidetests/incident/Android.bp b/hostsidetests/incident/Android.bp
index 3a3801b..7066e24 100644
--- a/hostsidetests/incident/Android.bp
+++ b/hostsidetests/incident/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     libs: [
diff --git a/hostsidetests/incident/apps/batterystatsapp/Android.bp b/hostsidetests/incident/apps/batterystatsapp/Android.bp
index 3cbe960..8ed1fcb 100644
--- a/hostsidetests/incident/apps/batterystatsapp/Android.bp
+++ b/hostsidetests/incident/apps/batterystatsapp/Android.bp
@@ -31,6 +31,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/incident/apps/boundwidgetapp/Android.bp b/hostsidetests/incident/apps/boundwidgetapp/Android.bp
index 4e710d8..a91c48d 100644
--- a/hostsidetests/incident/apps/boundwidgetapp/Android.bp
+++ b/hostsidetests/incident/apps/boundwidgetapp/Android.bp
@@ -31,6 +31,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/incident/apps/errorsapp/Android.bp b/hostsidetests/incident/apps/errorsapp/Android.bp
index 738feb5..fcbee4a 100644
--- a/hostsidetests/incident/apps/errorsapp/Android.bp
+++ b/hostsidetests/incident/apps/errorsapp/Android.bp
@@ -33,6 +33,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/incident/apps/graphicsstatsapp/Android.bp b/hostsidetests/incident/apps/graphicsstatsapp/Android.bp
index c64f8a8..2711453 100644
--- a/hostsidetests/incident/apps/graphicsstatsapp/Android.bp
+++ b/hostsidetests/incident/apps/graphicsstatsapp/Android.bp
@@ -31,6 +31,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/incident/apps/netstatsapp/Android.bp b/hostsidetests/incident/apps/netstatsapp/Android.bp
index 551d27e..fe44669 100644
--- a/hostsidetests/incident/apps/netstatsapp/Android.bp
+++ b/hostsidetests/incident/apps/netstatsapp/Android.bp
@@ -30,6 +30,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/incident/apps/notificationsapp/Android.bp b/hostsidetests/incident/apps/notificationsapp/Android.bp
index 6bd3991..dd51c40 100644
--- a/hostsidetests/incident/apps/notificationsapp/Android.bp
+++ b/hostsidetests/incident/apps/notificationsapp/Android.bp
@@ -31,6 +31,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/incident/apps/procstatsapp/Android.bp b/hostsidetests/incident/apps/procstatsapp/Android.bp
index 0626e23..b374ce2 100644
--- a/hostsidetests/incident/apps/procstatsapp/Android.bp
+++ b/hostsidetests/incident/apps/procstatsapp/Android.bp
@@ -30,6 +30,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/inputmethodservice/common/Android.bp b/hostsidetests/inputmethodservice/common/Android.bp
index 6480839..e1d23ed 100644
--- a/hostsidetests/inputmethodservice/common/Android.bp
+++ b/hostsidetests/inputmethodservice/common/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/hostsidetests/inputmethodservice/deviceside/devicetest/Android.bp b/hostsidetests/inputmethodservice/deviceside/devicetest/Android.bp
index 30bf5cb..8f5a256 100644
--- a/hostsidetests/inputmethodservice/deviceside/devicetest/Android.bp
+++ b/hostsidetests/inputmethodservice/deviceside/devicetest/Android.bp
@@ -29,6 +29,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/hostsidetests/inputmethodservice/deviceside/edittextapp/Android.bp b/hostsidetests/inputmethodservice/deviceside/edittextapp/Android.bp
index e2f7105..e91a215 100644
--- a/hostsidetests/inputmethodservice/deviceside/edittextapp/Android.bp
+++ b/hostsidetests/inputmethodservice/deviceside/edittextapp/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/hostsidetests/inputmethodservice/deviceside/ime1/Android.bp b/hostsidetests/inputmethodservice/deviceside/ime1/Android.bp
index 43ce201..017baa1 100644
--- a/hostsidetests/inputmethodservice/deviceside/ime1/Android.bp
+++ b/hostsidetests/inputmethodservice/deviceside/ime1/Android.bp
@@ -24,6 +24,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/hostsidetests/inputmethodservice/deviceside/ime2/Android.bp b/hostsidetests/inputmethodservice/deviceside/ime2/Android.bp
index 61480a2..f9c4314 100644
--- a/hostsidetests/inputmethodservice/deviceside/ime2/Android.bp
+++ b/hostsidetests/inputmethodservice/deviceside/ime2/Android.bp
@@ -24,6 +24,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/hostsidetests/inputmethodservice/deviceside/lib/Android.bp b/hostsidetests/inputmethodservice/deviceside/lib/Android.bp
index cecc584..1bd38c1 100644
--- a/hostsidetests/inputmethodservice/deviceside/lib/Android.bp
+++ b/hostsidetests/inputmethodservice/deviceside/lib/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/hostsidetests/inputmethodservice/deviceside/provider/Android.bp b/hostsidetests/inputmethodservice/deviceside/provider/Android.bp
index 3d5a727..1f406a3 100644
--- a/hostsidetests/inputmethodservice/deviceside/provider/Android.bp
+++ b/hostsidetests/inputmethodservice/deviceside/provider/Android.bp
@@ -24,6 +24,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/hostsidetests/inputmethodservice/hostside/Android.bp b/hostsidetests/inputmethodservice/hostside/Android.bp
index 35bec6d..a809698 100644
--- a/hostsidetests/inputmethodservice/hostside/Android.bp
+++ b/hostsidetests/inputmethodservice/hostside/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     libs: [
diff --git a/hostsidetests/jdwpsecurity/Android.bp b/hostsidetests/jdwpsecurity/Android.bp
index 8e99529..495e585 100644
--- a/hostsidetests/jdwpsecurity/Android.bp
+++ b/hostsidetests/jdwpsecurity/Android.bp
@@ -24,6 +24,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJdwpApp"],
diff --git a/hostsidetests/jdwptunnel/Android.bp b/hostsidetests/jdwptunnel/Android.bp
index fbc18fa..37cb6ce 100644
--- a/hostsidetests/jdwptunnel/Android.bp
+++ b/hostsidetests/jdwptunnel/Android.bp
@@ -34,6 +34,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 
diff --git a/hostsidetests/jvmti/allocation-tracking/Android.bp b/hostsidetests/jvmti/allocation-tracking/Android.bp
index 8c87af5..2d32d4f 100644
--- a/hostsidetests/jvmti/allocation-tracking/Android.bp
+++ b/hostsidetests/jvmti/allocation-tracking/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/jvmti/allocation-tracking/app/Android.bp b/hostsidetests/jvmti/allocation-tracking/app/Android.bp
index d2d5feb..95e7df6 100644
--- a/hostsidetests/jvmti/allocation-tracking/app/Android.bp
+++ b/hostsidetests/jvmti/allocation-tracking/app/Android.bp
@@ -24,6 +24,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     static_libs: ["CtsJvmtiDeviceAppBase"],
diff --git a/hostsidetests/jvmti/attaching/Android.bp b/hostsidetests/jvmti/attaching/Android.bp
index 48b095e..03f921d 100644
--- a/hostsidetests/jvmti/attaching/Android.bp
+++ b/hostsidetests/jvmti/attaching/Android.bp
@@ -82,6 +82,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     test_config: "host/AndroidTest.xml",
diff --git a/hostsidetests/jvmti/redefining/Android.bp b/hostsidetests/jvmti/redefining/Android.bp
index 6de0131..7f5bae1 100644
--- a/hostsidetests/jvmti/redefining/Android.bp
+++ b/hostsidetests/jvmti/redefining/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRedefineClassesDeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1900/Android.bp b/hostsidetests/jvmti/run-tests/test-1900/Android.bp
index 13f8765..7535d66 100644
--- a/hostsidetests/jvmti/run-tests/test-1900/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1900/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1900DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1901/Android.bp b/hostsidetests/jvmti/run-tests/test-1901/Android.bp
index 2c7c6a6..d1d29c6 100644
--- a/hostsidetests/jvmti/run-tests/test-1901/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1901/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1901DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1902/Android.bp b/hostsidetests/jvmti/run-tests/test-1902/Android.bp
index 3683e58..812d0e6 100644
--- a/hostsidetests/jvmti/run-tests/test-1902/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1902/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1902DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1903/Android.bp b/hostsidetests/jvmti/run-tests/test-1903/Android.bp
index cb8470f..64a2002 100644
--- a/hostsidetests/jvmti/run-tests/test-1903/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1903/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1903DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1904/Android.bp b/hostsidetests/jvmti/run-tests/test-1904/Android.bp
index 0eb9b1d..f2750a0 100644
--- a/hostsidetests/jvmti/run-tests/test-1904/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1904/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1904DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1906/Android.bp b/hostsidetests/jvmti/run-tests/test-1906/Android.bp
index 9aadc1a..89f5feb 100644
--- a/hostsidetests/jvmti/run-tests/test-1906/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1906/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1906DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1907/Android.bp b/hostsidetests/jvmti/run-tests/test-1907/Android.bp
index 0f88968..935cf99 100644
--- a/hostsidetests/jvmti/run-tests/test-1907/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1907/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1907DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1908/Android.bp b/hostsidetests/jvmti/run-tests/test-1908/Android.bp
index 308ebc6..8dfde43 100644
--- a/hostsidetests/jvmti/run-tests/test-1908/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1908/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1908DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1909/Android.bp b/hostsidetests/jvmti/run-tests/test-1909/Android.bp
index c8f7822..a8ba25b 100644
--- a/hostsidetests/jvmti/run-tests/test-1909/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1909/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1909DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1910/Android.bp b/hostsidetests/jvmti/run-tests/test-1910/Android.bp
index 1918925..93b7086 100644
--- a/hostsidetests/jvmti/run-tests/test-1910/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1910/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1910DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1911/Android.bp b/hostsidetests/jvmti/run-tests/test-1911/Android.bp
index 74f484f..c79050b 100644
--- a/hostsidetests/jvmti/run-tests/test-1911/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1911/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1911DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1912/Android.bp b/hostsidetests/jvmti/run-tests/test-1912/Android.bp
index e39ae46..6195d5b 100644
--- a/hostsidetests/jvmti/run-tests/test-1912/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1912/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1912DeviceApp"]
diff --git a/hostsidetests/jvmti/run-tests/test-1913/Android.bp b/hostsidetests/jvmti/run-tests/test-1913/Android.bp
index 741c60d..5e74dfd 100644
--- a/hostsidetests/jvmti/run-tests/test-1913/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1913/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1913DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1914/Android.bp b/hostsidetests/jvmti/run-tests/test-1914/Android.bp
index a585538..7e67d4c 100644
--- a/hostsidetests/jvmti/run-tests/test-1914/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1914/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1914DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1915/Android.bp b/hostsidetests/jvmti/run-tests/test-1915/Android.bp
index aaf75cb..81b6445 100644
--- a/hostsidetests/jvmti/run-tests/test-1915/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1915/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1915DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1916/Android.bp b/hostsidetests/jvmti/run-tests/test-1916/Android.bp
index c737491..e8f00db 100644
--- a/hostsidetests/jvmti/run-tests/test-1916/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1916/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1916DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1917/Android.bp b/hostsidetests/jvmti/run-tests/test-1917/Android.bp
index b9eb679..48e0127 100644
--- a/hostsidetests/jvmti/run-tests/test-1917/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1917/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1917DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1920/Android.bp b/hostsidetests/jvmti/run-tests/test-1920/Android.bp
index ce42c57..29b111c 100644
--- a/hostsidetests/jvmti/run-tests/test-1920/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1920/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1920DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1921/Android.bp b/hostsidetests/jvmti/run-tests/test-1921/Android.bp
index 553f8a1..2b213d0 100644
--- a/hostsidetests/jvmti/run-tests/test-1921/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1921/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1921DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1922/Android.bp b/hostsidetests/jvmti/run-tests/test-1922/Android.bp
index a38c5a9..0bf671b 100644
--- a/hostsidetests/jvmti/run-tests/test-1922/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1922/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1922DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1923/Android.bp b/hostsidetests/jvmti/run-tests/test-1923/Android.bp
index 7d49861..c7d7b5a 100644
--- a/hostsidetests/jvmti/run-tests/test-1923/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1923/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1923DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1924/Android.bp b/hostsidetests/jvmti/run-tests/test-1924/Android.bp
index 0f7dec9..4e1d9a5 100644
--- a/hostsidetests/jvmti/run-tests/test-1924/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1924/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1924DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1925/Android.bp b/hostsidetests/jvmti/run-tests/test-1925/Android.bp
index 4076977..be46c41 100644
--- a/hostsidetests/jvmti/run-tests/test-1925/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1925/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1925DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1926/Android.bp b/hostsidetests/jvmti/run-tests/test-1926/Android.bp
index 50c1f42..d352105 100644
--- a/hostsidetests/jvmti/run-tests/test-1926/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1926/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1926DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1927/Android.bp b/hostsidetests/jvmti/run-tests/test-1927/Android.bp
index fb55fb4..f618f61 100644
--- a/hostsidetests/jvmti/run-tests/test-1927/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1927/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1927DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1928/Android.bp b/hostsidetests/jvmti/run-tests/test-1928/Android.bp
index 9f82560..793e885 100644
--- a/hostsidetests/jvmti/run-tests/test-1928/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1928/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1928DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1930/Android.bp b/hostsidetests/jvmti/run-tests/test-1930/Android.bp
index c7931c8..5369d38 100644
--- a/hostsidetests/jvmti/run-tests/test-1930/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1930/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1930DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1931/Android.bp b/hostsidetests/jvmti/run-tests/test-1931/Android.bp
index 1ad7236..681535b 100644
--- a/hostsidetests/jvmti/run-tests/test-1931/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1931/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1931DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1932/Android.bp b/hostsidetests/jvmti/run-tests/test-1932/Android.bp
index acbebed..03c71d0 100644
--- a/hostsidetests/jvmti/run-tests/test-1932/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1932/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1932DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1933/Android.bp b/hostsidetests/jvmti/run-tests/test-1933/Android.bp
index 4fde3e5..b6bf998 100644
--- a/hostsidetests/jvmti/run-tests/test-1933/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1933/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1933DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1934/Android.bp b/hostsidetests/jvmti/run-tests/test-1934/Android.bp
index a7b003c..f1ae3c5 100644
--- a/hostsidetests/jvmti/run-tests/test-1934/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1934/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1934DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1936/Android.bp b/hostsidetests/jvmti/run-tests/test-1936/Android.bp
index 7c4b29d..df7abc7 100644
--- a/hostsidetests/jvmti/run-tests/test-1936/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1936/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1936DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1937/Android.bp b/hostsidetests/jvmti/run-tests/test-1937/Android.bp
index 6814ef4..a541a8b 100644
--- a/hostsidetests/jvmti/run-tests/test-1937/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1937/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1937DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1939/Android.bp b/hostsidetests/jvmti/run-tests/test-1939/Android.bp
index 43685b9..7cfcb1b 100644
--- a/hostsidetests/jvmti/run-tests/test-1939/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1939/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1939DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1941/Android.bp b/hostsidetests/jvmti/run-tests/test-1941/Android.bp
index 94eeb35..b9649cf 100644
--- a/hostsidetests/jvmti/run-tests/test-1941/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1941/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1941DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1942/Android.bp b/hostsidetests/jvmti/run-tests/test-1942/Android.bp
index b7dd9aa..f194c2d 100644
--- a/hostsidetests/jvmti/run-tests/test-1942/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1942/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1942DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1943/Android.bp b/hostsidetests/jvmti/run-tests/test-1943/Android.bp
index 9266e79..8021c66 100644
--- a/hostsidetests/jvmti/run-tests/test-1943/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1943/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1943DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1953/Android.bp b/hostsidetests/jvmti/run-tests/test-1953/Android.bp
index b428f90..5bee56c 100644
--- a/hostsidetests/jvmti/run-tests/test-1953/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1953/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1953DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1958/Android.bp b/hostsidetests/jvmti/run-tests/test-1958/Android.bp
index 661582e..fc0c4b9 100644
--- a/hostsidetests/jvmti/run-tests/test-1958/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1958/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1958DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1962/Android.bp b/hostsidetests/jvmti/run-tests/test-1962/Android.bp
index 97f9dc5..e285887 100644
--- a/hostsidetests/jvmti/run-tests/test-1962/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1962/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1962DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1967/Android.bp b/hostsidetests/jvmti/run-tests/test-1967/Android.bp
index 71cace5..0be835c 100644
--- a/hostsidetests/jvmti/run-tests/test-1967/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1967/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1967DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1968/Android.bp b/hostsidetests/jvmti/run-tests/test-1968/Android.bp
index a5166fd..58ff9d5 100644
--- a/hostsidetests/jvmti/run-tests/test-1968/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1968/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1968DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1969/Android.bp b/hostsidetests/jvmti/run-tests/test-1969/Android.bp
index d04b251..c3581e8 100644
--- a/hostsidetests/jvmti/run-tests/test-1969/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1969/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1969DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1970/Android.bp b/hostsidetests/jvmti/run-tests/test-1970/Android.bp
index c0839ff..042de07 100644
--- a/hostsidetests/jvmti/run-tests/test-1970/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1970/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1970DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1971/Android.bp b/hostsidetests/jvmti/run-tests/test-1971/Android.bp
index 13d2ced..05e1277 100644
--- a/hostsidetests/jvmti/run-tests/test-1971/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1971/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1971DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1974/Android.bp b/hostsidetests/jvmti/run-tests/test-1974/Android.bp
index d15a1e9..8813ff1 100644
--- a/hostsidetests/jvmti/run-tests/test-1974/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1974/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1974DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1975/Android.bp b/hostsidetests/jvmti/run-tests/test-1975/Android.bp
index 335aa16..48bc7c5 100644
--- a/hostsidetests/jvmti/run-tests/test-1975/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1975/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1975DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1976/Android.bp b/hostsidetests/jvmti/run-tests/test-1976/Android.bp
index 0c1fdda..eb3bfba 100644
--- a/hostsidetests/jvmti/run-tests/test-1976/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1976/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1976DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1977/Android.bp b/hostsidetests/jvmti/run-tests/test-1977/Android.bp
index 99f10e2..93b98fc 100644
--- a/hostsidetests/jvmti/run-tests/test-1977/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1977/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1977DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1978/Android.bp b/hostsidetests/jvmti/run-tests/test-1978/Android.bp
index 581b406..89d7183 100644
--- a/hostsidetests/jvmti/run-tests/test-1978/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1978/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1978DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1979/Android.bp b/hostsidetests/jvmti/run-tests/test-1979/Android.bp
index 26d590f..ca9e217 100644
--- a/hostsidetests/jvmti/run-tests/test-1979/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1979/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1979DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1981/Android.bp b/hostsidetests/jvmti/run-tests/test-1981/Android.bp
index ab0d946..979c1c8 100644
--- a/hostsidetests/jvmti/run-tests/test-1981/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1981/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1981DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1982/Android.bp b/hostsidetests/jvmti/run-tests/test-1982/Android.bp
index 6656637..c126070 100644
--- a/hostsidetests/jvmti/run-tests/test-1982/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1982/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1982DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1983/Android.bp b/hostsidetests/jvmti/run-tests/test-1983/Android.bp
index 994b62f..4720cf5 100644
--- a/hostsidetests/jvmti/run-tests/test-1983/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1983/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1983DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1984/Android.bp b/hostsidetests/jvmti/run-tests/test-1984/Android.bp
index f23c878..8fc7a9b 100644
--- a/hostsidetests/jvmti/run-tests/test-1984/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1984/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1984DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1988/Android.bp b/hostsidetests/jvmti/run-tests/test-1988/Android.bp
index 8042eaa..a6c30b6 100644
--- a/hostsidetests/jvmti/run-tests/test-1988/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1988/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1988DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1989/Android.bp b/hostsidetests/jvmti/run-tests/test-1989/Android.bp
index ea9c10a..c84028d 100644
--- a/hostsidetests/jvmti/run-tests/test-1989/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1989/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1989DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1990/Android.bp b/hostsidetests/jvmti/run-tests/test-1990/Android.bp
index 7a8b0f2..2b05765 100644
--- a/hostsidetests/jvmti/run-tests/test-1990/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1990/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1990DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1991/Android.bp b/hostsidetests/jvmti/run-tests/test-1991/Android.bp
index 0accac1..6060c29 100644
--- a/hostsidetests/jvmti/run-tests/test-1991/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1991/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1991DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1992/Android.bp b/hostsidetests/jvmti/run-tests/test-1992/Android.bp
index 61f112c..e08ad9b 100644
--- a/hostsidetests/jvmti/run-tests/test-1992/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1992/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1992DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1994/Android.bp b/hostsidetests/jvmti/run-tests/test-1994/Android.bp
index 79de6f0..1d5d6a0 100644
--- a/hostsidetests/jvmti/run-tests/test-1994/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1994/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1994DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1995/Android.bp b/hostsidetests/jvmti/run-tests/test-1995/Android.bp
index fe2b24b..d5993f2 100644
--- a/hostsidetests/jvmti/run-tests/test-1995/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1995/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1995DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1996/Android.bp b/hostsidetests/jvmti/run-tests/test-1996/Android.bp
index 1470ef4..7cda84f 100644
--- a/hostsidetests/jvmti/run-tests/test-1996/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1996/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1996DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1997/Android.bp b/hostsidetests/jvmti/run-tests/test-1997/Android.bp
index 3493cd0..3e796eb 100644
--- a/hostsidetests/jvmti/run-tests/test-1997/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1997/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1997DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1998/Android.bp b/hostsidetests/jvmti/run-tests/test-1998/Android.bp
index 63ce180..4adff56 100644
--- a/hostsidetests/jvmti/run-tests/test-1998/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1998/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1998DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-1999/Android.bp b/hostsidetests/jvmti/run-tests/test-1999/Android.bp
index 8e28df9..fc4e148 100644
--- a/hostsidetests/jvmti/run-tests/test-1999/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-1999/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest1999DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-2001/Android.bp b/hostsidetests/jvmti/run-tests/test-2001/Android.bp
index 7f7775d..eebf03a 100644
--- a/hostsidetests/jvmti/run-tests/test-2001/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-2001/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest2001DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-2002/Android.bp b/hostsidetests/jvmti/run-tests/test-2002/Android.bp
index 2c0dd1e..4f71db3 100644
--- a/hostsidetests/jvmti/run-tests/test-2002/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-2002/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest2002DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-2003/Android.bp b/hostsidetests/jvmti/run-tests/test-2003/Android.bp
index d206018..7dfd01b 100644
--- a/hostsidetests/jvmti/run-tests/test-2003/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-2003/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest2003DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-2004/Android.bp b/hostsidetests/jvmti/run-tests/test-2004/Android.bp
index d7a9848..12c9aea 100644
--- a/hostsidetests/jvmti/run-tests/test-2004/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-2004/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest2004DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-2005/Android.bp b/hostsidetests/jvmti/run-tests/test-2005/Android.bp
index df0bf81..d3f2680 100644
--- a/hostsidetests/jvmti/run-tests/test-2005/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-2005/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest2005DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-2006/Android.bp b/hostsidetests/jvmti/run-tests/test-2006/Android.bp
index 9f2807b..2d91db3 100644
--- a/hostsidetests/jvmti/run-tests/test-2006/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-2006/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest2006DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-2007/Android.bp b/hostsidetests/jvmti/run-tests/test-2007/Android.bp
index f6cd80c..dd70b58 100644
--- a/hostsidetests/jvmti/run-tests/test-2007/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-2007/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest2007DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-902/Android.bp b/hostsidetests/jvmti/run-tests/test-902/Android.bp
index 380b464..d56abe5 100644
--- a/hostsidetests/jvmti/run-tests/test-902/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-902/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest902DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-903/Android.bp b/hostsidetests/jvmti/run-tests/test-903/Android.bp
index 966fc5f..fad5c04 100644
--- a/hostsidetests/jvmti/run-tests/test-903/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-903/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest903DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-904/Android.bp b/hostsidetests/jvmti/run-tests/test-904/Android.bp
index 82966af..106cf9b 100644
--- a/hostsidetests/jvmti/run-tests/test-904/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-904/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest904DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-905/Android.bp b/hostsidetests/jvmti/run-tests/test-905/Android.bp
index cbf9100..ac107f2 100644
--- a/hostsidetests/jvmti/run-tests/test-905/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-905/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest905DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-906/Android.bp b/hostsidetests/jvmti/run-tests/test-906/Android.bp
index c172214..6962053 100644
--- a/hostsidetests/jvmti/run-tests/test-906/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-906/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest906DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-907/Android.bp b/hostsidetests/jvmti/run-tests/test-907/Android.bp
index 39e9d20..e9060e2 100644
--- a/hostsidetests/jvmti/run-tests/test-907/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-907/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest907DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-908/Android.bp b/hostsidetests/jvmti/run-tests/test-908/Android.bp
index ec637cb..2ff9a92 100644
--- a/hostsidetests/jvmti/run-tests/test-908/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-908/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest908DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-910/Android.bp b/hostsidetests/jvmti/run-tests/test-910/Android.bp
index 6005632..2fd4b48 100644
--- a/hostsidetests/jvmti/run-tests/test-910/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-910/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest910DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-911/Android.bp b/hostsidetests/jvmti/run-tests/test-911/Android.bp
index 762739e..11413f4 100644
--- a/hostsidetests/jvmti/run-tests/test-911/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-911/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest911DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-912/Android.bp b/hostsidetests/jvmti/run-tests/test-912/Android.bp
index 2c7e7a2..9eeb9ba 100644
--- a/hostsidetests/jvmti/run-tests/test-912/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-912/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest912DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-913/Android.bp b/hostsidetests/jvmti/run-tests/test-913/Android.bp
index c0a3a7c..d0cf87fb 100644
--- a/hostsidetests/jvmti/run-tests/test-913/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-913/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest913DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-914/Android.bp b/hostsidetests/jvmti/run-tests/test-914/Android.bp
index 6024041..7a895ea 100644
--- a/hostsidetests/jvmti/run-tests/test-914/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-914/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest914DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-915/Android.bp b/hostsidetests/jvmti/run-tests/test-915/Android.bp
index c67eeb4..df379c3 100644
--- a/hostsidetests/jvmti/run-tests/test-915/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-915/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest915DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-917/Android.bp b/hostsidetests/jvmti/run-tests/test-917/Android.bp
index 05cc057..fc46ab1 100644
--- a/hostsidetests/jvmti/run-tests/test-917/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-917/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest917DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-918/Android.bp b/hostsidetests/jvmti/run-tests/test-918/Android.bp
index 925c560..c445508 100644
--- a/hostsidetests/jvmti/run-tests/test-918/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-918/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest918DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-919/Android.bp b/hostsidetests/jvmti/run-tests/test-919/Android.bp
index 059344b..488488a 100644
--- a/hostsidetests/jvmti/run-tests/test-919/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-919/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest919DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-920/Android.bp b/hostsidetests/jvmti/run-tests/test-920/Android.bp
index 5c60573..af4bcec 100644
--- a/hostsidetests/jvmti/run-tests/test-920/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-920/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest920DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-922/Android.bp b/hostsidetests/jvmti/run-tests/test-922/Android.bp
index 6e2f8b5..8c3be3d 100644
--- a/hostsidetests/jvmti/run-tests/test-922/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-922/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest922DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-923/Android.bp b/hostsidetests/jvmti/run-tests/test-923/Android.bp
index 93f69da..afbd62d 100644
--- a/hostsidetests/jvmti/run-tests/test-923/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-923/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest923DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-924/Android.bp b/hostsidetests/jvmti/run-tests/test-924/Android.bp
index ac01e56..51d76e9 100644
--- a/hostsidetests/jvmti/run-tests/test-924/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-924/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest924DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-926/Android.bp b/hostsidetests/jvmti/run-tests/test-926/Android.bp
index 4b17ff2..8d38a98 100644
--- a/hostsidetests/jvmti/run-tests/test-926/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-926/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest926DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-927/Android.bp b/hostsidetests/jvmti/run-tests/test-927/Android.bp
index 8703cce..b1e4a57 100644
--- a/hostsidetests/jvmti/run-tests/test-927/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-927/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest927DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-928/Android.bp b/hostsidetests/jvmti/run-tests/test-928/Android.bp
index ac39f3d..27c412d 100644
--- a/hostsidetests/jvmti/run-tests/test-928/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-928/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest928DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-930/Android.bp b/hostsidetests/jvmti/run-tests/test-930/Android.bp
index c428847..2cc5d79 100644
--- a/hostsidetests/jvmti/run-tests/test-930/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-930/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest930DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-931/Android.bp b/hostsidetests/jvmti/run-tests/test-931/Android.bp
index bf11253..dc71784 100644
--- a/hostsidetests/jvmti/run-tests/test-931/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-931/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest931DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-932/Android.bp b/hostsidetests/jvmti/run-tests/test-932/Android.bp
index 424551e..6cbcde6 100644
--- a/hostsidetests/jvmti/run-tests/test-932/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-932/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest932DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-940/Android.bp b/hostsidetests/jvmti/run-tests/test-940/Android.bp
index 385371a..411f7a4 100644
--- a/hostsidetests/jvmti/run-tests/test-940/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-940/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest940DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-942/Android.bp b/hostsidetests/jvmti/run-tests/test-942/Android.bp
index bed04be..781359d 100644
--- a/hostsidetests/jvmti/run-tests/test-942/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-942/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest942DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-944/Android.bp b/hostsidetests/jvmti/run-tests/test-944/Android.bp
index ef75ef1..32aa760 100644
--- a/hostsidetests/jvmti/run-tests/test-944/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-944/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest944DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-945/Android.bp b/hostsidetests/jvmti/run-tests/test-945/Android.bp
index e5ae43f..15116f6 100644
--- a/hostsidetests/jvmti/run-tests/test-945/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-945/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest945DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-947/Android.bp b/hostsidetests/jvmti/run-tests/test-947/Android.bp
index 10b3914..aa04c92 100644
--- a/hostsidetests/jvmti/run-tests/test-947/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-947/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest947DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-951/Android.bp b/hostsidetests/jvmti/run-tests/test-951/Android.bp
index c903e9b..b792132 100644
--- a/hostsidetests/jvmti/run-tests/test-951/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-951/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest951DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-982/Android.bp b/hostsidetests/jvmti/run-tests/test-982/Android.bp
index 2410aa7..ae7370e 100644
--- a/hostsidetests/jvmti/run-tests/test-982/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-982/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest982DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-983/Android.bp b/hostsidetests/jvmti/run-tests/test-983/Android.bp
index 6739b4c..524c38c 100644
--- a/hostsidetests/jvmti/run-tests/test-983/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-983/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest983DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-984/Android.bp b/hostsidetests/jvmti/run-tests/test-984/Android.bp
index 3662e48..272bd95 100644
--- a/hostsidetests/jvmti/run-tests/test-984/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-984/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest984DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-985/Android.bp b/hostsidetests/jvmti/run-tests/test-985/Android.bp
index 934f932..0604119 100644
--- a/hostsidetests/jvmti/run-tests/test-985/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-985/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest985DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-986/Android.bp b/hostsidetests/jvmti/run-tests/test-986/Android.bp
index 278a581..6d06cd8 100644
--- a/hostsidetests/jvmti/run-tests/test-986/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-986/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest986DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-988/Android.bp b/hostsidetests/jvmti/run-tests/test-988/Android.bp
index b5d1d63..249ac75 100644
--- a/hostsidetests/jvmti/run-tests/test-988/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-988/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest988DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-989/Android.bp b/hostsidetests/jvmti/run-tests/test-989/Android.bp
index ea56478..b66c571 100644
--- a/hostsidetests/jvmti/run-tests/test-989/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-989/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest989DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-990/Android.bp b/hostsidetests/jvmti/run-tests/test-990/Android.bp
index 03553cd..bab8e83 100644
--- a/hostsidetests/jvmti/run-tests/test-990/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-990/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest990DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-991/Android.bp b/hostsidetests/jvmti/run-tests/test-991/Android.bp
index 1ce2875..b246007 100644
--- a/hostsidetests/jvmti/run-tests/test-991/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-991/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest991DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-992/Android.bp b/hostsidetests/jvmti/run-tests/test-992/Android.bp
index 9abfe40..55943ff 100644
--- a/hostsidetests/jvmti/run-tests/test-992/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-992/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest992DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-993/Android.bp b/hostsidetests/jvmti/run-tests/test-993/Android.bp
index 47d25d4..3136944 100644
--- a/hostsidetests/jvmti/run-tests/test-993/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-993/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest993DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-994/Android.bp b/hostsidetests/jvmti/run-tests/test-994/Android.bp
index 97df559..be9dcf7 100644
--- a/hostsidetests/jvmti/run-tests/test-994/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-994/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest994DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-995/Android.bp b/hostsidetests/jvmti/run-tests/test-995/Android.bp
index 50d4f24..0d5c0a7 100644
--- a/hostsidetests/jvmti/run-tests/test-995/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-995/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest995DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-996/Android.bp b/hostsidetests/jvmti/run-tests/test-996/Android.bp
index 9dfdeef..88b28df 100644
--- a/hostsidetests/jvmti/run-tests/test-996/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-996/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest996DeviceApp"],
diff --git a/hostsidetests/jvmti/run-tests/test-997/Android.bp b/hostsidetests/jvmti/run-tests/test-997/Android.bp
index 8b1733d..bc35aa7 100644
--- a/hostsidetests/jvmti/run-tests/test-997/Android.bp
+++ b/hostsidetests/jvmti/run-tests/test-997/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiRunTest997DeviceApp"],
diff --git a/hostsidetests/jvmti/tagging/Android.bp b/hostsidetests/jvmti/tagging/Android.bp
index 29b16d3..e1a5925 100644
--- a/hostsidetests/jvmti/tagging/Android.bp
+++ b/hostsidetests/jvmti/tagging/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     data: [":CtsJvmtiTaggingDeviceApp"],
diff --git a/hostsidetests/media/Android.bp b/hostsidetests/media/Android.bp
index b6b1a32..012284a 100644
--- a/hostsidetests/media/Android.bp
+++ b/hostsidetests/media/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 
diff --git a/hostsidetests/media/app/MediaSessionTest/Android.bp b/hostsidetests/media/app/MediaSessionTest/Android.bp
index 3b2e94c..f3ea0d9 100644
--- a/hostsidetests/media/app/MediaSessionTest/Android.bp
+++ b/hostsidetests/media/app/MediaSessionTest/Android.bp
@@ -18,6 +18,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     srcs: [
diff --git a/hostsidetests/media/app/MediaSessionTestHelper/Android.bp b/hostsidetests/media/app/MediaSessionTestHelper/Android.bp
index 8645ab0..4767a94 100644
--- a/hostsidetests/media/app/MediaSessionTestHelper/Android.bp
+++ b/hostsidetests/media/app/MediaSessionTestHelper/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/hostsidetests/media/bitstreams/Android.bp b/hostsidetests/media/bitstreams/Android.bp
index 186a0ef..de7245b 100644
--- a/hostsidetests/media/bitstreams/Android.bp
+++ b/hostsidetests/media/bitstreams/Android.bp
@@ -26,6 +26,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     java_resources: ["DynamicConfig.xml"],
diff --git a/hostsidetests/media/bitstreams/app/Android.bp b/hostsidetests/media/bitstreams/app/Android.bp
index f7e0395..4b302c6 100644
--- a/hostsidetests/media/bitstreams/app/Android.bp
+++ b/hostsidetests/media/bitstreams/app/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/hostsidetests/monkey/Android.bp b/hostsidetests/monkey/Android.bp
index 28b2501..f132c4f 100644
--- a/hostsidetests/monkey/Android.bp
+++ b/hostsidetests/monkey/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/monkey/test-apps/CtsMonkeyApp/Android.bp b/hostsidetests/monkey/test-apps/CtsMonkeyApp/Android.bp
index a3022eb..45b6f39 100644
--- a/hostsidetests/monkey/test-apps/CtsMonkeyApp/Android.bp
+++ b/hostsidetests/monkey/test-apps/CtsMonkeyApp/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/monkey/test-apps/CtsMonkeyApp2/Android.bp b/hostsidetests/monkey/test-apps/CtsMonkeyApp2/Android.bp
index 52c812a..0a7a41c 100644
--- a/hostsidetests/monkey/test-apps/CtsMonkeyApp2/Android.bp
+++ b/hostsidetests/monkey/test-apps/CtsMonkeyApp2/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/multiuser/Android.bp b/hostsidetests/multiuser/Android.bp
index ce653dd..745f725 100644
--- a/hostsidetests/multiuser/Android.bp
+++ b/hostsidetests/multiuser/Android.bp
@@ -27,6 +27,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/net/Android.bp b/hostsidetests/net/Android.bp
index b6f5142..a8cc95b 100644
--- a/hostsidetests/net/Android.bp
+++ b/hostsidetests/net/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/net/app/Android.bp b/hostsidetests/net/app/Android.bp
index e988ea4..8b6d38b 100644
--- a/hostsidetests/net/app/Android.bp
+++ b/hostsidetests/net/app/Android.bp
@@ -36,6 +36,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/net/app2/Android.bp b/hostsidetests/net/app2/Android.bp
index 8a3c8e7..0bb0d2f 100644
--- a/hostsidetests/net/app2/Android.bp
+++ b/hostsidetests/net/app2/Android.bp
@@ -24,6 +24,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     certificate: ":cts-net-app",
diff --git a/hostsidetests/numberblocking/Android.bp b/hostsidetests/numberblocking/Android.bp
index 9c50e44..9f490ee 100644
--- a/hostsidetests/numberblocking/Android.bp
+++ b/hostsidetests/numberblocking/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     libs: [
diff --git a/hostsidetests/numberblocking/app/Android.bp b/hostsidetests/numberblocking/app/Android.bp
index 2716f87..30e76bf 100644
--- a/hostsidetests/numberblocking/app/Android.bp
+++ b/hostsidetests/numberblocking/app/Android.bp
@@ -30,6 +30,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/hostsidetests/os/Android.bp b/hostsidetests/os/Android.bp
index 7bba1bf..155dc7a 100644
--- a/hostsidetests/os/Android.bp
+++ b/hostsidetests/os/Android.bp
@@ -27,6 +27,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/os/app/Android.bp b/hostsidetests/os/app/Android.bp
index f8881a1..129cf34 100644
--- a/hostsidetests/os/app/Android.bp
+++ b/hostsidetests/os/app/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/os/test-apps/HostLinkVerificationApp/Android.bp b/hostsidetests/os/test-apps/HostLinkVerificationApp/Android.bp
index 36f2605..e74e678 100644
--- a/hostsidetests/os/test-apps/HostLinkVerificationApp/Android.bp
+++ b/hostsidetests/os/test-apps/HostLinkVerificationApp/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/os/test-apps/InattentiveSleepTestApp/Android.bp b/hostsidetests/os/test-apps/InattentiveSleepTestApp/Android.bp
index 1f1895d..d3105de 100644
--- a/hostsidetests/os/test-apps/InattentiveSleepTestApp/Android.bp
+++ b/hostsidetests/os/test-apps/InattentiveSleepTestApp/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
         "cts_instant",
     ],
diff --git a/hostsidetests/os/test-apps/PowerManagerTestApp/Android.bp b/hostsidetests/os/test-apps/PowerManagerTestApp/Android.bp
index 502d708..e0bbe58 100644
--- a/hostsidetests/os/test-apps/PowerManagerTestApp/Android.bp
+++ b/hostsidetests/os/test-apps/PowerManagerTestApp/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/os/test-apps/ProcfsTestApp/Android.bp b/hostsidetests/os/test-apps/ProcfsTestApp/Android.bp
index 990a95d..6d070a9 100644
--- a/hostsidetests/os/test-apps/ProcfsTestApp/Android.bp
+++ b/hostsidetests/os/test-apps/ProcfsTestApp/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/os/test-apps/StaticSharedLibConsumerApp1/Android.bp b/hostsidetests/os/test-apps/StaticSharedLibConsumerApp1/Android.bp
index c7d2556..546428c 100644
--- a/hostsidetests/os/test-apps/StaticSharedLibConsumerApp1/Android.bp
+++ b/hostsidetests/os/test-apps/StaticSharedLibConsumerApp1/Android.bp
@@ -27,6 +27,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/os/test-apps/StaticSharedLibConsumerApp2/Android.bp b/hostsidetests/os/test-apps/StaticSharedLibConsumerApp2/Android.bp
index 080fddf..0894b8b 100644
--- a/hostsidetests/os/test-apps/StaticSharedLibConsumerApp2/Android.bp
+++ b/hostsidetests/os/test-apps/StaticSharedLibConsumerApp2/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/os/test-apps/StaticSharedLibConsumerApp3/Android.bp b/hostsidetests/os/test-apps/StaticSharedLibConsumerApp3/Android.bp
index 175f5c4..8c97787 100644
--- a/hostsidetests/os/test-apps/StaticSharedLibConsumerApp3/Android.bp
+++ b/hostsidetests/os/test-apps/StaticSharedLibConsumerApp3/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/os/test-apps/StaticSharedLibProviderApp1/Android.bp b/hostsidetests/os/test-apps/StaticSharedLibProviderApp1/Android.bp
index be8f65d..dd546f0 100644
--- a/hostsidetests/os/test-apps/StaticSharedLibProviderApp1/Android.bp
+++ b/hostsidetests/os/test-apps/StaticSharedLibProviderApp1/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     optimize: {
diff --git a/hostsidetests/os/test-apps/StaticSharedLibProviderApp2/Android.bp b/hostsidetests/os/test-apps/StaticSharedLibProviderApp2/Android.bp
index bc4a2e1..40f19d7 100644
--- a/hostsidetests/os/test-apps/StaticSharedLibProviderApp2/Android.bp
+++ b/hostsidetests/os/test-apps/StaticSharedLibProviderApp2/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     aaptflags: ["--shared-lib"],
diff --git a/hostsidetests/os/test-apps/StaticSharedLibProviderApp3/Android.bp b/hostsidetests/os/test-apps/StaticSharedLibProviderApp3/Android.bp
index e578b5d..3ed4b3c 100644
--- a/hostsidetests/os/test-apps/StaticSharedLibProviderApp3/Android.bp
+++ b/hostsidetests/os/test-apps/StaticSharedLibProviderApp3/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     aaptflags: ["--shared-lib"],
diff --git a/hostsidetests/os/test-apps/StaticSharedLibProviderApp4/Android.bp b/hostsidetests/os/test-apps/StaticSharedLibProviderApp4/Android.bp
index c46e35c..80020d7 100644
--- a/hostsidetests/os/test-apps/StaticSharedLibProviderApp4/Android.bp
+++ b/hostsidetests/os/test-apps/StaticSharedLibProviderApp4/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     optimize: {
diff --git a/hostsidetests/os/test-apps/StaticSharedLibProviderApp5/Android.bp b/hostsidetests/os/test-apps/StaticSharedLibProviderApp5/Android.bp
index a3b5b5b..da1abfa 100644
--- a/hostsidetests/os/test-apps/StaticSharedLibProviderApp5/Android.bp
+++ b/hostsidetests/os/test-apps/StaticSharedLibProviderApp5/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     aaptflags: ["--shared-lib"],
diff --git a/hostsidetests/os/test-apps/StaticSharedLibProviderApp6/Android.bp b/hostsidetests/os/test-apps/StaticSharedLibProviderApp6/Android.bp
index 6d42bb0..65e27c7 100644
--- a/hostsidetests/os/test-apps/StaticSharedLibProviderApp6/Android.bp
+++ b/hostsidetests/os/test-apps/StaticSharedLibProviderApp6/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     aaptflags: ["--shared-lib"],
diff --git a/hostsidetests/os/test-apps/StaticSharedLibProviderApp7/Android.bp b/hostsidetests/os/test-apps/StaticSharedLibProviderApp7/Android.bp
index 1ecd6c4..9124880 100644
--- a/hostsidetests/os/test-apps/StaticSharedLibProviderApp7/Android.bp
+++ b/hostsidetests/os/test-apps/StaticSharedLibProviderApp7/Android.bp
@@ -24,6 +24,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     optimize: {
diff --git a/hostsidetests/os/test-apps/StaticSharedLibProviderAppRecursive/Android.bp b/hostsidetests/os/test-apps/StaticSharedLibProviderAppRecursive/Android.bp
index 88c0fb8..7f7a825 100644
--- a/hostsidetests/os/test-apps/StaticSharedLibProviderAppRecursive/Android.bp
+++ b/hostsidetests/os/test-apps/StaticSharedLibProviderAppRecursive/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     optimize: {
diff --git a/hostsidetests/os/test-apps/StaticSharedNativeLibConsumer/Android.bp b/hostsidetests/os/test-apps/StaticSharedNativeLibConsumer/Android.bp
index 97195fb..1b7bcd5 100644
--- a/hostsidetests/os/test-apps/StaticSharedNativeLibConsumer/Android.bp
+++ b/hostsidetests/os/test-apps/StaticSharedNativeLibConsumer/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/os/test-apps/StaticSharedNativeLibProvider/Android.bp b/hostsidetests/os/test-apps/StaticSharedNativeLibProvider/Android.bp
index 5c6e58a..d42e0e8 100644
--- a/hostsidetests/os/test-apps/StaticSharedNativeLibProvider/Android.bp
+++ b/hostsidetests/os/test-apps/StaticSharedNativeLibProvider/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     optimize: {
diff --git a/hostsidetests/os/test-apps/StaticSharedNativeLibProvider1/Android.bp b/hostsidetests/os/test-apps/StaticSharedNativeLibProvider1/Android.bp
index 8a44700..4592fef 100644
--- a/hostsidetests/os/test-apps/StaticSharedNativeLibProvider1/Android.bp
+++ b/hostsidetests/os/test-apps/StaticSharedNativeLibProvider1/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     optimize: {
diff --git a/hostsidetests/packagemanager/codepath/Android.bp b/hostsidetests/packagemanager/codepath/Android.bp
index 7426f7c..bbb7c10 100644
--- a/hostsidetests/packagemanager/codepath/Android.bp
+++ b/hostsidetests/packagemanager/codepath/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     libs: [
diff --git a/hostsidetests/packagemanager/codepath/app/Android.bp b/hostsidetests/packagemanager/codepath/app/Android.bp
index 40bb86f..a3a7c48 100644
--- a/hostsidetests/packagemanager/codepath/app/Android.bp
+++ b/hostsidetests/packagemanager/codepath/app/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     static_libs: ["androidx.test.rules"],
diff --git a/hostsidetests/packagemanager/dynamicmime/Android.bp b/hostsidetests/packagemanager/dynamicmime/Android.bp
index e23c99a..2b446a6 100644
--- a/hostsidetests/packagemanager/dynamicmime/Android.bp
+++ b/hostsidetests/packagemanager/dynamicmime/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     libs: [
diff --git a/hostsidetests/packagemanager/dynamicmime/app/Android.bp b/hostsidetests/packagemanager/dynamicmime/app/Android.bp
index 1e983e1..b6247ff 100644
--- a/hostsidetests/packagemanager/dynamicmime/app/Android.bp
+++ b/hostsidetests/packagemanager/dynamicmime/app/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
@@ -36,6 +37,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
@@ -51,6 +53,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
@@ -66,6 +69,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
@@ -81,6 +85,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/hostsidetests/packagemanager/dynamicmime/app/src/android/dynamicmime/app/AppMimeGroupsReceiver.java b/hostsidetests/packagemanager/dynamicmime/app/src/android/dynamicmime/app/AppMimeGroupsReceiver.java
index 7c79fef..6ff1cf4 100644
--- a/hostsidetests/packagemanager/dynamicmime/app/src/android/dynamicmime/app/AppMimeGroupsReceiver.java
+++ b/hostsidetests/packagemanager/dynamicmime/app/src/android/dynamicmime/app/AppMimeGroupsReceiver.java
@@ -22,7 +22,6 @@
 import static android.dynamicmime.common.Constants.EXTRA_MIMES;
 import static android.dynamicmime.common.Constants.EXTRA_REQUEST;
 import static android.dynamicmime.common.Constants.EXTRA_RESPONSE;
-import static android.dynamicmime.common.Constants.REQUEST_CLEAR;
 import static android.dynamicmime.common.Constants.REQUEST_GET;
 import static android.dynamicmime.common.Constants.REQUEST_SET;
 
@@ -49,22 +48,25 @@
         int requestCode = intent.getIntExtra(EXTRA_REQUEST, -1);
 
         Intent response = new Intent(ACTION_RESPONSE);
+        try {
+            handleRequest(context, mimeGroup, mimeTypes, requestCode, response);
+            context.sendBroadcast(response);
+        } catch (IllegalArgumentException ignored) {
+        }
+    }
+
+    private void handleRequest(Context context, String mimeGroup, String[] mimeTypes,
+            int requestCode, Intent response) {
         switch (requestCode) {
             case REQUEST_SET:
                 context.getPackageManager().setMimeGroup(mimeGroup, new ArraySet<>(mimeTypes));
                 break;
-            case REQUEST_CLEAR:
-                context.getPackageManager().clearMimeGroup(mimeGroup);
-                break;
             case REQUEST_GET:
                 response.putExtra(EXTRA_RESPONSE, getMimeGroup(context, mimeGroup));
                 break;
             default:
-                //do not respond with broadcast to indicate that something is wrong
-                return;
+                throw new IllegalArgumentException("Unexpected request");
         }
-
-        context.sendBroadcast(response);
     }
 
     private String[] getMimeGroup(Context context, String mimeGroup) {
diff --git a/hostsidetests/packagemanager/dynamicmime/common/src/android/dynamicmime/common/Constants.java b/hostsidetests/packagemanager/dynamicmime/common/src/android/dynamicmime/common/Constants.java
index e3289ce..f827a39 100644
--- a/hostsidetests/packagemanager/dynamicmime/common/src/android/dynamicmime/common/Constants.java
+++ b/hostsidetests/packagemanager/dynamicmime/common/src/android/dynamicmime/common/Constants.java
@@ -28,18 +28,12 @@
     public static final String GROUP_FIRST = "group_first";
     public static final String GROUP_SECOND = "group_second";
     public static final String GROUP_THIRD = "group_third";
-    public static final String GROUP_UNDEFINED = "undefined";
 
     public static final String ALIAS_BOTH_GROUPS = "group_both";
     public static final String ALIAS_BOTH_GROUPS_AND_TYPE = "groups_and_type";
 
-    public static final String[] GROUPS = {
-            GROUP_FIRST, GROUP_SECOND, GROUP_UNDEFINED
-    };
-
-    public static final int REQUEST_CLEAR = 1;
-    public static final int REQUEST_SET = 2;
-    public static final int REQUEST_GET = 3;
+    public static final int REQUEST_SET = 1;
+    public static final int REQUEST_GET = 2;
 
     public static final String MIME_TEXT_PLAIN = "text/plain";
     public static final String MIME_TEXT_XML = "text/xml";
diff --git a/hostsidetests/packagemanager/dynamicmime/src/android/dynamicmime/cts/RebootTestCases.java b/hostsidetests/packagemanager/dynamicmime/src/android/dynamicmime/cts/RebootTestCases.java
index 26ac19f..a26de84 100644
--- a/hostsidetests/packagemanager/dynamicmime/src/android/dynamicmime/cts/RebootTestCases.java
+++ b/hostsidetests/packagemanager/dynamicmime/src/android/dynamicmime/cts/RebootTestCases.java
@@ -106,36 +106,11 @@
     }
 
     @Test
-    public void testResetToEmpty() throws DeviceNotAvailableException {
-        runTestWithReboot("SingleAppTest", "testResetToEmpty");
-    }
-
-    @Test
     public void testClear() throws DeviceNotAvailableException {
         runTestWithReboot("SingleAppTest", "testClear");
     }
 
     @Test
-    public void testUndefinedGroupIsNullAfterAdd() throws DeviceNotAvailableException {
-        runTestWithReboot("SingleAppTest", "testUndefinedGroupIsNullAfterAdd");
-    }
-
-    @Test
-    public void testUndefinedGroupIsNullAfterSet() throws DeviceNotAvailableException {
-        runTestWithReboot("SingleAppTest", "testUndefinedGroupIsNullAfterSet");
-    }
-
-    @Test
-    public void testUndefinedGroupIsNullAfterRemove() throws DeviceNotAvailableException {
-        runTestWithReboot("SingleAppTest", "testUndefinedGroupIsNullAfterRemove");
-    }
-
-    @Test
-    public void testUndefinedGroupIsNullAfterClear() throws DeviceNotAvailableException {
-        runTestWithReboot("SingleAppTest", "testUndefinedGroupIsNullAfterClear");
-    }
-
-    @Test
     public void testDefinedGroupNotNullAfterRemove() throws DeviceNotAvailableException {
         runTestWithReboot("SingleAppTest", "testDefinedGroupNotNullAfterRemove");
     }
@@ -146,16 +121,6 @@
     }
 
     @Test
-    public void testDefinedGroupNotNullAfterSetEmpty() throws DeviceNotAvailableException {
-        runTestWithReboot("SingleAppTest", "testDefinedGroupNotNullAfterSetEmpty");
-    }
-
-    @Test
-    public void testDefinedGroupNotNullAfterSetNull() throws DeviceNotAvailableException {
-        runTestWithReboot("SingleAppTest", "testDefinedGroupNotNullAfterSetNull");
-    }
-
-    @Test
     public void testMimeGroupsIndependentAdd() throws DeviceNotAvailableException {
         runTestWithReboot("SingleAppTest", "testMimeGroupsIndependentAdd");
     }
diff --git a/hostsidetests/packagemanager/dynamicmime/test/Android.bp b/hostsidetests/packagemanager/dynamicmime/test/Android.bp
index 207f050..1f694d5 100644
--- a/hostsidetests/packagemanager/dynamicmime/test/Android.bp
+++ b/hostsidetests/packagemanager/dynamicmime/test/Android.bp
@@ -28,6 +28,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/SingleAppTest.java b/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/SingleAppTest.java
index 84eab63..1cd0a06 100644
--- a/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/SingleAppTest.java
+++ b/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/SingleAppTest.java
@@ -18,7 +18,6 @@
 
 import static android.dynamicmime.common.Constants.GROUP_FIRST;
 import static android.dynamicmime.common.Constants.GROUP_SECOND;
-import static android.dynamicmime.common.Constants.GROUP_UNDEFINED;
 import static android.dynamicmime.common.Constants.MIME_ANY;
 import static android.dynamicmime.common.Constants.MIME_IMAGE_ANY;
 import static android.dynamicmime.common.Constants.MIME_IMAGE_JPEG;
@@ -140,14 +139,6 @@
     }
 
     @Test
-    public void testResetToEmpty() {
-        setMimeGroup(GROUP_FIRST, MIME_TEXT_PLAIN, MIME_TEXT_XML);
-        setMimeGroup(GROUP_FIRST, (String[]) null);
-
-        assertMimeGroupIsEmpty(GROUP_FIRST);
-    }
-
-    @Test
     public void testClear() {
         setMimeGroup(GROUP_FIRST, MIME_TEXT_PLAIN, MIME_IMAGE_PNG);
         clearMimeGroup(GROUP_FIRST);
@@ -156,34 +147,6 @@
     }
 
     @Test
-    public void testUndefinedGroupIsNullAfterAdd() {
-        addMimeTypeToGroup(GROUP_UNDEFINED, MIME_TEXT_PLAIN);
-
-        assertMimeGroupIsNull(GROUP_UNDEFINED);
-    }
-
-    @Test
-    public void testUndefinedGroupIsNullAfterSet() {
-        setMimeGroup(GROUP_UNDEFINED, MIME_TEXT_PLAIN);
-
-        assertMimeGroupIsNull(GROUP_UNDEFINED);
-    }
-
-    @Test
-    public void testUndefinedGroupIsNullAfterRemove() {
-        removeMimeTypeFromGroup(GROUP_UNDEFINED, MIME_TEXT_PLAIN);
-
-        assertMimeGroupIsNull(GROUP_UNDEFINED);
-    }
-
-    @Test
-    public void testUndefinedGroupIsNullAfterClear() {
-        clearMimeGroup(GROUP_UNDEFINED);
-
-        assertMimeGroupIsNull(GROUP_UNDEFINED);
-    }
-
-    @Test
     public void testDefinedGroupNotNullAfterRemove() {
         setMimeGroup(GROUP_FIRST, MIME_TEXT_PLAIN);
         removeMimeTypeFromGroup(GROUP_FIRST, MIME_TEXT_PLAIN);
@@ -200,22 +163,6 @@
     }
 
     @Test
-    public void testDefinedGroupNotNullAfterSetEmpty() {
-        setMimeGroup(GROUP_FIRST, (String[]) null);
-        clearMimeGroup(GROUP_FIRST);
-
-        assertMimeGroupIsEmpty(GROUP_FIRST);
-    }
-
-    @Test
-    public void testDefinedGroupNotNullAfterSetNull() {
-        setMimeGroup(GROUP_FIRST, (String[]) null);
-        clearMimeGroup(GROUP_FIRST);
-
-        assertMimeGroupIsEmpty(GROUP_FIRST);
-    }
-
-    @Test
     public void testMimeGroupsIndependentAdd() {
         addMimeTypeToGroup(GROUP_SECOND, MIME_TEXT_ANY);
 
diff --git a/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/assertions/AppAssertionsByGroupData.java b/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/assertions/AppAssertionsByGroupData.java
index 95eaa12..201b961 100644
--- a/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/assertions/AppAssertionsByGroupData.java
+++ b/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/assertions/AppAssertionsByGroupData.java
@@ -31,7 +31,11 @@
 
     @Override
     protected Set<String> getMimeGroup(String mimeGroup) {
-        String[] mimeTypes = mAppMimeGroups.get(mimeGroup);
-        return mimeTypes != null ? new ArraySet<>(mimeTypes) : null;
+        try {
+            String[] mimeTypes = mAppMimeGroups.get(mimeGroup);
+            return mimeTypes != null ? new ArraySet<>(mimeTypes) : null;
+        } catch (Throwable exception) {
+            return null;
+        }
     }
 }
diff --git a/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/assertions/MimeGroupAssertions.java b/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/assertions/MimeGroupAssertions.java
index 105e6eb..2cdab64 100644
--- a/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/assertions/MimeGroupAssertions.java
+++ b/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/assertions/MimeGroupAssertions.java
@@ -37,7 +37,7 @@
         assertMimeGroupInternal(mimeGroup, Collections.emptySet());
     }
 
-    public final void assertMimeGroupIsNull(String mimeGroup) {
+    public final void assertMimeGroupUndefined(String mimeGroup) {
         assertMimeGroupInternal(mimeGroup, null);
     }
 
diff --git a/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/assertions/TestAppAssertionsByGroupData.java b/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/assertions/TestAppAssertionsByGroupData.java
index 017fa44..8f81d37 100644
--- a/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/assertions/TestAppAssertionsByGroupData.java
+++ b/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/assertions/TestAppAssertionsByGroupData.java
@@ -29,6 +29,10 @@
 
     @Override
     protected Set<String> getMimeGroup(String mimeGroup) {
-        return mContext.getPackageManager().getMimeGroup(mimeGroup);
+        try {
+            return mContext.getPackageManager().getMimeGroup(mimeGroup);
+        } catch (IllegalArgumentException exception) {
+            return null;
+        }
     }
 }
diff --git a/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/commands/AppCommands.java b/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/commands/AppCommands.java
index 83400f4..cb3519b 100644
--- a/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/commands/AppCommands.java
+++ b/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/commands/AppCommands.java
@@ -36,11 +36,6 @@
         mAppMimeGroups.set(mimeGroup, mimeTypes.toArray(new String[0]));
     }
 
-    @Override
-    public void clearMimeGroup(String mimeGroup) {
-        mAppMimeGroups.clear(mimeGroup);
-    }
-
     @Nullable
     @Override
     public Set<String> getMimeGroupInternal(String mimeGroup) {
diff --git a/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/commands/MimeGroupCommands.java b/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/commands/MimeGroupCommands.java
index 27a9cb2..ac00e78 100644
--- a/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/commands/MimeGroupCommands.java
+++ b/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/commands/MimeGroupCommands.java
@@ -19,7 +19,6 @@
 import static android.dynamicmime.common.Constants.GROUP_FIRST;
 import static android.dynamicmime.common.Constants.GROUP_SECOND;
 import static android.dynamicmime.common.Constants.GROUP_THIRD;
-import static android.dynamicmime.common.Constants.GROUP_UNDEFINED;
 import static android.dynamicmime.common.Constants.PACKAGE_HELPER_APP;
 import static android.dynamicmime.common.Constants.PACKAGE_PREFERRED_APP;
 import static android.dynamicmime.common.Constants.PACKAGE_UPDATE_APP;
@@ -29,12 +28,11 @@
 
 import androidx.annotation.Nullable;
 
+import java.util.Collections;
 import java.util.Set;
 
 public interface MimeGroupCommands {
     void setMimeGroup(String mimeGroup, Set<String> mimeTypes);
-    void clearMimeGroup(String mimeGroup);
-
     @Nullable
     Set<String> getMimeGroupInternal(String mimeGroup);
 
@@ -60,11 +58,21 @@
         setMimeGroup(mimeGroup, new ArraySet<>(mimeTypes));
     }
 
+    default void clearMimeGroup(String mimeGroup) {
+        setMimeGroup(mimeGroup, Collections.emptySet());
+    }
+
     default void clearGroups() {
-        clearMimeGroup(GROUP_FIRST);
-        clearMimeGroup(GROUP_SECOND);
-        clearMimeGroup(GROUP_THIRD);
-        clearMimeGroup(GROUP_UNDEFINED);
+        safeClearMimeGroup(GROUP_FIRST);
+        safeClearMimeGroup(GROUP_SECOND);
+        safeClearMimeGroup(GROUP_THIRD);
+    }
+
+    default void safeClearMimeGroup(String mimeGroup) {
+        try {
+            clearMimeGroup(mimeGroup);
+        } catch (Throwable ignored) {
+        }
     }
 
     static MimeGroupCommands testApp(Context context) {
@@ -90,10 +98,6 @@
             }
 
             @Override
-            public void clearMimeGroup(String mimeGroup) {
-            }
-
-            @Override
             public Set<String> getMimeGroupInternal(String mimeGroup) {
                 return null;
             }
diff --git a/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/commands/TestAppCommands.java b/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/commands/TestAppCommands.java
index 82dcb88..650db88 100644
--- a/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/commands/TestAppCommands.java
+++ b/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/commands/TestAppCommands.java
@@ -35,11 +35,6 @@
         mPM.setMimeGroup(mimeGroup, mimeTypes);
     }
 
-    @Override
-    public void clearMimeGroup(String mimeGroup) {
-        mPM.clearMimeGroup(mimeGroup);
-    }
-
     @Nullable
     @Override
     public Set<String> getMimeGroupInternal(String mimeGroup) {
diff --git a/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/update/ChangedGroupsTest.java b/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/update/ChangedGroupsTest.java
index b209699..6c23582 100644
--- a/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/update/ChangedGroupsTest.java
+++ b/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/update/ChangedGroupsTest.java
@@ -20,7 +20,6 @@
 import static android.dynamicmime.common.Constants.APK_SECOND_GROUP;
 import static android.dynamicmime.common.Constants.GROUP_FIRST;
 import static android.dynamicmime.common.Constants.GROUP_SECOND;
-import static android.dynamicmime.common.Constants.GROUP_UNDEFINED;
 import static android.dynamicmime.common.Constants.MIME_TEXT_PLAIN;
 
 import androidx.test.ext.junit.runners.AndroidJUnit4;
@@ -36,14 +35,12 @@
     @Test
     public void testUpdateRemoveEmptyGroup() {
         assertMimeGroupIsEmpty(GROUP_FIRST);
-        assertMimeGroupIsNull(GROUP_SECOND);
-        assertMimeGroupIsNull(GROUP_UNDEFINED);
+        assertMimeGroupUndefined(GROUP_SECOND);
 
         updateApp();
 
-        assertMimeGroupIsNull(GROUP_FIRST);
+        assertMimeGroupUndefined(GROUP_FIRST);
         assertMimeGroupIsEmpty(GROUP_SECOND);
-        assertMimeGroupIsNull(GROUP_UNDEFINED);
     }
 
     @Test
@@ -51,14 +48,12 @@
         setMimeGroup(GROUP_FIRST, MIME_TEXT_PLAIN);
 
         assertMimeGroup(GROUP_FIRST, MIME_TEXT_PLAIN);
-        assertMimeGroupIsNull(GROUP_SECOND);
-        assertMimeGroupIsNull(GROUP_UNDEFINED);
+        assertMimeGroupUndefined(GROUP_SECOND);
 
         updateApp();
 
-        assertMimeGroupIsNull(GROUP_FIRST);
+        assertMimeGroupUndefined(GROUP_FIRST);
         assertMimeGroupIsEmpty(GROUP_SECOND);
-        assertMimeGroupIsNull(GROUP_UNDEFINED);
     }
 
     @Override
diff --git a/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/update/SameGroupsTest.java b/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/update/SameGroupsTest.java
index 0c3349a..2ca6ded 100644
--- a/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/update/SameGroupsTest.java
+++ b/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/update/SameGroupsTest.java
@@ -19,7 +19,6 @@
 import static android.dynamicmime.common.Constants.APK_BOTH_GROUPS;
 import static android.dynamicmime.common.Constants.GROUP_FIRST;
 import static android.dynamicmime.common.Constants.GROUP_SECOND;
-import static android.dynamicmime.common.Constants.GROUP_UNDEFINED;
 import static android.dynamicmime.common.Constants.MIME_TEXT_PLAIN;
 
 import androidx.test.ext.junit.runners.AndroidJUnit4;
@@ -40,7 +39,6 @@
 
         assertMimeGroup(GROUP_FIRST, MIME_TEXT_PLAIN);
         assertMimeGroupIsEmpty(GROUP_SECOND);
-        assertMimeGroupIsNull(GROUP_UNDEFINED);
     }
 
     @Override
diff --git a/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/util/AppMimeGroups.java b/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/util/AppMimeGroups.java
index b034946..09da28e 100644
--- a/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/util/AppMimeGroups.java
+++ b/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/util/AppMimeGroups.java
@@ -22,7 +22,6 @@
 import static android.dynamicmime.common.Constants.EXTRA_MIMES;
 import static android.dynamicmime.common.Constants.EXTRA_REQUEST;
 import static android.dynamicmime.common.Constants.EXTRA_RESPONSE;
-import static android.dynamicmime.common.Constants.REQUEST_CLEAR;
 import static android.dynamicmime.common.Constants.REQUEST_GET;
 import static android.dynamicmime.common.Constants.REQUEST_SET;
 
@@ -57,10 +56,6 @@
         sendRequestAndAwait(mimeGroup, REQUEST_SET, mimeTypes);
     }
 
-    public void clear(String mimeGroup) {
-        sendRequestAndAwait(mimeGroup, REQUEST_CLEAR);
-    }
-
     public String[] get(String mimeGroup) {
         return sendRequestAndAwait(mimeGroup, REQUEST_GET)
                 .getStringArrayExtra(EXTRA_RESPONSE);
@@ -78,10 +73,11 @@
         mContext.sendBroadcast(getRequestIntent(mimeGroup, mimeTypes, request));
 
         Intent response = receiver.awaitForBroadcast(TimeUnit.SECONDS.toMillis(5L));
-        assertNotNull(response);
 
         mContext.unregisterReceiver(receiver);
 
+        assertNotNull(response);
+
         return response;
     }
 
diff --git a/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/util/MimeGroupOperations.java b/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/util/MimeGroupOperations.java
index ebd4cc4..92f32f9 100644
--- a/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/util/MimeGroupOperations.java
+++ b/hostsidetests/packagemanager/dynamicmime/test/src/android/dynamicmime/testapp/util/MimeGroupOperations.java
@@ -56,11 +56,6 @@
         mCommands.setMimeGroup(mimeGroup, mimeTypes);
     }
 
-    @Override
-    public final void clearMimeGroup(String mimeGroup) {
-        mCommands.clearMimeGroup(mimeGroup);
-    }
-
     @Nullable
     @Override
     public Set<String> getMimeGroupInternal(String mimeGroup) {
diff --git a/hostsidetests/packagemanager/extractnativelibs/Android.bp b/hostsidetests/packagemanager/extractnativelibs/Android.bp
index 810312b..b40ed1b 100644
--- a/hostsidetests/packagemanager/extractnativelibs/Android.bp
+++ b/hostsidetests/packagemanager/extractnativelibs/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     libs: [
diff --git a/hostsidetests/packagemanager/extractnativelibs/apps/Android.bp b/hostsidetests/packagemanager/extractnativelibs/apps/Android.bp
index a00bded..71a885c 100644
--- a/hostsidetests/packagemanager/extractnativelibs/apps/Android.bp
+++ b/hostsidetests/packagemanager/extractnativelibs/apps/Android.bp
@@ -33,6 +33,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     jni_libs: [
@@ -52,6 +53,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     jni_libs: [
diff --git a/hostsidetests/sample/Android.bp b/hostsidetests/sample/Android.bp
index 72c1b0d..0cb5a2f 100644
--- a/hostsidetests/sample/Android.bp
+++ b/hostsidetests/sample/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     libs: [
diff --git a/hostsidetests/seccomp/Android.bp b/hostsidetests/seccomp/Android.bp
index cb61ad4..6e3d860 100644
--- a/hostsidetests/seccomp/Android.bp
+++ b/hostsidetests/seccomp/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     libs: [
diff --git a/hostsidetests/seccomp/app/Android.bp b/hostsidetests/seccomp/app/Android.bp
index da78d53..6c10906 100644
--- a/hostsidetests/seccomp/app/Android.bp
+++ b/hostsidetests/seccomp/app/Android.bp
@@ -31,6 +31,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/hostsidetests/security/Android.mk b/hostsidetests/security/Android.mk
index ca991a9..c1dab9f 100644
--- a/hostsidetests/security/Android.mk
+++ b/hostsidetests/security/Android.mk
@@ -21,7 +21,7 @@
 LOCAL_MODULE_TAGS := optional
 
 # tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 # Must match the package name in CtsTestCaseList.mk
 LOCAL_MODULE := CtsSecurityHostTestCases
diff --git a/hostsidetests/securitybulletin/Android.bp b/hostsidetests/securitybulletin/Android.bp
index 71839e6..7e9e5bb 100644
--- a/hostsidetests/securitybulletin/Android.bp
+++ b/hostsidetests/securitybulletin/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
         "sts",
     ],
@@ -51,6 +52,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "sts",
     ],
 }
diff --git a/hostsidetests/securitybulletin/test-apps/launchanywhere/Android.bp b/hostsidetests/securitybulletin/test-apps/launchanywhere/Android.bp
index 6b17058..f77ad0f 100644
--- a/hostsidetests/securitybulletin/test-apps/launchanywhere/Android.bp
+++ b/hostsidetests/securitybulletin/test-apps/launchanywhere/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "sts",
     ],
     optimize: {
diff --git a/hostsidetests/settings/Android.bp b/hostsidetests/settings/Android.bp
index 2355982..96288a2 100644
--- a/hostsidetests/settings/Android.bp
+++ b/hostsidetests/settings/Android.bp
@@ -30,5 +30,6 @@
         "cts",
         "general-tests",
         "vts",
+        "vts10",
     ],
 }
diff --git a/hostsidetests/settings/app/DeviceOwnerApp/Android.bp b/hostsidetests/settings/app/DeviceOwnerApp/Android.bp
index 72e16bd..3b04513 100644
--- a/hostsidetests/settings/app/DeviceOwnerApp/Android.bp
+++ b/hostsidetests/settings/app/DeviceOwnerApp/Android.bp
@@ -39,6 +39,7 @@
         "arcts",
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/shortcuts/deviceside/backup/launcher1/Android.bp b/hostsidetests/shortcuts/deviceside/backup/launcher1/Android.bp
index 8a5bf93..d660c42 100644
--- a/hostsidetests/shortcuts/deviceside/backup/launcher1/Android.bp
+++ b/hostsidetests/shortcuts/deviceside/backup/launcher1/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 
diff --git a/hostsidetests/shortcuts/deviceside/backup/launcher2/Android.bp b/hostsidetests/shortcuts/deviceside/backup/launcher2/Android.bp
index 73b4f75..61bb5be 100644
--- a/hostsidetests/shortcuts/deviceside/backup/launcher2/Android.bp
+++ b/hostsidetests/shortcuts/deviceside/backup/launcher2/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 
diff --git a/hostsidetests/shortcuts/deviceside/backup/launcher3/Android.bp b/hostsidetests/shortcuts/deviceside/backup/launcher3/Android.bp
index 3f2b17c..b9827cc 100644
--- a/hostsidetests/shortcuts/deviceside/backup/launcher3/Android.bp
+++ b/hostsidetests/shortcuts/deviceside/backup/launcher3/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 
diff --git a/hostsidetests/shortcuts/deviceside/backup/launcher4new/Android.bp b/hostsidetests/shortcuts/deviceside/backup/launcher4new/Android.bp
index ee3ca9b..1ec7cb1 100644
--- a/hostsidetests/shortcuts/deviceside/backup/launcher4new/Android.bp
+++ b/hostsidetests/shortcuts/deviceside/backup/launcher4new/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     static_libs: [
diff --git a/hostsidetests/shortcuts/deviceside/backup/launcher4old/Android.bp b/hostsidetests/shortcuts/deviceside/backup/launcher4old/Android.bp
index 22b4be5..c4567d7 100644
--- a/hostsidetests/shortcuts/deviceside/backup/launcher4old/Android.bp
+++ b/hostsidetests/shortcuts/deviceside/backup/launcher4old/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     static_libs: [
diff --git a/hostsidetests/shortcuts/deviceside/backup/publisher1/Android.bp b/hostsidetests/shortcuts/deviceside/backup/publisher1/Android.bp
index f8db411..447dcda 100644
--- a/hostsidetests/shortcuts/deviceside/backup/publisher1/Android.bp
+++ b/hostsidetests/shortcuts/deviceside/backup/publisher1/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     srcs: [
diff --git a/hostsidetests/shortcuts/deviceside/backup/publisher2/Android.bp b/hostsidetests/shortcuts/deviceside/backup/publisher2/Android.bp
index 1b4e96a..13835e1 100644
--- a/hostsidetests/shortcuts/deviceside/backup/publisher2/Android.bp
+++ b/hostsidetests/shortcuts/deviceside/backup/publisher2/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     srcs: [
diff --git a/hostsidetests/shortcuts/deviceside/backup/publisher3/Android.bp b/hostsidetests/shortcuts/deviceside/backup/publisher3/Android.bp
index f473520..2755174 100644
--- a/hostsidetests/shortcuts/deviceside/backup/publisher3/Android.bp
+++ b/hostsidetests/shortcuts/deviceside/backup/publisher3/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 
diff --git a/hostsidetests/shortcuts/deviceside/backup/publisher4new/Android.bp b/hostsidetests/shortcuts/deviceside/backup/publisher4new/Android.bp
index 54fc458..ca2727a 100644
--- a/hostsidetests/shortcuts/deviceside/backup/publisher4new/Android.bp
+++ b/hostsidetests/shortcuts/deviceside/backup/publisher4new/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     static_libs: [
diff --git a/hostsidetests/shortcuts/deviceside/backup/publisher4new_nobackup/Android.bp b/hostsidetests/shortcuts/deviceside/backup/publisher4new_nobackup/Android.bp
index 895d2e6..e3ffea0 100644
--- a/hostsidetests/shortcuts/deviceside/backup/publisher4new_nobackup/Android.bp
+++ b/hostsidetests/shortcuts/deviceside/backup/publisher4new_nobackup/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     static_libs: [
diff --git a/hostsidetests/shortcuts/deviceside/backup/publisher4new_nomanifest/Android.bp b/hostsidetests/shortcuts/deviceside/backup/publisher4new_nomanifest/Android.bp
index 3b739fa..ec977b0 100644
--- a/hostsidetests/shortcuts/deviceside/backup/publisher4new_nomanifest/Android.bp
+++ b/hostsidetests/shortcuts/deviceside/backup/publisher4new_nomanifest/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     static_libs: [
diff --git a/hostsidetests/shortcuts/deviceside/backup/publisher4new_wrongkey/Android.bp b/hostsidetests/shortcuts/deviceside/backup/publisher4new_wrongkey/Android.bp
index ae33f42..09bf008 100644
--- a/hostsidetests/shortcuts/deviceside/backup/publisher4new_wrongkey/Android.bp
+++ b/hostsidetests/shortcuts/deviceside/backup/publisher4new_wrongkey/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     static_libs: [
diff --git a/hostsidetests/shortcuts/deviceside/backup/publisher4old/Android.bp b/hostsidetests/shortcuts/deviceside/backup/publisher4old/Android.bp
index 9906d30..328f5bb 100644
--- a/hostsidetests/shortcuts/deviceside/backup/publisher4old/Android.bp
+++ b/hostsidetests/shortcuts/deviceside/backup/publisher4old/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     static_libs: [
diff --git a/hostsidetests/shortcuts/deviceside/backup/publisher4old_nomanifest/Android.bp b/hostsidetests/shortcuts/deviceside/backup/publisher4old_nomanifest/Android.bp
index ce09a9c..32b185f 100644
--- a/hostsidetests/shortcuts/deviceside/backup/publisher4old_nomanifest/Android.bp
+++ b/hostsidetests/shortcuts/deviceside/backup/publisher4old_nomanifest/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     static_libs: [
diff --git a/hostsidetests/shortcuts/deviceside/multiuser/Android.bp b/hostsidetests/shortcuts/deviceside/multiuser/Android.bp
index d20151e..8eae2a8 100644
--- a/hostsidetests/shortcuts/deviceside/multiuser/Android.bp
+++ b/hostsidetests/shortcuts/deviceside/multiuser/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     srcs: [
diff --git a/hostsidetests/shortcuts/deviceside/upgrade/Android.bp b/hostsidetests/shortcuts/deviceside/upgrade/Android.bp
index f386a71..c94c879 100644
--- a/hostsidetests/shortcuts/deviceside/upgrade/Android.bp
+++ b/hostsidetests/shortcuts/deviceside/upgrade/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     static_libs: [
@@ -42,6 +43,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     srcs: ["src/**/*.java"],
diff --git a/hostsidetests/shortcuts/hostside/Android.bp b/hostsidetests/shortcuts/hostside/Android.bp
index 2188702..62cd1dc 100644
--- a/hostsidetests/shortcuts/hostside/Android.bp
+++ b/hostsidetests/shortcuts/hostside/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/signedconfig/app/Android.bp b/hostsidetests/signedconfig/app/Android.bp
index eb00aa6..6102ed3 100644
--- a/hostsidetests/signedconfig/app/Android.bp
+++ b/hostsidetests/signedconfig/app/Android.bp
@@ -32,6 +32,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -43,6 +44,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -54,6 +56,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -65,6 +68,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -76,6 +80,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -87,6 +92,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -98,6 +104,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -109,6 +116,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -120,6 +128,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -131,6 +140,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -142,6 +152,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/signedconfig/app/build_signedconfig_apk.mk b/hostsidetests/signedconfig/app/build_signedconfig_apk.mk
index 11ffea9..d421a3e 100644
--- a/hostsidetests/signedconfig/app/build_signedconfig_apk.mk
+++ b/hostsidetests/signedconfig/app/build_signedconfig_apk.mk
@@ -17,7 +17,7 @@
 LOCAL_MODULE_PATH = $(TARGET_OUT_DATA_APPS)
 LOCAL_PROGUARD_ENABLED := disabled
 LOCAL_DEX_PREOPT := false
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 LOCAL_SRC_FILES := $(call all-java-files-under, src)
 LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
 include $(BUILD_PACKAGE)
diff --git a/hostsidetests/signedconfig/hostside/Android.bp b/hostsidetests/signedconfig/hostside/Android.bp
index 78c3b48..457f0a8 100644
--- a/hostsidetests/signedconfig/hostside/Android.bp
+++ b/hostsidetests/signedconfig/hostside/Android.bp
@@ -28,6 +28,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/statsd/Android.bp b/hostsidetests/statsd/Android.bp
index ea363e7..3b63310 100644
--- a/hostsidetests/statsd/Android.bp
+++ b/hostsidetests/statsd/Android.bp
@@ -23,6 +23,7 @@
         "general-tests",
         "mts",
         "vts",
+        "vts10",
     ],
 
     libs: [
diff --git a/hostsidetests/statsd/apps/statsdapp/src/com/android/server/cts/device/statsd/AtomTests.java b/hostsidetests/statsd/apps/statsdapp/src/com/android/server/cts/device/statsd/AtomTests.java
index fa74b7f..f112e3c 100644
--- a/hostsidetests/statsd/apps/statsdapp/src/com/android/server/cts/device/statsd/AtomTests.java
+++ b/hostsidetests/statsd/apps/statsdapp/src/com/android/server/cts/device/statsd/AtomTests.java
@@ -180,6 +180,7 @@
         APP_OPS_ENUM_MAP.put(AppOpsManager.OPSTR_LOADER_USAGE_STATS, 95);
         APP_OPS_ENUM_MAP.put(AppOpsManager.OPSTR_ACCESS_CALL_AUDIO, 96);
         APP_OPS_ENUM_MAP.put(AppOpsManager.OPSTR_AUTO_REVOKE_PERMISSIONS_IF_UNUSED, 97);
+        APP_OPS_ENUM_MAP.put(AppOpsManager.OPSTR_AUTO_REVOKE_MANAGED_BY_INSTALLER, 98);
     }
 
     @Test
diff --git a/hostsidetests/statsd/src/android/cts/statsd/atom/AtomTestCase.java b/hostsidetests/statsd/src/android/cts/statsd/atom/AtomTestCase.java
index 4ec6142..4a3d017 100644
--- a/hostsidetests/statsd/src/android/cts/statsd/atom/AtomTestCase.java
+++ b/hostsidetests/statsd/src/android/cts/statsd/atom/AtomTestCase.java
@@ -192,7 +192,8 @@
      */
     protected boolean isSystemTracingEnabled() throws Exception {
         final String path = "/sys/kernel/debug/tracing/tracing_on";
-        String tracing_on = getDevice().executeShellCommand("cat " + path);
+        String tracing_on = getDevice().executeShellCommand("if [ -e " + path + " ] ; then"
+                + " cat " + path + " ; else echo 0 ; fi");
         if (tracing_on.startsWith("0"))
             return false;
         if (tracing_on.startsWith("1"))
diff --git a/hostsidetests/sustainedperf/Android.mk b/hostsidetests/sustainedperf/Android.mk
index 745a0b4..64405f3 100644
--- a/hostsidetests/sustainedperf/Android.mk
+++ b/hostsidetests/sustainedperf/Android.mk
@@ -21,7 +21,7 @@
 LOCAL_MODULE_TAGS := tests
 
 # tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 LOCAL_MODULE := CtsSustainedPerformanceHostTestCases
 LOCAL_JAVA_LIBRARIES := cts-tradefed tradefed compatibility-host-util
diff --git a/hostsidetests/sustainedperf/app/Android.mk b/hostsidetests/sustainedperf/app/Android.mk
index f995837..a0e5dd8 100644
--- a/hostsidetests/sustainedperf/app/Android.mk
+++ b/hostsidetests/sustainedperf/app/Android.mk
@@ -28,7 +28,7 @@
 LOCAL_SRC_FILES := $(call all-java-files-under, src)
 
 # tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 LOCAL_PACKAGE_NAME := CtsSustainedPerformanceDeviceTestApp
 
diff --git a/hostsidetests/sustainedperf/dhrystone/Android.mk b/hostsidetests/sustainedperf/dhrystone/Android.mk
index 8645318..f6ff080 100644
--- a/hostsidetests/sustainedperf/dhrystone/Android.mk
+++ b/hostsidetests/sustainedperf/dhrystone/Android.mk
@@ -15,5 +15,5 @@
 LOCAL_MULTILIB := both
 LOCAL_MODULE_STEM_32 := $(LOCAL_MODULE)32
 LOCAL_MODULE_STEM_64 := $(LOCAL_MODULE)64
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 include $(BUILD_EXECUTABLE)
diff --git a/hostsidetests/sustainedperf/shadertoy_android/Android.mk b/hostsidetests/sustainedperf/shadertoy_android/Android.mk
index 190ce5d..a6698e7 100644
--- a/hostsidetests/sustainedperf/shadertoy_android/Android.mk
+++ b/hostsidetests/sustainedperf/shadertoy_android/Android.mk
@@ -34,6 +34,6 @@
 LOCAL_MIN_SDK_VERSION := 5
 
 # Tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 include $(BUILD_PACKAGE)
 include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/hostsidetests/systemui/Android.bp b/hostsidetests/systemui/Android.bp
index f263446..6123e2f 100644
--- a/hostsidetests/systemui/Android.bp
+++ b/hostsidetests/systemui/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/systemui/app/Android.bp b/hostsidetests/systemui/app/Android.bp
index 7083b80..593ada9 100644
--- a/hostsidetests/systemui/app/Android.bp
+++ b/hostsidetests/systemui/app/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/hostsidetests/systemui/audiorecorder_app_audiorecord/Android.bp b/hostsidetests/systemui/audiorecorder_app_audiorecord/Android.bp
index c4848e8..c854520 100644
--- a/hostsidetests/systemui/audiorecorder_app_audiorecord/Android.bp
+++ b/hostsidetests/systemui/audiorecorder_app_audiorecord/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/hostsidetests/systemui/audiorecorder_app_mediarecorder/Android.bp b/hostsidetests/systemui/audiorecorder_app_mediarecorder/Android.bp
index bc1cb75..1502245 100644
--- a/hostsidetests/systemui/audiorecorder_app_mediarecorder/Android.bp
+++ b/hostsidetests/systemui/audiorecorder_app_mediarecorder/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/hostsidetests/telephonyprovider/Android.bp b/hostsidetests/telephonyprovider/Android.bp
index 0774c96..8e4a427 100644
--- a/hostsidetests/telephonyprovider/Android.bp
+++ b/hostsidetests/telephonyprovider/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     libs: [
diff --git a/hostsidetests/telephonyprovider/devicetest/Android.bp b/hostsidetests/telephonyprovider/devicetest/Android.bp
index 3424436..591b7da 100644
--- a/hostsidetests/telephonyprovider/devicetest/Android.bp
+++ b/hostsidetests/telephonyprovider/devicetest/Android.bp
@@ -31,6 +31,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/testharness/Android.bp b/hostsidetests/testharness/Android.bp
index f9534f2..c931ed4 100644
--- a/hostsidetests/testharness/Android.bp
+++ b/hostsidetests/testharness/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     libs: [
diff --git a/hostsidetests/testharness/app/Android.bp b/hostsidetests/testharness/app/Android.bp
index 7dda2aa..da7f5d2 100644
--- a/hostsidetests/testharness/app/Android.bp
+++ b/hostsidetests/testharness/app/Android.bp
@@ -32,6 +32,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/hostsidetests/theme/Android.mk b/hostsidetests/theme/Android.mk
index 19d5033..1533d20 100644
--- a/hostsidetests/theme/Android.mk
+++ b/hostsidetests/theme/Android.mk
@@ -39,7 +39,7 @@
 LOCAL_SDK_VERSION := current
 
 # Tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10
 
 include $(BUILD_CTS_HOST_JAVA_LIBRARY)
 
diff --git a/hostsidetests/theme/app/Android.bp b/hostsidetests/theme/app/Android.bp
index 5ad776d..c66ba67 100644
--- a/hostsidetests/theme/app/Android.bp
+++ b/hostsidetests/theme/app/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/hostsidetests/trustedvoice/Android.bp b/hostsidetests/trustedvoice/Android.bp
index 8394d6d..4082a8f 100644
--- a/hostsidetests/trustedvoice/Android.bp
+++ b/hostsidetests/trustedvoice/Android.bp
@@ -26,6 +26,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/trustedvoice/app/Android.bp b/hostsidetests/trustedvoice/app/Android.bp
index 3841b80..00aefe3 100644
--- a/hostsidetests/trustedvoice/app/Android.bp
+++ b/hostsidetests/trustedvoice/app/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/hostsidetests/tv/Android.bp b/hostsidetests/tv/Android.bp
index 01d598fe..5b50cc4 100644
--- a/hostsidetests/tv/Android.bp
+++ b/hostsidetests/tv/Android.bp
@@ -26,6 +26,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/tv/app/Android.bp b/hostsidetests/tv/app/Android.bp
index b6151be..2993dab 100644
--- a/hostsidetests/tv/app/Android.bp
+++ b/hostsidetests/tv/app/Android.bp
@@ -33,6 +33,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/tv/app2/Android.bp b/hostsidetests/tv/app2/Android.bp
index e8d31f7..9b8d4e2 100644
--- a/hostsidetests/tv/app2/Android.bp
+++ b/hostsidetests/tv/app2/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     srcs: ["src/**/*.java"],
diff --git a/hostsidetests/tzdata/Android.bp b/hostsidetests/tzdata/Android.bp
index cec8a3b..cb5540b 100644
--- a/hostsidetests/tzdata/Android.bp
+++ b/hostsidetests/tzdata/Android.bp
@@ -27,6 +27,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/ui/appA/Android.bp b/hostsidetests/ui/appA/Android.bp
index 9b92163..817acfa 100644
--- a/hostsidetests/ui/appA/Android.bp
+++ b/hostsidetests/ui/appA/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/hostsidetests/ui/appB/Android.bp b/hostsidetests/ui/appB/Android.bp
index 60f5853..204ac25 100644
--- a/hostsidetests/ui/appB/Android.bp
+++ b/hostsidetests/ui/appB/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/hostsidetests/ui/control/Android.bp b/hostsidetests/ui/control/Android.bp
index 4ff73a0..326eba3 100644
--- a/hostsidetests/ui/control/Android.bp
+++ b/hostsidetests/ui/control/Android.bp
@@ -28,6 +28,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/hostsidetests/usage/Android.bp b/hostsidetests/usage/Android.bp
index 5ebeb54..64ede38 100644
--- a/hostsidetests/usage/Android.bp
+++ b/hostsidetests/usage/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/usage/app/Android.bp b/hostsidetests/usage/app/Android.bp
index 48a30d9..79638ae 100644
--- a/hostsidetests/usage/app/Android.bp
+++ b/hostsidetests/usage/app/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -36,6 +37,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     aaptflags: [
diff --git a/hostsidetests/usb/Android.bp b/hostsidetests/usb/Android.bp
index b2b4f4d..ca90a53 100644
--- a/hostsidetests/usb/Android.bp
+++ b/hostsidetests/usb/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/usb/SerialTestApp/Android.bp b/hostsidetests/usb/SerialTestApp/Android.bp
index eeb7d6e..f0166b6 100644
--- a/hostsidetests/usb/SerialTestApp/Android.bp
+++ b/hostsidetests/usb/SerialTestApp/Android.bp
@@ -27,6 +27,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/userspacereboot/TEST_MAPPING b/hostsidetests/userspacereboot/TEST_MAPPING
index e066051..d0a1adb 100644
--- a/hostsidetests/userspacereboot/TEST_MAPPING
+++ b/hostsidetests/userspacereboot/TEST_MAPPING
@@ -4,10 +4,5 @@
       "name": "CtsUserspaceRebootHostSideTestCases",
       "keywords": ["primary-device"]
     }
-  ],
-  "postsubmit": [
-    {
-      "name": "CtsUserspaceRebootHostSideTestCases"
-    }
   ]
 }
diff --git a/hostsidetests/userspacereboot/src/com/android/cts/userspacereboot/host/UserspaceRebootHostTest.java b/hostsidetests/userspacereboot/src/com/android/cts/userspacereboot/host/UserspaceRebootHostTest.java
index b5fbff1..47b42fc 100644
--- a/hostsidetests/userspacereboot/src/com/android/cts/userspacereboot/host/UserspaceRebootHostTest.java
+++ b/hostsidetests/userspacereboot/src/com/android/cts/userspacereboot/host/UserspaceRebootHostTest.java
@@ -34,6 +34,9 @@
 
 import java.time.Duration;
 
+/**
+ * Host side CTS tests verifying userspace reboot functionality.
+ */
 @RunWith(DeviceJUnit4ClassRunner.class)
 public class UserspaceRebootHostTest extends BaseHostJUnit4Test  {
 
@@ -64,18 +67,34 @@
         getDevice().uninstallPackage(BOOT_COMPLETED_TEST_APP_PACKAGE_NAME);
     }
 
+    /**
+     * Asserts that only file-based encrypted devices can support userspace reboot.
+     */
     @Test
     public void testOnlyFbeDevicesSupportUserspaceReboot() throws Exception {
         assumeTrue("Userspace reboot not supported on the device",
                 getDevice().getBooleanProperty(USERSPACE_REBOOT_SUPPORTED_PROP, false));
-        installApk(BASIC_TEST_APP_APK);
         assertThat(getDevice().getProperty("ro.crypto.state")).isEqualTo("encrypted");
         assertThat(getDevice().getProperty("ro.crypto.type")).isEqualTo("file");
-        // Also verify that PowerManager.isRebootingUserspaceSupported will return true
+    }
+
+    /**
+     * Tests that on devices supporting userspace reboot {@code
+     * PowerManager.isRebootingUserspaceSupported()} returns {@code true}.
+     */
+    @Test
+    public void testDeviceSupportsUserspaceReboot() throws Exception {
+        assumeTrue("Userspace reboot not supported on the device",
+                getDevice().getBooleanProperty(USERSPACE_REBOOT_SUPPORTED_PROP, false));
+        installApk(BASIC_TEST_APP_APK);
         runDeviceTest(BASIC_TEST_APP_PACKAGE_NAME, "BasicUserspaceRebootTest",
                 "testUserspaceRebootIsSupported");
     }
 
+    /**
+     * Tests that on devices not supporting userspace reboot {@code
+     * PowerManager.isRebootingUserspaceSupported()} returns {@code false}.
+     */
     @Test
     public void testDeviceDoesNotSupportUserspaceReboot() throws Exception {
         assumeFalse("Userspace reboot supported on the device",
@@ -86,6 +105,9 @@
                 "testUserspaceRebootIsNotSupported");
     }
 
+    /**
+     * Tests that userspace reboot succeeds and doesn't fall back to full reboot.
+     */
     @Test
     public void testUserspaceReboot() throws Exception {
         assumeTrue("Userspace reboot not supported on the device",
@@ -94,6 +116,10 @@
         assertUserspaceRebootSucceed();
     }
 
+    /**
+     * Tests that userspace reboot with fs-checkpointing succeeds and doesn't fall back to full
+     * reboot.
+     */
     @Test
     public void testUserspaceRebootWithCheckpoint() throws Exception {
         assumeTrue("Userspace reboot not supported on the device",
@@ -107,7 +133,9 @@
         assertUserspaceRebootSucceed();
     }
 
-    // TODO(ioffe): this should also cover other lock scenarios.
+    /**
+     * Tests that CE storage is unlocked after userspace reboot.
+     */
     @Test
     public void testUserspaceReboot_verifyCeStorageIsUnlocked() throws Exception {
         assumeTrue("Userspace reboot not supported on the device",
@@ -131,22 +159,43 @@
         }
     }
 
+    /**
+     * Tests that CE storage is unlocked after userspace reboot with fs-checkpointing.
+     */
     @Test
-    public void testBootReasonProperty_shutdown_aborted() throws Exception {
-        getDevice().reboot("userspace_failed,shutdown_aborted");
-        assertThat(getDevice().getProperty("sys.boot.reason")).isEqualTo(
-                "reboot,userspace_failed,shutdown_aborted");
-    }
-
-    @Test
-    public void testBootReasonProperty_mount_userdata_failed() throws Exception {
-        getDevice().reboot("mount_userdata_failed");
-        assertThat(getDevice().getProperty("sys.boot.reason")).isEqualTo(
-                "reboot,mount_userdata_failed");
+    public void testUserspaceRebootWithCheckpoint_verifyCeStorageIsUnlocked() throws Exception {
+        assumeTrue("Userspace reboot not supported on the device",
+                getDevice().getBooleanProperty(USERSPACE_REBOOT_SUPPORTED_PROP, false));
+        assumeTrue("Device doesn't support fs checkpointing", isFsCheckpointingSupported());
+        try {
+            CommandResult result = getDevice().executeShellV2Command("sm start-checkpoint 1");
+            Thread.sleep(500);
+            assertWithMessage("Failed to start checkpoint : %s", result.getStderr()).that(
+                    result.getStatus()).isEqualTo(CommandStatus.SUCCESS);
+            rebootUserspaceAndWaitForBootComplete();
+            getDevice().executeShellV2Command("cmd lock_settings set-pin 1543");
+            installApk(BOOT_COMPLETED_TEST_APP_APK);
+            runDeviceTest(BOOT_COMPLETED_TEST_APP_PACKAGE_NAME, "BootCompletedUserspaceRebootTest",
+                    "prepareFile");
+            rebootUserspaceAndWaitForBootComplete();
+            assertUserspaceRebootSucceed();
+            // Sleep for 30s to make sure that system_server has sent out BOOT_COMPLETED broadcast.
+            Thread.sleep(Duration.ofSeconds(30).toMillis());
+            getDevice().executeShellV2Command("am wait-for-broadcast-idle");
+            runDeviceTest(BOOT_COMPLETED_TEST_APP_PACKAGE_NAME, "BootCompletedUserspaceRebootTest",
+                    "testVerifyCeStorageUnlocked");
+            runDeviceTest(BOOT_COMPLETED_TEST_APP_PACKAGE_NAME, "BootCompletedUserspaceRebootTest",
+                    "testVerifyReceivedBootCompletedBroadcast");
+        } finally {
+            getDevice().executeShellV2Command("cmd lock_settings clear --old 1543");
+        }
     }
 
     // TODO(b/135984674): add test case that forces unmount of f2fs userdata.
 
+    /**
+     * Returns {@code true} if device supports fs-checkpointing.
+     */
     private boolean isFsCheckpointingSupported() throws Exception {
         CommandResult result = getDevice().executeShellV2Command("sm supports-checkpoint");
         assertWithMessage("Failed to check if fs checkpointing is supported : %s",
@@ -154,13 +203,24 @@
         return "true".equals(result.getStdout().trim());
     }
 
+    /**
+     * Reboots a device and waits for the boot to complete.
+     *
+     * <p>Before rebooting, sets a value of sysprop {@code test.userspace_reboot.requested} to 1.
+     * Querying this property is then used in {@link #assertUserspaceRebootSucceed()} to assert that
+     * userspace reboot succeeded.
+     */
     private void rebootUserspaceAndWaitForBootComplete() throws Exception {
-        assertThat(getDevice().setProperty("test.userspace_reboot.requested", "1")).isTrue();
+        setProperty("test.userspace_reboot.requested", "1");
         getDevice().rebootUserspaceUntilOnline();
         assertWithMessage("Device did not boot withing 2 minutes").that(
                 getDevice().waitForBootComplete(Duration.ofMinutes(2).toMillis())).isTrue();
     }
 
+    /**
+     * Asserts that userspace reboot succeeded by querying the value of {@code
+     * test.userspace_reboot.requested} property.
+     */
     private void assertUserspaceRebootSucceed() throws Exception {
         // If userspace reboot fails and fallback to hard reboot is triggered then
         // test.userspace_reboot.requested won't be set.
@@ -171,4 +231,17 @@
                 "Userspace reboot failed and fallback to full reboot was triggered. Boot reason: "
                         + "%s", bootReason).that(result).isTrue();
     }
+
+    /**
+     * A wrapper over {@code adb shell setprop name value}.
+     *
+     * This is a temporary workaround until issues with {@code getDevice().setProperty()} API are
+     * resolved.
+     */
+    private void setProperty(String name, String value) throws Exception {
+        final String cmd = String.format("\"setprop %s %s\"", name, value);
+        final CommandResult result = getDevice().executeShellV2Command(cmd);
+        assertWithMessage("Failed to call adb shell %s: %s", cmd, result.getStderr())
+            .that(result.getStatus()).isEqualTo(CommandStatus.SUCCESS);
+    }
 }
diff --git a/hostsidetests/userspacereboot/testapps/BasicTestApp/src/com/android/cts/userspacereboot/basic/BasicUserspaceRebootTest.java b/hostsidetests/userspacereboot/testapps/BasicTestApp/src/com/android/cts/userspacereboot/basic/BasicUserspaceRebootTest.java
index f4616c2..7867c46 100644
--- a/hostsidetests/userspacereboot/testapps/BasicTestApp/src/com/android/cts/userspacereboot/basic/BasicUserspaceRebootTest.java
+++ b/hostsidetests/userspacereboot/testapps/BasicTestApp/src/com/android/cts/userspacereboot/basic/BasicUserspaceRebootTest.java
@@ -29,17 +29,27 @@
 import org.junit.runner.RunWith;
 import org.junit.runners.JUnit4;
 
+/**
+ * A test app called from {@link com.android.cts.userspacereboot.host.UserspaceRebootHostTest} to
+ * verify basic properties around userspace reboot.
+ */
 @RunWith(JUnit4.class)
 public class BasicUserspaceRebootTest {
 
     private final Context mContext = InstrumentationRegistry.getInstrumentation().getContext();
 
+    /**
+     * Tests that {@link PowerManager#isRebootingUserspaceSupported()} returns {@code true}.
+     */
     @Test
     public void testUserspaceRebootIsSupported() {
         PowerManager powerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
         assertThat(powerManager.isRebootingUserspaceSupported()).isTrue();
     }
 
+    /**
+     * Tests that {@link PowerManager#isRebootingUserspaceSupported()} returns {@code false}.
+     */
     @Test
     public void testUserspaceRebootIsNotSupported() {
         PowerManager powerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
diff --git a/hostsidetests/userspacereboot/testapps/BootCompletedTestApp/src/com/android/cts/userspacereboot/bootcompleted/BootCompletedUserspaceRebootTest.java b/hostsidetests/userspacereboot/testapps/BootCompletedTestApp/src/com/android/cts/userspacereboot/bootcompleted/BootCompletedUserspaceRebootTest.java
index 8bb86ce..bfd8773 100644
--- a/hostsidetests/userspacereboot/testapps/BootCompletedTestApp/src/com/android/cts/userspacereboot/bootcompleted/BootCompletedUserspaceRebootTest.java
+++ b/hostsidetests/userspacereboot/testapps/BootCompletedTestApp/src/com/android/cts/userspacereboot/bootcompleted/BootCompletedUserspaceRebootTest.java
@@ -35,6 +35,10 @@
 import java.io.PrintWriter;
 import java.util.Scanner;
 
+/**
+ * A test app called from {@link com.android.cts.userspacereboot.host.UserspaceRebootHostTest} to
+ * verify CE storage related properties of userspace reboot.
+ */
 @RunWith(JUnit4.class)
 public class BootCompletedUserspaceRebootTest {
 
@@ -50,6 +54,12 @@
     private final Context mDeContext =
             getInstrumentation().getContext().createDeviceProtectedStorageContext();
 
+    /**
+     * Writes to a file in CE storage of {@link BootCompletedUserspaceRebootTest}.
+     *
+     * <p>Reading content of this file is used by other test cases in this class to verify that CE
+     * storage is unlocked after userspace reboot.
+     */
     @Test
     public void prepareFile() throws Exception {
         try (OutputStreamWriter writer = new OutputStreamWriter(
@@ -58,6 +68,9 @@
         }
     }
 
+    /**
+     * Tests that CE storage is unlocked by reading content of a file in CE storage.
+     */
     @Test
     public void testVerifyCeStorageUnlocked() throws Exception {
         UserManager um = getInstrumentation().getContext().getSystemService(UserManager.class);
@@ -68,6 +81,10 @@
         }
     }
 
+    /**
+     * Tests that {@link BootCompletedUserspaceRebootTest} received a {@link
+     * Intent.ACTION_BOOT_COMPLETED} broadcast.
+     */
     @Test
     public void testVerifyReceivedBootCompletedBroadcast() throws Exception {
         try (Scanner scanner = new Scanner(mDeContext.openFileInput(RECEIVED_BROADCASTS_FILE))) {
@@ -76,6 +93,9 @@
         }
     }
 
+    /**
+     * Receiver of {@link Intent.ACTION_BOOT_COMPLETED} broadcast.
+     */
     public static class BootReceiver extends BroadcastReceiver {
 
         @Override
diff --git a/hostsidetests/userspacereboot/testapps/BootCompletedTestApp/src/com/android/cts/userspacereboot/bootcompleted/LauncherActivity.java b/hostsidetests/userspacereboot/testapps/BootCompletedTestApp/src/com/android/cts/userspacereboot/bootcompleted/LauncherActivity.java
index abaca60..4d5d3b0 100644
--- a/hostsidetests/userspacereboot/testapps/BootCompletedTestApp/src/com/android/cts/userspacereboot/bootcompleted/LauncherActivity.java
+++ b/hostsidetests/userspacereboot/testapps/BootCompletedTestApp/src/com/android/cts/userspacereboot/bootcompleted/LauncherActivity.java
@@ -18,5 +18,8 @@
 
 import android.app.Activity;
 
+/**
+ * An empty launcher activity.
+ */
 public class LauncherActivity extends Activity {
 }
diff --git a/hostsidetests/webkit/Android.bp b/hostsidetests/webkit/Android.bp
index 2dfbbb3..f0149e3 100644
--- a/hostsidetests/webkit/Android.bp
+++ b/hostsidetests/webkit/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/webkit/app/Android.bp b/hostsidetests/webkit/app/Android.bp
index b2ed224..1949937 100644
--- a/hostsidetests/webkit/app/Android.bp
+++ b/hostsidetests/webkit/app/Android.bp
@@ -34,6 +34,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/hostsidetests/wifibroadcasts/Android.bp b/hostsidetests/wifibroadcasts/Android.bp
index fd79d57..680e585 100644
--- a/hostsidetests/wifibroadcasts/Android.bp
+++ b/hostsidetests/wifibroadcasts/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     libs: [
diff --git a/hostsidetests/wifibroadcasts/app/Android.bp b/hostsidetests/wifibroadcasts/app/Android.bp
index 7cc4c92..c2d2e46 100644
--- a/hostsidetests/wifibroadcasts/app/Android.bp
+++ b/hostsidetests/wifibroadcasts/app/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/tests/AlarmManager/Android.bp b/tests/AlarmManager/Android.bp
index 7eef6a4..431c1aa 100644
--- a/tests/AlarmManager/Android.bp
+++ b/tests/AlarmManager/Android.bp
@@ -27,6 +27,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     platform_apis: true,
diff --git a/tests/AlarmManager/app/Android.bp b/tests/AlarmManager/app/Android.bp
index 8843ed8..251ca91 100644
--- a/tests/AlarmManager/app/Android.bp
+++ b/tests/AlarmManager/app/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     srcs: ["src/**/*.java"],
diff --git a/tests/BlobStore/Android.bp b/tests/BlobStore/Android.bp
index 5bd782a..c6107aa 100644
--- a/tests/BlobStore/Android.bp
+++ b/tests/BlobStore/Android.bp
@@ -31,6 +31,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current"
@@ -51,6 +52,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests"
     ],
     manifest: "helper-app/AndroidManifest.xml",
@@ -72,6 +74,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     manifest: "helper-app/AndroidManifest.xml",
@@ -97,6 +100,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     manifest: "helper-app/AndroidManifest.xml",
diff --git a/tests/BlobStore/helper-app/src/com/android/cts/blob/helper/BlobStoreTestService.java b/tests/BlobStore/helper-app/src/com/android/cts/blob/helper/BlobStoreTestService.java
index 5f3547d..a29fe58 100644
--- a/tests/BlobStore/helper-app/src/com/android/cts/blob/helper/BlobStoreTestService.java
+++ b/tests/BlobStore/helper-app/src/com/android/cts/blob/helper/BlobStoreTestService.java
@@ -29,6 +29,7 @@
 import android.content.Intent;
 import android.content.pm.PackageManager.NameNotFoundException;
 import android.os.IBinder;
+import android.os.LimitExceededException;
 import android.os.Parcel;
 import android.os.ParcelFileDescriptor;
 import android.os.Process;
@@ -103,7 +104,7 @@
             try {
                 Utils.acquireLease(BlobStoreTestService.this, blobHandle, "Test description");
                 assertThat(blobStoreManager.getLeasedBlobs()).contains(blobHandle);
-            } catch (IOException e) {
+            } catch (IOException | LimitExceededException e) {
                 throw new IllegalStateException(e);
             }
         }
diff --git a/tests/DropBoxManager/Android.bp b/tests/DropBoxManager/Android.bp
index 1bedb05..d19ce59 100644
--- a/tests/DropBoxManager/Android.bp
+++ b/tests/DropBoxManager/Android.bp
@@ -24,6 +24,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     platform_apis: true,
diff --git a/tests/JobScheduler/Android.bp b/tests/JobScheduler/Android.bp
index 9869c74..75dba68 100644
--- a/tests/JobScheduler/Android.bp
+++ b/tests/JobScheduler/Android.bp
@@ -19,6 +19,7 @@
         "compatibility-device-util-axt",
         "ub-uiautomator",
         "androidx.test.rules",
+        "cts-wm-util",
     ],
     libs: ["android.test.base.stubs"],
     srcs: [
@@ -29,6 +30,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     // sdk_version: "current",
diff --git a/tests/JobScheduler/JobTestApp/Android.bp b/tests/JobScheduler/JobTestApp/Android.bp
index 7c1df7e..6f15db6 100644
--- a/tests/JobScheduler/JobTestApp/Android.bp
+++ b/tests/JobScheduler/JobTestApp/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/tests/JobScheduler/src/android/jobscheduler/cts/JobThrottlingTest.java b/tests/JobScheduler/src/android/jobscheduler/cts/JobThrottlingTest.java
index effabb7..ec9df07 100644
--- a/tests/JobScheduler/src/android/jobscheduler/cts/JobThrottlingTest.java
+++ b/tests/JobScheduler/src/android/jobscheduler/cts/JobThrottlingTest.java
@@ -69,7 +69,7 @@
     private static final String TAG = JobThrottlingTest.class.getSimpleName();
     private static final long BACKGROUND_JOBS_EXPECTED_DELAY = 3_000;
     private static final long POLL_INTERVAL = 500;
-    private static final long DEFAULT_WAIT_TIMEOUT = 1000;
+    private static final long DEFAULT_WAIT_TIMEOUT = 2000;
     private static final long SHELL_TIMEOUT = 3_000;
 
     enum Bucket {
@@ -84,6 +84,7 @@
     private Context mContext;
     private UiDevice mUiDevice;
     private PowerManager mPowerManager;
+    private int mTestJobId;
     private int mTestPackageUid;
     private boolean mDeviceInDoze;
     private boolean mDeviceIdleEnabled;
@@ -127,8 +128,8 @@
         mPowerManager = mContext.getSystemService(PowerManager.class);
         mDeviceInDoze = mPowerManager.isDeviceIdleMode();
         mTestPackageUid = mContext.getPackageManager().getPackageUid(TEST_APP_PACKAGE, 0);
-        int testJobId = (int) (SystemClock.uptimeMillis() / 1000);
-        mTestAppInterface = new TestAppInterface(mContext, testJobId);
+        mTestJobId = (int) (SystemClock.uptimeMillis() / 1000);
+        mTestAppInterface = new TestAppInterface(mContext, mTestJobId);
         final IntentFilter intentFilter = new IntentFilter();
         intentFilter.addAction(ACTION_DEVICE_IDLE_MODE_CHANGED);
         intentFilter.addAction(ACTION_LIGHT_DEVICE_IDLE_MODE_CHANGED);
@@ -173,6 +174,7 @@
         assumeTrue("device idle not enabled", mDeviceIdleEnabled);
 
         sendScheduleJobBroadcast(false);
+        runJob();
         assertTrue("Job did not start after scheduling",
                 mTestAppInterface.awaitJobStart(DEFAULT_WAIT_TIMEOUT));
         toggleDeviceIdleState(true);
@@ -190,6 +192,7 @@
         assumeTrue("device idle not enabled", mDeviceIdleEnabled);
 
         sendScheduleJobBroadcast(false);
+        runJob();
         assertTrue("Job did not start after scheduling",
                 mTestAppInterface.awaitJobStart(DEFAULT_WAIT_TIMEOUT));
         toggleDeviceIdleState(true);
@@ -208,6 +211,7 @@
     @Test
     public void testJobStoppedWhenRestricted() throws Exception {
         sendScheduleJobBroadcast(false);
+        runJob();
         assertTrue("Job did not start after scheduling",
                 mTestAppInterface.awaitJobStart(DEFAULT_WAIT_TIMEOUT));
         setTestPackageRestricted(true);
@@ -232,7 +236,7 @@
         sendScheduleJobBroadcast(false);
         assertFalse("Job started for restricted app",
                 mTestAppInterface.awaitJobStart(DEFAULT_WAIT_TIMEOUT));
-        mTestAppInterface.startAndKeepTestActivity();
+        mTestAppInterface.startAndKeepTestActivity(true);
         assertTrue("Job did not start when app had an activity",
                 mTestAppInterface.awaitJobStart(DEFAULT_WAIT_TIMEOUT));
     }
@@ -248,6 +252,7 @@
         setWifiState(true, mCm, mWifiManager);
         assumeTrue("device idle not enabled", mDeviceIdleEnabled);
         mTestAppInterface.scheduleJob(false, true);
+        runJob();
         assertTrue("Job did not start after scheduling",
                 mTestAppInterface.awaitJobStart(DEFAULT_WAIT_TIMEOUT));
         ThermalUtils.overrideThermalStatus(Temperature.THROTTLING_CRITICAL);
@@ -275,6 +280,7 @@
         setTestPackageStandbyBucket(Bucket.RESTRICTED);
         Thread.sleep(DEFAULT_WAIT_TIMEOUT);
         sendScheduleJobBroadcast(false);
+        runJob();
         assertTrue("Parole job didn't start in RESTRICTED bucket",
                 mTestAppInterface.awaitJobStart(3_000));
 
@@ -335,27 +341,33 @@
         setTestPackageStandbyBucket(Bucket.RESTRICTED);
         Thread.sleep(DEFAULT_WAIT_TIMEOUT);
         mTestAppInterface.scheduleJob(false, true);
+        runJob();
         assertFalse("New job started in RESTRICTED bucket", mTestAppInterface.awaitJobStart(3_000));
 
         // Slowly add back required bucket constraints.
 
         // Battery charging and high.
         BatteryUtils.runDumpsysBatterySetPluggedIn(true);
+        runJob();
         assertFalse("New job started in RESTRICTED bucket", mTestAppInterface.awaitJobStart(3_000));
         BatteryUtils.runDumpsysBatterySetLevel(100);
+        runJob();
         assertFalse("New job started in RESTRICTED bucket", mTestAppInterface.awaitJobStart(3_000));
 
         // Device is idle.
         setScreenState(false);
+        runJob();
         assertFalse("New job started in RESTRICTED bucket", mTestAppInterface.awaitJobStart(3_000));
         triggerJobIdle();
+        runJob();
         assertFalse("New job started in RESTRICTED bucket", mTestAppInterface.awaitJobStart(3_000));
 
         // Add network
         setAirplaneMode(false);
         setWifiState(true, mCm, mWifiManager);
+        runJob();
         assertTrue("New job didn't start in RESTRICTED bucket",
-                mTestAppInterface.awaitJobStart(3_000));
+                mTestAppInterface.awaitJobStart(5_000));
     }
 
     @Test
@@ -551,6 +563,14 @@
         Thread.sleep(2_000);
     }
 
+    /** Asks (not forces) JobScheduler to run the job if constraints are met. */
+    private void runJob() throws Exception {
+        // Since connectivity is a functional constraint, calling the "run" command without force
+        // will only get the job to run if the constraint is satisfied.
+        mUiDevice.executeShellCommand("cmd jobscheduler run -s"
+                + " -u " + UserHandle.myUserId() + " " + TEST_APP_PACKAGE + " " + mTestJobId);
+    }
+
     private boolean isAirplaneModeOn() throws IOException {
         final String output =
                 mUiDevice.executeShellCommand("cmd connectivity airplane-mode").trim();
diff --git a/tests/JobScheduler/src/android/jobscheduler/cts/TestAppInterface.java b/tests/JobScheduler/src/android/jobscheduler/cts/TestAppInterface.java
index 36d1825..d871a2b 100644
--- a/tests/JobScheduler/src/android/jobscheduler/cts/TestAppInterface.java
+++ b/tests/JobScheduler/src/android/jobscheduler/cts/TestAppInterface.java
@@ -18,6 +18,7 @@
 import static android.jobscheduler.cts.jobtestapp.TestJobService.ACTION_JOB_STARTED;
 import static android.jobscheduler.cts.jobtestapp.TestJobService.ACTION_JOB_STOPPED;
 import static android.jobscheduler.cts.jobtestapp.TestJobService.JOB_PARAMS_EXTRA_KEY;
+import static android.server.wm.WindowManagerState.STATE_RESUMED;
 
 import android.app.job.JobParameters;
 import android.content.BroadcastReceiver;
@@ -28,6 +29,7 @@
 import android.jobscheduler.cts.jobtestapp.TestActivity;
 import android.jobscheduler.cts.jobtestapp.TestJobSchedulerReceiver;
 import android.os.SystemClock;
+import android.server.wm.WindowManagerStateHelper;
 import android.util.Log;
 
 /**
@@ -77,10 +79,18 @@
     }
 
     void startAndKeepTestActivity() {
+        startAndKeepTestActivity(false);
+    }
+
+    void startAndKeepTestActivity(boolean waitForResume) {
         final Intent testActivity = new Intent();
         testActivity.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-        testActivity.setComponent(new ComponentName(TEST_APP_PACKAGE, TEST_APP_ACTIVITY));
+        ComponentName testComponentName = new ComponentName(TEST_APP_PACKAGE, TEST_APP_ACTIVITY);
+        testActivity.setComponent(testComponentName);
         mContext.startActivity(testActivity);
+        if (waitForResume) {
+            new WindowManagerStateHelper().waitForActivityState(testComponentName, STATE_RESUMED);
+        }
     }
 
     private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
diff --git a/tests/JobSchedulerSharedUid/Android.bp b/tests/JobSchedulerSharedUid/Android.bp
index 1320dc2..7996387 100644
--- a/tests/JobSchedulerSharedUid/Android.bp
+++ b/tests/JobSchedulerSharedUid/Android.bp
@@ -31,6 +31,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     //sdk_version: "current"
diff --git a/tests/JobSchedulerSharedUid/JobSharedUidTestApp/Android.bp b/tests/JobSchedulerSharedUid/JobSharedUidTestApp/Android.bp
index 6ff76da..9240115 100644
--- a/tests/JobSchedulerSharedUid/JobSharedUidTestApp/Android.bp
+++ b/tests/JobSchedulerSharedUid/JobSharedUidTestApp/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/tests/JobSchedulerSharedUid/jobperm/Android.bp b/tests/JobSchedulerSharedUid/jobperm/Android.bp
index e20fc55..9199cea 100644
--- a/tests/JobSchedulerSharedUid/jobperm/Android.bp
+++ b/tests/JobSchedulerSharedUid/jobperm/Android.bp
@@ -24,6 +24,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     platform_apis: true,
diff --git a/tests/JobSchedulerSharedUid/shareduid/Android.bp b/tests/JobSchedulerSharedUid/shareduid/Android.bp
index 68ed7f5..2222fd9 100644
--- a/tests/JobSchedulerSharedUid/shareduid/Android.bp
+++ b/tests/JobSchedulerSharedUid/shareduid/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/acceleration/Android.bp b/tests/acceleration/Android.bp
index 2d4e9e4..4fc32d8 100644
--- a/tests/acceleration/Android.bp
+++ b/tests/acceleration/Android.bp
@@ -34,6 +34,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/accessibility/Android.bp b/tests/accessibility/Android.bp
index 4ab6ed5..9ba86ff 100644
--- a/tests/accessibility/Android.bp
+++ b/tests/accessibility/Android.bp
@@ -35,6 +35,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/accessibilityservice/Android.bp b/tests/accessibilityservice/Android.bp
index a3f5405..cd5bed3 100644
--- a/tests/accessibilityservice/Android.bp
+++ b/tests/accessibilityservice/Android.bp
@@ -33,6 +33,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityTakeScreenshotTest.java b/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityTakeScreenshotTest.java
index 0d264c3..15940cc 100644
--- a/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityTakeScreenshotTest.java
+++ b/tests/accessibilityservice/src/android/accessibilityservice/cts/AccessibilityTakeScreenshotTest.java
@@ -17,14 +17,17 @@
 package android.accessibilityservice.cts;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.timeout;
+import static org.mockito.Mockito.verify;
 
 import android.accessibility.cts.common.AccessibilityDumpOnFailureRule;
 import android.accessibility.cts.common.InstrumentedAccessibilityServiceTestRule;
 import android.accessibilityservice.AccessibilityService;
+import android.accessibilityservice.AccessibilityService.ScreenshotResult;
+import android.accessibilityservice.AccessibilityService.TakeScreenshotCallback;
 import android.content.Context;
 import android.graphics.Bitmap;
 import android.graphics.ColorSpace;
@@ -41,14 +44,21 @@
 import org.junit.Test;
 import org.junit.rules.RuleChain;
 import org.junit.runner.RunWith;
-
-import java.util.function.Consumer;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
 
 /**
  * Test cases for accessibility service takeScreenshot API.
  */
 @RunWith(AndroidJUnit4.class)
 public class AccessibilityTakeScreenshotTest {
+    /**
+     * The timeout for waiting screenshot had been taken done.
+     */
+    private static final long TIMEOUT_TAKE_SCREENSHOT_DONE_MILLIS = 1000;
+
     private InstrumentedAccessibilityServiceTestRule<StubTakeScreenshotService> mServiceRule =
             new InstrumentedAccessibilityServiceTestRule<>(StubTakeScreenshotService.class);
 
@@ -64,9 +74,14 @@
     private Context mContext;
     private Point mDisplaySize;
     private long mStartTestingTime;
+    @Mock
+    private TakeScreenshotCallback mCallback;
+    @Captor
+    private ArgumentCaptor<ScreenshotResult> mSuccessResultArgumentCaptor;
 
     @Before
     public void setUp() throws Exception {
+        MockitoAnnotations.initMocks(this);
         mService = mServiceRule.getService();
         mContext = mService.getApplicationContext();
 
@@ -80,37 +95,46 @@
 
     @Test
     public void testTakeScreenshot_GetScreenshotResult() {
-        mStartTestingTime = SystemClock.uptimeMillis();
-        Consumer<AccessibilityService.ScreenshotResult> screenshotConsumer =
-                new TakeScreenshotConsumer();
-        mService.takeScreenshot(Display.DEFAULT_DISPLAY, mContext.getMainExecutor(),
-                screenshotConsumer);
+        takeScreenshot();
+        verify(mCallback, timeout(TIMEOUT_TAKE_SCREENSHOT_DONE_MILLIS)).onSuccess(
+                mSuccessResultArgumentCaptor.capture());
+
+        verifyScreenshotResult(mSuccessResultArgumentCaptor.getValue());
     }
 
     @Test
     public void testTakeScreenshot_RequestIntervalTime() throws Exception {
-        final Consumer callback = mock(Consumer.class);
-        assertTrue(mService.takeScreenshot(Display.DEFAULT_DISPLAY, mContext.getMainExecutor(),
-                callback));
+        takeScreenshot();
+        verify(mCallback, timeout(TIMEOUT_TAKE_SCREENSHOT_DONE_MILLIS)).onSuccess(
+                mSuccessResultArgumentCaptor.capture());
+
         Thread.sleep(
                 AccessibilityService.ACCESSIBILITY_TAKE_SCREENSHOT_REQUEST_INTERVAL_TIMES_MS / 2);
         // Requests the API again during interval time from calling the first time.
-        assertFalse(mService.takeScreenshot(Display.DEFAULT_DISPLAY, mContext.getMainExecutor(),
-                callback));
+        takeScreenshot();
+        verify(mCallback, timeout(TIMEOUT_TAKE_SCREENSHOT_DONE_MILLIS)).onFailure(
+                AccessibilityService.ERROR_TAKE_SCREENSHOT_INTERVAL_TIME_SHORT);
+
         Thread.sleep(
                 AccessibilityService.ACCESSIBILITY_TAKE_SCREENSHOT_REQUEST_INTERVAL_TIMES_MS / 2 +
                         1);
         // Requests the API again after interval time from calling the first time.
-        assertTrue(mService.takeScreenshot(Display.DEFAULT_DISPLAY, mContext.getMainExecutor(),
-                callback));
+        takeScreenshot();
+        verify(mCallback, timeout(TIMEOUT_TAKE_SCREENSHOT_DONE_MILLIS)).onSuccess(
+                mSuccessResultArgumentCaptor.capture());
     }
 
     @Test(expected = IllegalArgumentException.class)
     public void testTakeScreenshotWithNonDefaultDisplay_GetIllegalArgumentException() {
-        final Consumer callback = mock(Consumer.class);
         // DisplayId isn't the default display, should throw illegalArgument exception.
         mService.takeScreenshot(Display.DEFAULT_DISPLAY + 1,
-                mContext.getMainExecutor(), callback);
+                mContext.getMainExecutor(), mCallback);
+    }
+
+    private void takeScreenshot() {
+        mStartTestingTime = SystemClock.uptimeMillis();
+        mService.takeScreenshot(Display.DEFAULT_DISPLAY, mContext.getMainExecutor(),
+                mCallback);
     }
 
     private void verifyScreenshotResult(AccessibilityService.ScreenshotResult screenshot) {
@@ -130,10 +154,4 @@
         final Bitmap bitmap = Bitmap.wrapHardwareBuffer(hardwareBuffer, colorSpace);
         assertNotNull(bitmap);
     }
-
-    class TakeScreenshotConsumer implements Consumer<AccessibilityService.ScreenshotResult> {
-        public void accept(AccessibilityService.ScreenshotResult screenshot) {
-            verifyScreenshotResult(screenshot);
-        }
-    }
 }
diff --git a/tests/accessibilityservice/testsdk29/Android.bp b/tests/accessibilityservice/testsdk29/Android.bp
index 87d3c5a..e2cc2b2 100644
--- a/tests/accessibilityservice/testsdk29/Android.bp
+++ b/tests/accessibilityservice/testsdk29/Android.bp
@@ -29,6 +29,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/admin/Android.bp b/tests/admin/Android.bp
index 93ebf89..969ed2c 100644
--- a/tests/admin/Android.bp
+++ b/tests/admin/Android.bp
@@ -30,6 +30,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     instrumentation_for: "CtsAdminApp",
diff --git a/tests/admin/app/Android.bp b/tests/admin/app/Android.bp
index ca34e85..ca68540 100644
--- a/tests/admin/app/Android.bp
+++ b/tests/admin/app/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/tests/app/ActivityManagerApi29Test/Android.bp b/tests/app/ActivityManagerApi29Test/Android.bp
index ed3a613..520d2dc 100644
--- a/tests/app/ActivityManagerApi29Test/Android.bp
+++ b/tests/app/ActivityManagerApi29Test/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/tests/app/Android.bp b/tests/app/Android.bp
index f16c6ae..5dcccb9 100644
--- a/tests/app/Android.bp
+++ b/tests/app/Android.bp
@@ -38,6 +38,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     instrumentation_for: "CtsAppTestStubs",
@@ -72,6 +73,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
@@ -107,6 +109,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
@@ -135,6 +138,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     manifest: "AppExitTest/AndroidManifest.xml",
diff --git a/tests/app/BadProviderStubs/Android.bp b/tests/app/BadProviderStubs/Android.bp
index 3180ef5..c79a330 100644
--- a/tests/app/BadProviderStubs/Android.bp
+++ b/tests/app/BadProviderStubs/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     optimize: {
diff --git a/tests/app/CantSaveState1/Android.bp b/tests/app/CantSaveState1/Android.bp
index 401d7e3..a62a343 100644
--- a/tests/app/CantSaveState1/Android.bp
+++ b/tests/app/CantSaveState1/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/tests/app/CantSaveState2/Android.bp b/tests/app/CantSaveState2/Android.bp
index 77a1487..59a62ad 100644
--- a/tests/app/CantSaveState2/Android.bp
+++ b/tests/app/CantSaveState2/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/tests/app/NotificationDelegator/Android.bp b/tests/app/NotificationDelegator/Android.bp
index 13b0cac..0ca4976 100644
--- a/tests/app/NotificationDelegator/Android.bp
+++ b/tests/app/NotificationDelegator/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/tests/app/StorageDelegator/Android.bp b/tests/app/StorageDelegator/Android.bp
index cf9b7a6..f1880cb 100644
--- a/tests/app/StorageDelegator/Android.bp
+++ b/tests/app/StorageDelegator/Android.bp
@@ -26,6 +26,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/app/app/Android.bp b/tests/app/app/Android.bp
index a7a77d4..b5eff6a 100644
--- a/tests/app/app/Android.bp
+++ b/tests/app/app/Android.bp
@@ -37,6 +37,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     platform_apis: true,
@@ -67,6 +68,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     platform_apis: true,
@@ -100,6 +102,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     platform_apis: true,
@@ -133,6 +136,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     platform_apis: true,
diff --git a/tests/app/src/android/app/cts/NotificationChannelTest.java b/tests/app/src/android/app/cts/NotificationChannelTest.java
index 2cc965f..5727237 100644
--- a/tests/app/src/android/app/cts/NotificationChannelTest.java
+++ b/tests/app/src/android/app/cts/NotificationChannelTest.java
@@ -28,7 +28,6 @@
 import android.os.Parcel;
 import android.provider.Settings;
 import android.test.AndroidTestCase;
-import android.text.TextUtils;
 
 public class NotificationChannelTest extends AndroidTestCase {
 
@@ -83,7 +82,7 @@
         channel.setDeleted(true);
         channel.setFgServiceShown(true);
         channel.setVibrationPattern(new long[] {299, 4562});
-        channel.setBlockableSystem(true);
+        channel.setBlockable(true);
         channel.setConversationId("parent_channel", "conversation 1");
         channel.setImportantConversation(true);
         Parcel parcel = Parcel.obtain();
@@ -190,8 +189,8 @@
     public void testIsBlockableSystem() {
         NotificationChannel channel =
                 new NotificationChannel("1", "one", IMPORTANCE_DEFAULT);
-        channel.setBlockableSystem(true);
-        assertTrue(channel.isBlockableSystem());
+        channel.setBlockable(true);
+        assertTrue(channel.isBlockable());
     }
 
     public void testIsImportanceLockedByOEM() {
@@ -203,9 +202,9 @@
 
     public void testSystemBlockable() {
         NotificationChannel channel = new NotificationChannel("a", "ab", IMPORTANCE_DEFAULT);
-        assertEquals(false, channel.isBlockableSystem());
-        channel.setBlockableSystem(true);
-        assertEquals(true, channel.isBlockableSystem());
+        assertEquals(false, channel.isBlockable());
+        channel.setBlockable(true);
+        assertEquals(true, channel.isBlockable());
     }
 
     public void testOriginalImportance() {
diff --git a/tests/app/src/android/app/cts/NotificationManagerTest.java b/tests/app/src/android/app/cts/NotificationManagerTest.java
index 4de36b9..10934dd 100644
--- a/tests/app/src/android/app/cts/NotificationManagerTest.java
+++ b/tests/app/src/android/app/cts/NotificationManagerTest.java
@@ -474,8 +474,7 @@
         final PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 0, intent, 0);
 
         if (data == null) {
-            data = new Notification.BubbleMetadata.Builder()
-                    .createIntentBubble(pendingIntent,
+            data = new Notification.BubbleMetadata.Builder(pendingIntent,
                             Icon.createWithResource(mContext, R.drawable.black))
                     .build();
         }
@@ -3077,9 +3076,8 @@
                 .setSmallIcon(android.R.drawable.sym_def_app_icon);
 
         // BubbleMetadata with manifest shortcut
-        Notification.BubbleMetadata data = new Notification.BubbleMetadata.Builder()
-                .createShortcutBubble(BUBBLE_SHORTCUT_ID_MANIFEST)
-                .build();
+        Notification.BubbleMetadata data =
+                new Notification.BubbleMetadata.Builder(BUBBLE_SHORTCUT_ID_MANIFEST).build();
 
         sendAndVerifyBubble(1, nb, data, false /* shouldBeBubble */);
     }
@@ -3134,9 +3132,9 @@
                     .setSmallIcon(android.R.drawable.sym_def_app_icon);
 
             // BubbleMetadata with our dynamic shortcut ic
-            Notification.BubbleMetadata data = new Notification.BubbleMetadata.Builder()
-                    .createShortcutBubble(BUBBLE_SHORTCUT_ID_DYNAMIC)
-                    .build();
+            Notification.BubbleMetadata data =
+                    new Notification.BubbleMetadata.Builder(BUBBLE_SHORTCUT_ID_DYNAMIC)
+                            .build();
 
             boolean shouldBeBubble = !mActivityManager.isLowRamDevice();
             sendAndVerifyBubble(1, nb, data, shouldBeBubble);
@@ -3181,9 +3179,9 @@
                 .setSmallIcon(android.R.drawable.sym_def_app_icon);
 
         // BubbleMetadata with shortcut that doesn't exist
-        Notification.BubbleMetadata data = new Notification.BubbleMetadata.Builder()
-                .createShortcutBubble("shortcutDoesntExist")
-                .build();
+        Notification.BubbleMetadata data =
+                new Notification.BubbleMetadata.Builder("shortcutDoesntExist")
+                        .build();
 
         sendAndVerifyBubble(1, nb, data, false);
     }
@@ -3198,9 +3196,9 @@
         toggleBubbleSetting(true);
 
         // BubbleMetadata with manifest shortcut
-        Notification.BubbleMetadata data = new Notification.BubbleMetadata.Builder()
-                .createShortcutBubble(BUBBLE_SHORTCUT_ID_MANIFEST)
-                .build();
+        Notification.BubbleMetadata data =
+                new Notification.BubbleMetadata.Builder(BUBBLE_SHORTCUT_ID_MANIFEST)
+                        .build();
 
         sendAndVerifyBubble(1, null /* use default notif builder */, data,
                 false /* shouldBeBubble */);
@@ -3257,10 +3255,10 @@
                     .setActions(replyAction)
                     .setSmallIcon(android.R.drawable.sym_def_app_icon);
 
-            // BubbleMetadata with our dynamic shortcut ic
-            Notification.BubbleMetadata data = new Notification.BubbleMetadata.Builder()
-                    .createShortcutBubble(BUBBLE_SHORTCUT_ID_DYNAMIC)
-                    .build();
+            // BubbleMetadata with our dynamic shortcut
+            Notification.BubbleMetadata data =
+                    new Notification.BubbleMetadata.Builder(BUBBLE_SHORTCUT_ID_DYNAMIC)
+                            .build();
 
             boolean shouldBeBubble = !mActivityManager.isLowRamDevice();
             sendAndVerifyBubble(1, nb, data, shouldBeBubble);
diff --git a/tests/app/src/android/app/cts/NotificationTest.java b/tests/app/src/android/app/cts/NotificationTest.java
index 439f3a9..b9f8784 100644
--- a/tests/app/src/android/app/cts/NotificationTest.java
+++ b/tests/app/src/android/app/cts/NotificationTest.java
@@ -625,15 +625,14 @@
         PendingIntent deleteIntent = PendingIntent.getActivity(mContext, 0, new Intent(), 0);
         Icon icon = Icon.createWithResource(mContext, 1);
         Notification.BubbleMetadata.Builder metadataBuilder =
-                new Notification.BubbleMetadata.Builder()
+                new Notification.BubbleMetadata.Builder(bubbleIntent, icon)
                 .setDesiredHeight(BUBBLE_HEIGHT)
-                .createIntentBubble(bubbleIntent, icon)
                 .setDeleteIntent(deleteIntent);
 
         Notification.BubbleMetadata data = metadataBuilder.build();
         assertEquals(BUBBLE_HEIGHT, data.getDesiredHeight());
-        assertEquals(icon, data.getBubbleIcon());
-        assertEquals(bubbleIntent, data.getBubbleIntent());
+        assertEquals(icon, data.getIcon());
+        assertEquals(bubbleIntent, data.getIntent());
         assertEquals(deleteIntent, data.getDeleteIntent());
         assertFalse(data.isNotificationSuppressed());
         assertFalse(data.getAutoExpandBubble());
@@ -644,18 +643,17 @@
         PendingIntent deleteIntent = PendingIntent.getActivity(mContext, 0, new Intent(), 0);
         Icon icon = Icon.createWithResource(mContext, 1);
         Notification.BubbleMetadata metadata =
-                new Notification.BubbleMetadata.Builder()
+                new Notification.BubbleMetadata.Builder(bubbleIntent, icon)
                         .setDesiredHeight(BUBBLE_HEIGHT)
                         .setAutoExpandBubble(true)
                         .setSuppressNotification(true)
-                        .createIntentBubble(bubbleIntent, icon)
                         .setDeleteIntent(deleteIntent)
                         .build();
 
         writeAndReadParcelable(metadata);
         assertEquals(BUBBLE_HEIGHT, metadata.getDesiredHeight());
-        assertEquals(icon, metadata.getBubbleIcon());
-        assertEquals(bubbleIntent, metadata.getBubbleIntent());
+        assertEquals(icon, metadata.getIcon());
+        assertEquals(bubbleIntent, metadata.getIntent());
         assertEquals(deleteIntent, metadata.getDeleteIntent());
         assertTrue(metadata.getAutoExpandBubble());
         assertTrue(metadata.isNotificationSuppressed());
@@ -664,9 +662,8 @@
     public void testBubbleMetadataBuilder_shortcutId() {
         PendingIntent deleteIntent = PendingIntent.getActivity(mContext, 0, new Intent(), 0);
         Notification.BubbleMetadata.Builder metadataBuilder =
-                new Notification.BubbleMetadata.Builder()
+                new Notification.BubbleMetadata.Builder(BUBBLE_SHORTCUT_ID)
                         .setDesiredHeight(BUBBLE_HEIGHT)
-                        .createShortcutBubble(BUBBLE_SHORTCUT_ID)
                         .setDeleteIntent(deleteIntent);
 
         Notification.BubbleMetadata data = metadataBuilder.build();
@@ -681,11 +678,10 @@
         PendingIntent deleteIntent = PendingIntent.getActivity(mContext, 0, new Intent(), 0);
 
         Notification.BubbleMetadata metadata =
-                new Notification.BubbleMetadata.Builder()
+                new Notification.BubbleMetadata.Builder(BUBBLE_SHORTCUT_ID)
                         .setDesiredHeight(BUBBLE_HEIGHT)
                         .setAutoExpandBubble(true)
                         .setSuppressNotification(true)
-                        .createShortcutBubble(BUBBLE_SHORTCUT_ID)
                         .setDeleteIntent(deleteIntent)
                         .build();
 
@@ -701,73 +697,67 @@
         PendingIntent bubbleIntent = PendingIntent.getActivity(mContext, 0, new Intent(), 0);
         Icon icon = Icon.createWithResource(mContext, 1);
         Notification.BubbleMetadata metadata =
-                new Notification.BubbleMetadata.Builder()
+                new Notification.BubbleMetadata.Builder(bubbleIntent, icon)
                         .setDesiredHeightResId(BUBBLE_HEIGHT_RESID)
-                        .createIntentBubble(bubbleIntent, icon)
                 .build();
         writeAndReadParcelable(metadata);
         assertEquals(BUBBLE_HEIGHT_RESID, metadata.getDesiredHeightResId());
-        assertEquals(icon, metadata.getBubbleIcon());
-        assertEquals(bubbleIntent, metadata.getBubbleIntent());
+        assertEquals(icon, metadata.getIcon());
+        assertEquals(bubbleIntent, metadata.getIntent());
         assertFalse(metadata.getAutoExpandBubble());
         assertFalse(metadata.isNotificationSuppressed());
     }
 
     public void testBubbleMetadataBuilder_throwForNoIntentNoShortcut() {
-        Icon icon = Icon.createWithResource(mContext, 1);
         Notification.BubbleMetadata.Builder metadataBuilder =
-                new Notification.BubbleMetadata.Builder()
-                        .setDesiredHeight(BUBBLE_HEIGHT);
+                new Notification.BubbleMetadata.Builder();
         try {
             metadataBuilder.build();
-            fail("Should have thrown IllegalArgumentException, no pending intent or shortcutId");
-        } catch (IllegalStateException e) {
+            fail("Should have thrown exception, no pending intent or shortcutId");
+        } catch (NullPointerException e) {
             // expected
         }
     }
 
     public void testBubbleMetadataBuilder_noThrowWithShortcut() {
         Notification.BubbleMetadata.Builder metadataBuilder =
-                new Notification.BubbleMetadata.Builder()
-                        .setDesiredHeight(BUBBLE_HEIGHT)
-                        .createShortcutBubble(BUBBLE_SHORTCUT_ID);
+                new Notification.BubbleMetadata.Builder(BUBBLE_SHORTCUT_ID)
+                        .setDesiredHeight(BUBBLE_HEIGHT);
         Notification.BubbleMetadata metadata = metadataBuilder.build();
         assertNotNull(metadata.getShortcutId());
-        assertNull(metadata.getBubbleIcon());
-        assertNull(metadata.getBubbleIntent());
+        assertNull(metadata.getIcon());
+        assertNull(metadata.getIntent());
     }
 
-    public void testBubbleMetadataBuilder_shortcutOverwritesIconIntent() {
+    public void testBubbleMetadataBuilder_shortcutBuilder_throwsForSetIntent() {
         PendingIntent bubbleIntent = PendingIntent.getActivity(mContext, 0, new Intent(), 0);
-        Icon icon = Icon.createWithResource(mContext, 1);
-        Notification.BubbleMetadata metadata =
-                new Notification.BubbleMetadata.Builder()
-                        .setDesiredHeightResId(BUBBLE_HEIGHT_RESID)
-                        .createIntentBubble(bubbleIntent, icon)
-                        .createShortcutBubble(BUBBLE_SHORTCUT_ID)
-                        .build();
-        assertNotNull(metadata.getShortcutId());
-        assertNull(metadata.getBubbleIcon());
-        assertNull(metadata.getBubbleIntent());
+        try {
+            Notification.BubbleMetadata.Builder metadataBuilder =
+                    new Notification.BubbleMetadata.Builder(BUBBLE_SHORTCUT_ID)
+                            .setDesiredHeightResId(BUBBLE_HEIGHT_RESID)
+                            .setIntent(bubbleIntent);
+            fail("Should have thrown exception, can't set intent on shortcut builder");
+        } catch (Exception e) {
+            // expected
+        }
     }
 
-    public void testBubbleMetadataBuilder_intentIconOverwritesShortcut() {
-        PendingIntent bubbleIntent = PendingIntent.getActivity(mContext, 0, new Intent(), 0);
-        Icon icon = Icon.createWithResource(mContext, 1);
-        Notification.BubbleMetadata.Builder metadataBuilder =
-                new Notification.BubbleMetadata.Builder()
-                        .setDesiredHeightResId(BUBBLE_HEIGHT_RESID)
-                        .createShortcutBubble(BUBBLE_SHORTCUT_ID)
-                        .createIntentBubble(bubbleIntent, icon);
-        Notification.BubbleMetadata metadata = metadataBuilder.build();
-        assertNull(metadata.getShortcutId());
-        assertNotNull(metadata.getBubbleIcon());
-        assertNotNull(metadata.getBubbleIntent());
+    public void testBubbleMetadataBuilder_shortcutBuilder_throwsForSetIcon() {
+        try {
+            Icon icon = Icon.createWithResource(mContext, 1);
+            Notification.BubbleMetadata.Builder metadataBuilder =
+                    new Notification.BubbleMetadata.Builder(BUBBLE_SHORTCUT_ID)
+                            .setDesiredHeightResId(BUBBLE_HEIGHT_RESID)
+                            .setIcon(icon);
+            fail("Should have thrown exception, can't set icon on shortcut builder");
+        } catch (Exception e) {
+            // expected
+        }
     }
 
     public void testBubbleMetadataBuilder_notifBubbleShortcutIds_match_noThrow() {
-        Notification.BubbleMetadata metadata = new Notification.BubbleMetadata.Builder()
-                        .createShortcutBubble(BUBBLE_SHORTCUT_ID).build();
+        Notification.BubbleMetadata metadata =
+                new Notification.BubbleMetadata.Builder(BUBBLE_SHORTCUT_ID).build();
 
         mNotification = new Notification.Builder(mContext, CHANNEL.getId())
                 .setSmallIcon(1)
@@ -781,8 +771,8 @@
     }
 
     public void testBubbleMetadataBuilder_notifBubbleShortcutIds_different_throw() {
-        Notification.BubbleMetadata metadata = new Notification.BubbleMetadata.Builder()
-                .createShortcutBubble(BUBBLE_SHORTCUT_ID).build();
+        Notification.BubbleMetadata metadata =
+                new Notification.BubbleMetadata.Builder(BUBBLE_SHORTCUT_ID).build();
 
         Notification.Builder nb = new Notification.Builder(mContext, CHANNEL.getId())
                 .setSmallIcon(1)
@@ -806,11 +796,10 @@
 
         PendingIntent bubbleIntent = PendingIntent.getActivity(mContext, 0, new Intent(), 0);
         Notification.BubbleMetadata.Builder metadataBuilder =
-                new Notification.BubbleMetadata.Builder()
-                        .createIntentBubble(bubbleIntent, icon);
+                new Notification.BubbleMetadata.Builder(bubbleIntent, icon);
         Notification.BubbleMetadata metadata = metadataBuilder.build();
-        assertNotNull(metadata.getBubbleIcon());
-        assertEquals(TYPE_ADAPTIVE_BITMAP, metadata.getBubbleIcon().getType());
+        assertNotNull(metadata.getIcon());
+        assertEquals(TYPE_ADAPTIVE_BITMAP, metadata.getIcon().getType());
     }
 
     public void testBubbleMetadataBuilder_noThrowForNonBitmapIcon() {
@@ -818,11 +807,10 @@
 
         PendingIntent bubbleIntent = PendingIntent.getActivity(mContext, 0, new Intent(), 0);
         Notification.BubbleMetadata.Builder metadataBuilder =
-                new Notification.BubbleMetadata.Builder()
-                        .createIntentBubble(bubbleIntent, icon);
+                new Notification.BubbleMetadata.Builder(bubbleIntent, icon);
         Notification.BubbleMetadata metadata = metadataBuilder.build();
-        assertNotNull(metadata.getBubbleIcon());
-        assertEquals(TYPE_RESOURCE, metadata.getBubbleIcon().getType());
+        assertNotNull(metadata.getIcon());
+        assertEquals(TYPE_RESOURCE, metadata.getIcon().getType());
     }
 
     public void testBubbleMetadataBuilder_replaceHeightRes() {
@@ -830,10 +818,9 @@
         PendingIntent deleteIntent = PendingIntent.getActivity(mContext, 0, new Intent(), 0);
         Icon icon = Icon.createWithResource(mContext, 1);
         Notification.BubbleMetadata.Builder metadataBuilder =
-                new Notification.BubbleMetadata.Builder()
+                new Notification.BubbleMetadata.Builder(bubbleIntent, icon)
                         .setDesiredHeight(BUBBLE_HEIGHT)
                         .setDesiredHeightResId(BUBBLE_HEIGHT_RESID)
-                        .createIntentBubble(bubbleIntent, icon)
                         .setDeleteIntent(deleteIntent);
 
         Notification.BubbleMetadata data = metadataBuilder.build();
@@ -848,10 +835,9 @@
         PendingIntent deleteIntent = PendingIntent.getActivity(mContext, 0, new Intent(), 0);
         Icon icon = Icon.createWithResource(mContext, 1);
         Notification.BubbleMetadata.Builder metadataBuilder =
-                new Notification.BubbleMetadata.Builder()
+                new Notification.BubbleMetadata.Builder(bubbleIntent, icon)
                         .setDesiredHeightResId(BUBBLE_HEIGHT_RESID)
                         .setDesiredHeight(BUBBLE_HEIGHT)
-                        .createIntentBubble(bubbleIntent, icon)
                         .setDeleteIntent(deleteIntent);
 
         Notification.BubbleMetadata data = metadataBuilder.build();
@@ -923,9 +909,9 @@
     private Notification.BubbleMetadata makeBubbleMetadata() {
         PendingIntent bubbleIntent = PendingIntent.getActivity(mContext, 0, new Intent(), 0);
 
-        return new Notification.BubbleMetadata.Builder()
-                        .createIntentBubble(bubbleIntent, Icon.createWithResource(mContext, 1))
-                        .setDesiredHeight(BUBBLE_HEIGHT)
-                        .build();
+        return new Notification.BubbleMetadata.Builder(bubbleIntent,
+                Icon.createWithResource(mContext, 1))
+                .setDesiredHeight(BUBBLE_HEIGHT)
+                .build();
     }
 }
diff --git a/tests/apppredictionservice/Android.bp b/tests/apppredictionservice/Android.bp
index 081efdf..c0519e5 100644
--- a/tests/apppredictionservice/Android.bp
+++ b/tests/apppredictionservice/Android.bp
@@ -26,6 +26,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/aslr/Android.bp b/tests/aslr/Android.bp
index 024b85f..a071d7c 100644
--- a/tests/aslr/Android.bp
+++ b/tests/aslr/Android.bp
@@ -38,6 +38,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/autofillservice/Android.bp b/tests/autofillservice/Android.bp
index 7882a76..0cbb382 100644
--- a/tests/autofillservice/Android.bp
+++ b/tests/autofillservice/Android.bp
@@ -34,6 +34,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/autofillservice/src/android/autofillservice/cts/LoginWithCustomHighlightActivityTest.java b/tests/autofillservice/src/android/autofillservice/cts/LoginWithCustomHighlightActivityTest.java
index cefc58c..34eb6d1 100644
--- a/tests/autofillservice/src/android/autofillservice/cts/LoginWithCustomHighlightActivityTest.java
+++ b/tests/autofillservice/src/android/autofillservice/cts/LoginWithCustomHighlightActivityTest.java
@@ -16,6 +16,7 @@
 
 package android.autofillservice.cts;
 
+import static android.autofillservice.cts.Helper.ID_PASSWORD;
 import static android.autofillservice.cts.Helper.ID_USERNAME;
 
 import static com.google.common.truth.Truth.assertThat;
@@ -25,6 +26,8 @@
 import android.support.test.uiautomator.UiObject2;
 import android.view.View;
 
+import org.junit.After;
+import org.junit.Before;
 import org.junit.Test;
 
 import java.util.concurrent.TimeoutException;
@@ -45,19 +48,53 @@
         };
     }
 
+    @Before
+    public void setup() {
+        MyDrawable.initStatus();
+    }
+
+    @After
+    public void teardown() {
+        MyDrawable.clearStatus();
+    }
+
     @Test
-    public void testAutofillCustomHighligth() throws Exception {
+    public void testAutofillCustomHighligth_singleField_noHighligth() throws Exception {
+        testAutofillCustomHighligth(/* singleField= */true);
+
+        MyDrawable.assertDrawableNotDrawn();
+    }
+
+    @Test
+    public void testAutofillCustomHighligth_multipleFields_hasHighligth() throws Exception {
+        testAutofillCustomHighligth(/* singleField= */false);
+
+        final Rect bounds = MyDrawable.getAutofilledBounds();
+        assertThat(bounds).isNotNull();
+        assertThat(bounds.right).isEqualTo(mActivity.getUsername().getWidth());
+        assertThat(bounds.bottom).isEqualTo(mActivity.getUsername().getHeight());
+    }
+
+    private void testAutofillCustomHighligth(boolean singleField) throws Exception {
         // Set service.
         enableService();
 
+        final CannedDataset.Builder datasetBuilder = new CannedDataset.Builder()
+                .setField(ID_USERNAME, "dude")
+                .setPresentation(createPresentation("The Dude"));
+        if (!singleField) {
+            datasetBuilder.setField(ID_PASSWORD, "sweet");
+        }
+
         // Set expectations.
         final CannedFillResponse.Builder builder = new CannedFillResponse.Builder()
-                .addDataset(new CannedDataset.Builder()
-                        .setField(ID_USERNAME, "dude")
-                        .setPresentation(createPresentation("The Dude"))
-                        .build());
+                .addDataset(datasetBuilder.build());
         sReplier.addResponse(builder.build());
-        mActivity.expectAutoFill("dude");
+        if (singleField) {
+            mActivity.expectAutoFill("dude");
+        } else {
+            mActivity.expectAutoFill("dude", "sweet");
+        }
 
         // Dynamically set password to make sure it's sanitized.
         mActivity.onPassword((v) -> v.setText("I AM GROOT"));
@@ -73,11 +110,6 @@
 
         // Check the results.
         mActivity.assertAutoFilled();
-
-        final Rect bounds = MyDrawable.getAutofilledBounds();
-        assertThat(bounds).isNotNull();
-        assertThat(bounds.right).isEqualTo(mActivity.getUsername().getWidth());
-        assertThat(bounds.bottom).isEqualTo(mActivity.getUsername().getHeight());
     }
 
     /**
diff --git a/tests/autofillservice/src/android/autofillservice/cts/MyDrawable.java b/tests/autofillservice/src/android/autofillservice/cts/MyDrawable.java
index 46965dd..003effe 100644
--- a/tests/autofillservice/src/android/autofillservice/cts/MyDrawable.java
+++ b/tests/autofillservice/src/android/autofillservice/cts/MyDrawable.java
@@ -30,7 +30,7 @@
 
     private static final String TAG = "MyDrawable";
 
-    private static final CountDownLatch sLatch = new CountDownLatch(1);
+    private static CountDownLatch sLatch;
     private static MyDrawable sInstance;
 
     private static Rect sAutofilledBounds;
@@ -44,7 +44,7 @@
 
     @Override
     public void draw(Canvas canvas) {
-        if (sAutofilledBounds == null) {
+        if (sInstance != null && sAutofilledBounds == null) {
             sAutofilledBounds = getBounds();
             Log.d(TAG, "Autofilled at " + sAutofilledBounds);
             sLatch.countDown();
@@ -52,12 +52,41 @@
     }
 
     public static Rect getAutofilledBounds() throws InterruptedException {
+        if (sLatch == null) {
+            throw new AssertionError("sLatch should be not null");
+        }
+
         if (!sLatch.await(Timeouts.FILL_TIMEOUT.ms(), TimeUnit.MILLISECONDS)) {
             throw new RetryableException(Timeouts.FILL_TIMEOUT, "custom drawable not drawn");
         }
         return sAutofilledBounds;
     }
 
+    /**
+     * Asserts the custom drawable is not drawn.
+     */
+    public static void assertDrawableNotDrawn() throws Exception {
+        if (sLatch == null) {
+            throw new AssertionError("sLatch should be not null");
+        }
+
+        if (sLatch.await(Timeouts.DRAWABLE_TIMEOUT_MS, TimeUnit.MILLISECONDS)) {
+            throw new AssertionError("custom drawable is drawn");
+        }
+    }
+
+    public static void initStatus() {
+        sLatch = new CountDownLatch(1);
+        sInstance = null;
+        sAutofilledBounds = null;
+    }
+
+    public static void clearStatus() {
+        sLatch = null;
+        sInstance = null;
+        sAutofilledBounds = null;
+    }
+
     @Override
     public void setAlpha(int alpha) {
     }
diff --git a/tests/autofillservice/src/android/autofillservice/cts/Timeouts.java b/tests/autofillservice/src/android/autofillservice/cts/Timeouts.java
index a4799c8..ae9991a 100644
--- a/tests/autofillservice/src/android/autofillservice/cts/Timeouts.java
+++ b/tests/autofillservice/src/android/autofillservice/cts/Timeouts.java
@@ -27,6 +27,7 @@
     private static final long ONE_NAPTIME_TO_RULE_THEN_ALL_MS = 2_000;
 
     public static final long MOCK_IME_TIMEOUT_MS = 5_000;
+    public static final long DRAWABLE_TIMEOUT_MS = 5_000;
 
     /**
      * Timeout until framework binds / unbinds from service.
diff --git a/tests/autofillservice/src/android/autofillservice/cts/UiBot.java b/tests/autofillservice/src/android/autofillservice/cts/UiBot.java
index 136bcba..a4860e3 100644
--- a/tests/autofillservice/src/android/autofillservice/cts/UiBot.java
+++ b/tests/autofillservice/src/android/autofillservice/cts/UiBot.java
@@ -178,6 +178,13 @@
         Log.v(TAG, "device idle in " + delta + "ms");
     }
 
+    public void waitForIdleSync() {
+        final long before = SystemClock.elapsedRealtimeNanos();
+        InstrumentationRegistry.getInstrumentation().waitForIdleSync();
+        final float delta = ((float) (SystemClock.elapsedRealtimeNanos() - before)) / 1_000_000;
+        Log.v(TAG, "device idle sync in " + delta + "ms");
+    }
+
     public void reset() {
         mOkToCallAssertNoDatasets = false;
     }
diff --git a/tests/autofillservice/src/android/autofillservice/cts/inline/InlineAugmentedLoginActivityTest.java b/tests/autofillservice/src/android/autofillservice/cts/inline/InlineAugmentedLoginActivityTest.java
index 1f94de1..79fd26d 100644
--- a/tests/autofillservice/src/android/autofillservice/cts/inline/InlineAugmentedLoginActivityTest.java
+++ b/tests/autofillservice/src/android/autofillservice/cts/inline/InlineAugmentedLoginActivityTest.java
@@ -17,28 +17,18 @@
 package android.autofillservice.cts.inline;
 
 import static android.autofillservice.cts.CannedFillResponse.NO_RESPONSE;
-import static android.autofillservice.cts.Timeouts.MOCK_IME_TIMEOUT_MS;
+import static android.autofillservice.cts.Helper.ID_USERNAME;
 import static android.autofillservice.cts.augmented.AugmentedHelper.assertBasicRequestInfo;
 
-import static com.android.cts.mockime.ImeEventStreamTestUtils.expectBindInput;
-import static com.android.cts.mockime.ImeEventStreamTestUtils.expectEvent;
-
-import static org.junit.Assume.assumeTrue;
-
 import android.autofillservice.cts.AutofillActivityTestRule;
 import android.autofillservice.cts.augmented.AugmentedAutofillAutoActivityLaunchTestCase;
 import android.autofillservice.cts.augmented.AugmentedLoginActivity;
 import android.autofillservice.cts.augmented.CannedAugmentedFillResponse;
 import android.autofillservice.cts.augmented.CtsAugmentedAutofillService.AugmentedFillRequest;
-import android.os.Process;
-import android.view.View;
 import android.view.autofill.AutofillId;
 import android.view.autofill.AutofillValue;
 import android.widget.EditText;
 
-import com.android.cts.mockime.ImeEventStream;
-import com.android.cts.mockime.MockImeSession;
-
 import org.junit.Test;
 
 public class InlineAugmentedLoginActivityTest
@@ -57,28 +47,11 @@
         };
     }
 
-    private void enableIME() throws Exception {
-        final MockImeSession mockImeSession = sMockImeSessionRule.getMockImeSession();
-        assumeTrue("MockIME not available", mockImeSession != null);
-        final ImeEventStream stream = mockImeSession.openEventStream();
-
-        // Wait until the MockIme gets bound to the TestActivity.
-        expectBindInput(stream, Process.myPid(), MOCK_IME_TIMEOUT_MS);
-
-        // Wait until IME is displaying.
-        mockImeSession.callRequestShowSelf(0);
-        expectEvent(stream, event -> "showSoftInput".equals(event.getEventName()),
-                MOCK_IME_TIMEOUT_MS);
-        expectEvent(stream, event -> "onStartInputView".equals(event.getEventName()),
-                MOCK_IME_TIMEOUT_MS);
-    }
-
     @Test
     public void testAugmentedAutoFill_oneDatasetThenFilled() throws Exception {
         // Set services
         enableService();
         enableAugmentedService();
-        enableIME();
 
         // Set expectations
         final EditText username = mActivity.getUsername();
@@ -97,7 +70,7 @@
                 .build());
 
         // Trigger auto-fill
-        mActivity.onUsername(View::requestFocus);
+        mUiBot.selectByRelativeId(ID_USERNAME);
         mUiBot.waitForIdle();
         sReplier.getNextFillRequest();
         final AugmentedFillRequest request1 = sAugmentedReplier.getNextFillRequest();
@@ -122,7 +95,6 @@
         // Set services
         enableService();
         enableAugmentedService();
-        enableIME();
 
         // Set expectations
         final EditText username = mActivity.getUsername();
@@ -145,7 +117,7 @@
                 .build());
 
         // Trigger auto-fill
-        mActivity.onUsername(View::requestFocus);
+        mUiBot.selectByRelativeId(ID_USERNAME);
         mUiBot.waitForIdle();
         sReplier.getNextFillRequest();
         final AugmentedFillRequest request1 = sAugmentedReplier.getNextFillRequest();
diff --git a/tests/autofillservice/src/android/autofillservice/cts/inline/InlineAuthenticationTest.java b/tests/autofillservice/src/android/autofillservice/cts/inline/InlineAuthenticationTest.java
index d27f6fc..99e49e5 100644
--- a/tests/autofillservice/src/android/autofillservice/cts/inline/InlineAuthenticationTest.java
+++ b/tests/autofillservice/src/android/autofillservice/cts/inline/InlineAuthenticationTest.java
@@ -23,16 +23,11 @@
 import static android.autofillservice.cts.Helper.UNUSED_AUTOFILL_VALUE;
 import static android.autofillservice.cts.Helper.getContext;
 import static android.autofillservice.cts.LoginActivity.getWelcomeMessage;
-import static android.autofillservice.cts.Timeouts.MOCK_IME_TIMEOUT_MS;
 import static android.autofillservice.cts.inline.InstrumentedAutoFillServiceInlineEnabled.SERVICE_NAME;
 import static android.service.autofill.SaveInfo.SAVE_DATA_TYPE_PASSWORD;
 
-import static com.android.cts.mockime.ImeEventStreamTestUtils.expectBindInput;
-
 import static com.google.common.truth.Truth.assertWithMessage;
 
-import static org.junit.Assume.assumeTrue;
-
 import android.autofillservice.cts.AbstractLoginActivityTestCase;
 import android.autofillservice.cts.AuthenticationActivity;
 import android.autofillservice.cts.CannedFillResponse;
@@ -40,12 +35,8 @@
 import android.autofillservice.cts.Helper;
 import android.autofillservice.cts.InstrumentedAutoFillService.SaveRequest;
 import android.content.IntentSender;
-import android.os.Process;
 import android.platform.test.annotations.AppModeFull;
 
-import com.android.cts.mockime.ImeEventStream;
-import com.android.cts.mockime.MockImeSession;
-
 import org.junit.Test;
 
 import java.util.regex.Pattern;
@@ -81,9 +72,6 @@
         // Set service.
         enableService();
 
-        final MockImeSession mockImeSession = sMockImeSessionRule.getMockImeSession();
-        assumeTrue("MockIME not available", mockImeSession != null);
-
         // Prepare the authenticated response
         final IntentSender authentication = AuthenticationActivity.createSender(mContext, 1,
                 new CannedFillResponse.CannedDataset.Builder()
@@ -101,12 +89,6 @@
         sReplier.addResponse(builder.build());
         mActivity.expectAutoFill("dude", "sweet");
 
-        final ImeEventStream stream = mockImeSession.openEventStream();
-        mockImeSession.callRequestShowSelf(0);
-
-        // Wait until the MockIme gets bound to the TestActivity.
-        expectBindInput(stream, Process.myPid(), MOCK_IME_TIMEOUT_MS);
-
         // Trigger auto-fill.
         assertSuggestionShownBySelectViewId(ID_USERNAME, /* childrenCount */ 1);
         sReplier.getNextFillRequest();
@@ -117,7 +99,6 @@
         // Now tap on 1st field to show it again...
         assertSuggestionShownBySelectViewId(ID_USERNAME, /* childrenCount */ 1);
 
-        // TODO(b/149891961): add logic for cancelFirstAttempt
         if (cancelFirstAttempt) {
             // Trigger the auth dialog, but emulate cancel.
             AuthenticationActivity.setResultCode(RESULT_CANCELED);
@@ -146,9 +127,6 @@
         // Set service.
         enableService();
 
-        final MockImeSession mockImeSession = sMockImeSessionRule.getMockImeSession();
-        assumeTrue("MockIME not available", mockImeSession != null);
-
         // Create the authentication intents
         final CannedDataset unlockedDataset = new CannedDataset.Builder()
                 .setField(ID_USERNAME, "dude")
@@ -169,12 +147,6 @@
         // Set expectation for the activity
         mActivity.expectAutoFill("dude", "sweet");
 
-        final ImeEventStream stream = mockImeSession.openEventStream();
-        mockImeSession.callRequestShowSelf(0);
-
-        // Wait until the MockIme gets bound to the TestActivity.
-        expectBindInput(stream, Process.myPid(), MOCK_IME_TIMEOUT_MS);
-
         // Trigger auto-fill, make sure it's showing initially.
         assertSuggestionShownBySelectViewId(ID_USERNAME, /* childrenCount */ 1);
         sReplier.getNextFillRequest();
@@ -190,17 +162,7 @@
         mUiBot.waitForIdle();
         mUiBot.assertSuggestionStrip(1);
 
-        // Delete the char and assert it's not shown again...
-        mActivity.onUsername((v) -> v.setText("a"));
-        mUiBot.waitForIdle();
-        mUiBot.assertNoSuggestionStripEver();
-
-        // ...then type something again to show it, as the input will have 2 chars.
-        mActivity.onUsername((v) -> v.setText("aa"));
-        mUiBot.waitForIdle();
-        mUiBot.assertSuggestionStrip(1);
-
-        // ...and select it this time
+        // ...and select it
         mUiBot.selectSuggestion(0);
         mUiBot.waitForIdle();
         mUiBot.assertNoSuggestionStripEver();
@@ -230,9 +192,6 @@
         // Set service.
         enableService();
 
-        final MockImeSession mockImeSession = sMockImeSessionRule.getMockImeSession();
-        assumeTrue("MockIME not available", mockImeSession != null);
-
         // Prepare the authenticated response
         final CannedDataset dataset = new CannedDataset.Builder()
                 .setField(ID_USERNAME, "dude")
@@ -260,12 +219,6 @@
         // Set expectation for the activity
         mActivity.expectAutoFill("dude", "sweet");
 
-        final ImeEventStream stream = mockImeSession.openEventStream();
-        mockImeSession.callRequestShowSelf(0);
-
-        // Wait until the MockIme gets bound to the TestActivity.
-        expectBindInput(stream, Process.myPid(), MOCK_IME_TIMEOUT_MS);
-
         // Trigger auto-fill, make sure it's showing initially.
         assertSuggestionShownBySelectViewId(ID_USERNAME, /* childrenCount */ 1);
         sReplier.getNextFillRequest();
diff --git a/tests/autofillservice/src/android/autofillservice/cts/inline/InlineFilteringTest.java b/tests/autofillservice/src/android/autofillservice/cts/inline/InlineFilteringTest.java
index 67d7a35..eae1fc9 100644
--- a/tests/autofillservice/src/android/autofillservice/cts/inline/InlineFilteringTest.java
+++ b/tests/autofillservice/src/android/autofillservice/cts/inline/InlineFilteringTest.java
@@ -19,20 +19,11 @@
 import static android.autofillservice.cts.Helper.ID_PASSWORD;
 import static android.autofillservice.cts.Helper.ID_USERNAME;
 import static android.autofillservice.cts.Helper.getContext;
-import static android.autofillservice.cts.Timeouts.MOCK_IME_TIMEOUT_MS;
 import static android.autofillservice.cts.inline.InstrumentedAutoFillServiceInlineEnabled.SERVICE_NAME;
 
-import static com.android.cts.mockime.ImeEventStreamTestUtils.expectBindInput;
-
-import static org.junit.Assume.assumeTrue;
-
 import android.autofillservice.cts.AbstractLoginActivityTestCase;
 import android.autofillservice.cts.CannedFillResponse;
 import android.autofillservice.cts.Helper;
-import android.os.Process;
-
-import com.android.cts.mockime.ImeEventStream;
-import com.android.cts.mockime.MockImeSession;
 
 import org.junit.Test;
 
@@ -52,8 +43,6 @@
     @Test
     public void testFiltering_filtersByPrefix() throws Exception {
         enableService();
-        final MockImeSession mockImeSession = sMockImeSessionRule.getMockImeSession();
-        assumeTrue("MockIME not available", mockImeSession != null);
 
         // Set expectations.
         final CannedFillResponse.Builder builder = new CannedFillResponse.Builder()
@@ -72,36 +61,101 @@
         sReplier.addResponse(builder.build());
         mActivity.expectAutoFill("test", "tweet");
 
-        final ImeEventStream stream = mockImeSession.openEventStream();
-        mockImeSession.callRequestShowSelf(0);
-        // Wait until the MockIme gets bound to the TestActivity.
-        expectBindInput(stream, Process.myPid(), MOCK_IME_TIMEOUT_MS);
-
         // Trigger autofill, then make sure it's showing initially.
         mUiBot.selectByRelativeId(ID_USERNAME);
-        mUiBot.waitForIdle();
+        mUiBot.waitForIdleSync();
         mUiBot.assertSuggestionStrip(2);
         sReplier.getNextFillRequest();
 
         // Filter out one of the datasets.
         mActivity.onUsername((v) -> v.setText("t"));
-        mUiBot.waitForIdle();
+        mUiBot.waitForIdleSync();
         mUiBot.assertSuggestionStrip(1);
 
         // Filter out both datasets.
         mActivity.onUsername((v) -> v.setText("ta"));
-        mUiBot.waitForIdle();
+        mUiBot.waitForIdleSync();
         mUiBot.assertNoSuggestionStripEver();
 
         // Backspace to bring back one dataset.
         mActivity.onUsername((v) -> v.setText("t"));
-        mUiBot.waitForIdle();
+        mUiBot.waitForIdleSync();
         mUiBot.assertSuggestionStrip(1);
 
         mUiBot.selectSuggestion(0);
-        // TODO(b/151702075): Find a better way to wait for the views to update.
-        Thread.sleep(/* millis= */ 1000);
-        mUiBot.waitForIdle();
+        mUiBot.waitForIdleSync();
         mActivity.assertAutoFilled();
     }
+
+    @Test
+    public void testFiltering_privacy() throws Exception {
+        enableService();
+
+        final CannedFillResponse.Builder builder = new CannedFillResponse.Builder()
+                .addDataset(new CannedFillResponse.CannedDataset.Builder()
+                        .setField(ID_USERNAME, "sergey")
+                        .setPresentation(createPresentation("sergey"))
+                        .setInlinePresentation(createInlinePresentation("sergey"))
+                        .build());
+        sReplier.addResponse(builder.build());
+
+        // Trigger autofill and enter the correct first char, then make sure it's showing initially.
+        mUiBot.selectByRelativeId(ID_USERNAME);
+        mActivity.onUsername((v) -> v.setText("s"));
+        mUiBot.waitForIdleSync();
+        mUiBot.assertSuggestionStrip(1);
+        sReplier.getNextFillRequest();
+
+        // Enter the wrong second char - filters out dataset.
+        mActivity.onUsername((v) -> v.setText("sa"));
+        mUiBot.waitForIdleSync();
+        mUiBot.assertNoSuggestionStripEver();
+
+        // Backspace to bring back the dataset.
+        mActivity.onUsername((v) -> v.setText("s"));
+        mUiBot.waitForIdleSync();
+        mUiBot.assertSuggestionStrip(1);
+
+        // Enter the correct second char, then check that suggestions are no longer shown.
+        mActivity.onUsername((v) -> v.setText("se"));
+        mUiBot.waitForIdleSync();
+        mUiBot.assertNoSuggestionStripEver();
+        mActivity.onUsername((v) -> v.setText(""));
+        mUiBot.waitForIdleSync();
+        mUiBot.assertNoSuggestionStripEver();
+    }
+
+    /**
+     * Tests that the privacy mechanism still works when the full text is replaced, as opposed to
+     * individual characters being added/removed.
+     */
+    @Test
+    public void testFiltering_privacy_textReplacement() throws Exception {
+        enableService();
+
+        final CannedFillResponse.Builder builder = new CannedFillResponse.Builder()
+                .addDataset(new CannedFillResponse.CannedDataset.Builder()
+                        .setField(ID_USERNAME, "sergey")
+                        .setPresentation(createPresentation("sergey"))
+                        .setInlinePresentation(createInlinePresentation("sergey"))
+                        .build());
+        sReplier.addResponse(builder.build());
+
+        // Trigger autofill and enter a few correct chars, then make sure it's showing initially.
+        mUiBot.selectByRelativeId(ID_USERNAME);
+        mActivity.onUsername((v) -> v.setText("ser"));
+        mUiBot.waitForIdleSync();
+        mUiBot.assertSuggestionStrip(1);
+        sReplier.getNextFillRequest();
+
+        // Enter a couple different strings, then check that suggestions are no longer shown.
+        mActivity.onUsername((v) -> v.setText("aaa"));
+        mActivity.onUsername((v) -> v.setText("bbb"));
+        mActivity.onUsername((v) -> v.setText("ser"));
+        mUiBot.waitForIdleSync();
+        mUiBot.assertNoSuggestionStripEver();
+        mActivity.onUsername((v) -> v.setText(""));
+        mUiBot.waitForIdleSync();
+        mUiBot.assertNoSuggestionStripEver();
+    }
 }
diff --git a/tests/autofillservice/src/android/autofillservice/cts/inline/InlineLoginActivityTest.java b/tests/autofillservice/src/android/autofillservice/cts/inline/InlineLoginActivityTest.java
index 1bee09d..af916ac 100644
--- a/tests/autofillservice/src/android/autofillservice/cts/inline/InlineLoginActivityTest.java
+++ b/tests/autofillservice/src/android/autofillservice/cts/inline/InlineLoginActivityTest.java
@@ -23,27 +23,17 @@
 import static android.autofillservice.cts.Helper.findNodeByResourceId;
 import static android.autofillservice.cts.Helper.getContext;
 import static android.autofillservice.cts.InstrumentedAutoFillService.waitUntilDisconnected;
-import static android.autofillservice.cts.Timeouts.MOCK_IME_TIMEOUT_MS;
 import static android.autofillservice.cts.inline.InstrumentedAutoFillServiceInlineEnabled.SERVICE_NAME;
 
-import static com.android.cts.mockime.ImeEventStreamTestUtils.editorMatcher;
-import static com.android.cts.mockime.ImeEventStreamTestUtils.expectBindInput;
-import static com.android.cts.mockime.ImeEventStreamTestUtils.expectEvent;
-
 import static com.google.common.truth.Truth.assertThat;
 import static com.google.common.truth.Truth.assertWithMessage;
 
-import static org.junit.Assume.assumeTrue;
-
 import android.autofillservice.cts.AbstractLoginActivityTestCase;
 import android.autofillservice.cts.CannedFillResponse;
 import android.autofillservice.cts.Helper;
 import android.autofillservice.cts.InstrumentedAutoFillService;
-import android.os.Process;
 import android.service.autofill.FillContext;
-
-import com.android.cts.mockime.ImeEventStream;
-import com.android.cts.mockime.MockImeSession;
+import android.view.View;
 
 import org.junit.Test;
 
@@ -61,21 +51,11 @@
         // Set service.
         enableService();
 
-        final MockImeSession mockImeSession = sMockImeSessionRule.getMockImeSession();
-        assumeTrue("MockIME not available", mockImeSession != null);
-
         sReplier.addResponse(CannedFillResponse.NO_RESPONSE);
 
-        final ImeEventStream stream = mockImeSession.openEventStream();
-        mockImeSession.callRequestShowSelf(0);
-
-        // Wait until the MockIme gets bound to the TestActivity.
-        expectBindInput(stream, Process.myPid(), MOCK_IME_TIMEOUT_MS);
-
         // Trigger auto-fill.
-        requestFocusOnUsername();
-        expectEvent(stream, editorMatcher("onStartInput", mActivity.getUsername().getId()),
-                MOCK_IME_TIMEOUT_MS);
+        mUiBot.selectByRelativeId(ID_USERNAME);
+        mUiBot.waitForIdleSync();
 
         sReplier.getNextFillRequest();
 
@@ -106,9 +86,6 @@
         // Set service.
         enableService();
 
-        final MockImeSession mockImeSession = sMockImeSessionRule.getMockImeSession();
-        assumeTrue("MockIME not available", mockImeSession != null);
-
         final CannedFillResponse.Builder builder = new CannedFillResponse.Builder();
         for (int i = 0; i < numDatasets; i++) {
             builder.addDataset(new CannedFillResponse.CannedDataset.Builder()
@@ -122,34 +99,20 @@
         sReplier.addResponse(builder.build());
         mActivity.expectAutoFill("dude" + selectedDatasetIndex, "sweet" + selectedDatasetIndex);
 
-        final ImeEventStream stream = mockImeSession.openEventStream();
-
-        // Wait until the MockIme gets bound to the TestActivity.
-        expectBindInput(stream, Process.myPid(), MOCK_IME_TIMEOUT_MS);
-
-        // Wait until IME is displaying.
-        mockImeSession.callRequestShowSelf(0);
-        expectEvent(stream, event -> "showSoftInput".equals(event.getEventName()),
-                MOCK_IME_TIMEOUT_MS);
-        expectEvent(stream, event -> "onStartInputView".equals(event.getEventName()),
-                MOCK_IME_TIMEOUT_MS);
-
         // Dynamically set password to make sure it's sanitized.
-        mActivity.onPassword((v) -> v.setText("I AM GROOT"));
+        mActivity.syncRunOnUiThread(() ->  mActivity.onPassword((v) -> v.setText("I AM GROOT")));
+        mUiBot.waitForIdleSync();
 
         // Trigger auto-fill.
-        requestFocusOnUsername();
-        expectEvent(stream, editorMatcher("onStartInput", mActivity.getUsername().getId()),
-                MOCK_IME_TIMEOUT_MS);
-
-        // Wait until suggestion strip is updated
-        expectEvent(stream, event -> "onSuggestionViewUpdated".equals(event.getEventName()),
-                MOCK_IME_TIMEOUT_MS);
+        mActivity.onUsername(View::requestFocus);
+        mUiBot.selectByRelativeId(ID_USERNAME);
+        mUiBot.waitForIdleSync();
 
         mUiBot.assertSuggestionStrip(numDatasets);
         mUiBot.assertNoDatasetsEver();
 
         mUiBot.selectSuggestion(selectedDatasetIndex);
+        mUiBot.waitForIdleSync();
 
         // Check the results.
         mActivity.assertAutoFilled();
@@ -174,9 +137,6 @@
         // Set service.
         enableService();
 
-        final MockImeSession mockImeSession = sMockImeSessionRule.getMockImeSession();
-        assumeTrue("MockIME not available", mockImeSession != null);
-
         final CannedFillResponse.Builder builder = new CannedFillResponse.Builder()
                 .addDataset(new CannedFillResponse.CannedDataset.Builder()
                         .setField(ID_USERNAME, "dude")
@@ -197,45 +157,26 @@
         sReplier.addResponse(builder.build());
         mActivity.expectAutoFill("dude");
 
-        final ImeEventStream stream = mockImeSession.openEventStream();
-
-        // Wait until the MockIme gets bound to the TestActivity.
-        expectBindInput(stream, Process.myPid(), MOCK_IME_TIMEOUT_MS);
-
-        // Wait until IME is displaying.
-        mockImeSession.callRequestShowSelf(0);
-        expectEvent(stream, event -> "showSoftInput".equals(event.getEventName()),
-                MOCK_IME_TIMEOUT_MS);
-        expectEvent(stream, event -> "onStartInputView".equals(event.getEventName()),
-                MOCK_IME_TIMEOUT_MS);
-
         // Trigger auto-fill.
-        requestFocusOnUsername();
-        expectEvent(stream, editorMatcher("onStartInput", mActivity.getUsername().getId()),
-                MOCK_IME_TIMEOUT_MS);
-
-        // Wait until suggestion strip is updated
-        expectEvent(stream, event -> "onSuggestionViewUpdated".equals(event.getEventName()),
-                MOCK_IME_TIMEOUT_MS);
+        mUiBot.selectByRelativeId(ID_USERNAME);
+        mUiBot.waitForIdleSync();
 
         mUiBot.assertNoDatasetsEver();
-
         mUiBot.assertSuggestionStrip(1);
 
         // Switch focus to password
-        requestFocusOnPassword();
-        expectEvent(stream, event -> "onSuggestionViewUpdated".equals(event.getEventName()),
-                MOCK_IME_TIMEOUT_MS);
+        mUiBot.selectByRelativeId(ID_PASSWORD);
+        mUiBot.waitForIdleSync();
 
         mUiBot.assertSuggestionStrip(2);
 
         // Switch focus back to username
-        requestFocusOnUsername();
-        expectEvent(stream, event -> "onSuggestionViewUpdated".equals(event.getEventName()),
-                MOCK_IME_TIMEOUT_MS);
+        mUiBot.selectByRelativeId(ID_USERNAME);
+        mUiBot.waitForIdleSync();
 
         mUiBot.assertSuggestionStrip(1);
         mUiBot.selectSuggestion(0);
+        mUiBot.waitForIdleSync();
 
         // Check the results.
         mActivity.assertAutoFilled();
diff --git a/tests/backup/Android.bp b/tests/backup/Android.bp
index 1b7728c..421c20d 100644
--- a/tests/backup/Android.bp
+++ b/tests/backup/Android.bp
@@ -34,6 +34,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/backup/app/Android.bp b/tests/backup/app/Android.bp
index 10e66ed..fa2f391 100644
--- a/tests/backup/app/Android.bp
+++ b/tests/backup/app/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     platform_apis: true,
@@ -45,6 +46,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     platform_apis: true,
@@ -65,6 +67,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     platform_apis: true,
@@ -85,6 +88,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     platform_apis: true,
diff --git a/tests/camera/Android.mk b/tests/camera/Android.mk
index df9e106..e61d856 100644
--- a/tests/camera/Android.mk
+++ b/tests/camera/Android.mk
@@ -90,7 +90,7 @@
 	$(call all-renderscript-files-under, src)
 
 # Tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 LOCAL_PACKAGE_NAME := CtsCameraTestCases
 
diff --git a/tests/camera/AndroidManifest.xml b/tests/camera/AndroidManifest.xml
index 85221d3..efe5700 100644
--- a/tests/camera/AndroidManifest.xml
+++ b/tests/camera/AndroidManifest.xml
@@ -70,6 +70,13 @@
             android:process=":camera2ActivityProcess">
         </activity>
 
+        <activity android:name="android.hardware.camera2.cts.Camera2OfflineTestActivity"
+            android:label="RemoteCamera2OfflineTestActivity"
+            android:screenOrientation="landscape"
+            android:configChanges="keyboardHidden|orientation|screenSize"
+            android:process=":camera2ActivityProcess">
+        </activity>
+
         <activity android:name="android.hardware.multiprocess.camera.cts.MediaRecorderCameraActivity"
             android:label="RemoteMediaRecorderCameraActivity"
             android:screenOrientation="landscape"
diff --git a/tests/camera/api25test/Android.mk b/tests/camera/api25test/Android.mk
index 506e444..9fe72e4 100644
--- a/tests/camera/api25test/Android.mk
+++ b/tests/camera/api25test/Android.mk
@@ -38,7 +38,7 @@
 LOCAL_JAVA_LIBRARIES := android.test.runner.stubs
 
 # Tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10
 
 include $(BUILD_CTS_PACKAGE)
 
diff --git a/tests/camera/src/android/hardware/camera2/cts/BurstCaptureTest.java b/tests/camera/src/android/hardware/camera2/cts/BurstCaptureTest.java
index cfe1db3..ca9d75d 100644
--- a/tests/camera/src/android/hardware/camera2/cts/BurstCaptureTest.java
+++ b/tests/camera/src/android/hardware/camera2/cts/BurstCaptureTest.java
@@ -54,7 +54,7 @@
     public void testYuvBurst() throws Exception {
         final int YUV_BURST_SIZE = 100;
         testBurst(ImageFormat.YUV_420_888, YUV_BURST_SIZE, true/*checkFrameRate*/,
-                false/*testBokehMode*/);
+                false/*testStillBokeh*/);
     }
 
     /**
@@ -68,7 +68,7 @@
     public void testJpegBurst() throws Exception {
         final int JPEG_BURST_SIZE = 10;
         testBurst(ImageFormat.JPEG, JPEG_BURST_SIZE, false/*checkFrameRate*/,
-                false/*testBokehMode*/);
+                false/*testStillBokeh*/);
     }
 
     /**
@@ -104,10 +104,12 @@
                     continue;
                 }
 
-                Capability[] bokehCaps = staticInfo.getAvailableBokehCapsChecked();
+                Capability[] extendedSceneModeCaps =
+                        staticInfo.getAvailableExtendedSceneModeCapsChecked();
                 boolean supportStillBokeh = false;
-                for (Capability bokehCap : bokehCaps) {
-                    if (bokehCap.getMode() == CameraMetadata.CONTROL_BOKEH_MODE_STILL_CAPTURE) {
+                for (Capability cap : extendedSceneModeCaps) {
+                    if (cap.getMode() ==
+                            CameraMetadata.CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE) {
                         supportStillBokeh = true;
                         break;
                     }
@@ -180,10 +182,10 @@
         burstBuilder.set(CaptureRequest.CONTROL_AE_LOCK, true);
         burstBuilder.set(CaptureRequest.CONTROL_AWB_LOCK, true);
         if (testStillBokeh) {
-            previewBuilder.set(CaptureRequest.CONTROL_BOKEH_MODE,
-                    CameraMetadata.CONTROL_BOKEH_MODE_STILL_CAPTURE);
-            burstBuilder.set(CaptureRequest.CONTROL_BOKEH_MODE,
-                    CameraMetadata.CONTROL_BOKEH_MODE_STILL_CAPTURE);
+            previewBuilder.set(CaptureRequest.CONTROL_EXTENDED_SCENE_MODE,
+                    CameraMetadata.CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE);
+            burstBuilder.set(CaptureRequest.CONTROL_EXTENDED_SCENE_MODE,
+                    CameraMetadata.CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE);
         }
 
         // Create session and start up preview
diff --git a/tests/camera/src/android/hardware/camera2/cts/Camera2OfflineTestActivity.java b/tests/camera/src/android/hardware/camera2/cts/Camera2OfflineTestActivity.java
new file mode 100644
index 0000000..2483eef
--- /dev/null
+++ b/tests/camera/src/android/hardware/camera2/cts/Camera2OfflineTestActivity.java
@@ -0,0 +1,158 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.hardware.camera2.cts;
+
+import static android.hardware.camera2.cts.CameraTestUtils.OFFLINE_CAMERA_ID;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.hardware.camera2.CameraAccessException;
+import android.hardware.camera2.CameraDevice;
+import android.hardware.camera2.CameraManager;
+import android.hardware.multiprocess.camera.cts.ErrorLoggingService;
+import android.hardware.multiprocess.camera.cts.TestConstants;
+import android.os.Bundle;
+import android.os.Handler;
+import android.util.Log;
+
+/**
+ * Activity implementing basic access of the Camera2 API.
+ *
+ * <p />
+ * This will log all errors to {@link android.hardware.multiprocess.camera.cts.ErrorLoggingService}.
+ */
+public class Camera2OfflineTestActivity extends Activity {
+    private static final String TAG = "Camera2OfflineTestActivity";
+
+    ErrorLoggingService.ErrorServiceConnection mErrorServiceConnection;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        Log.i(TAG, "onCreate called.");
+        super.onCreate(savedInstanceState);
+        mErrorServiceConnection = new ErrorLoggingService.ErrorServiceConnection(this);
+        mErrorServiceConnection.start();
+    }
+
+    @Override
+    protected void onPause() {
+        Log.i(TAG, "onPause called.");
+        super.onPause();
+    }
+
+    @Override
+    protected void onResume() {
+        Log.i(TAG, "onResume called.");
+        super.onResume();
+
+        try {
+            CameraManager manager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
+
+            if (manager == null) {
+                mErrorServiceConnection.logAsync(TestConstants.EVENT_CAMERA_ERROR, TAG +
+                        " could not connect camera service");
+                return;
+            }
+            Intent intent = getIntent();
+            Bundle bundledExtras = intent.getExtras();
+            if (null == bundledExtras) {
+                mErrorServiceConnection.logAsync(TestConstants.EVENT_CAMERA_ERROR, TAG +
+                        " not bundled intent extras");
+                return;
+            }
+
+            String cameraId = bundledExtras.getString(OFFLINE_CAMERA_ID);
+            if (null == cameraId) {
+                mErrorServiceConnection.logAsync(TestConstants.EVENT_CAMERA_ERROR, TAG +
+                        " no camera id present in bundled extra");
+                return;
+            }
+
+            manager.registerAvailabilityCallback(new CameraManager.AvailabilityCallback() {
+                @Override
+                public void onCameraAvailable(String cameraId) {
+                    super.onCameraAvailable(cameraId);
+                    mErrorServiceConnection.logAsync(TestConstants.EVENT_CAMERA_AVAILABLE,
+                            cameraId);
+                    Log.i(TAG, "Camera " + cameraId + " is available");
+                }
+
+                @Override
+                public void onCameraUnavailable(String cameraId) {
+                    super.onCameraUnavailable(cameraId);
+                    mErrorServiceConnection.logAsync(TestConstants.EVENT_CAMERA_UNAVAILABLE,
+                            cameraId);
+                    Log.i(TAG, "Camera " + cameraId + " is unavailable");
+                }
+
+                @Override
+                public void onPhysicalCameraAvailable(String cameraId, String physicalCameraId) {
+                    super.onPhysicalCameraAvailable(cameraId, physicalCameraId);
+                    mErrorServiceConnection.logAsync(TestConstants.EVENT_CAMERA_AVAILABLE,
+                            cameraId + " : " + physicalCameraId);
+                    Log.i(TAG, "Camera " + cameraId + " : " + physicalCameraId + " is available");
+                }
+
+                @Override
+                public void onPhysicalCameraUnavailable(String cameraId, String physicalCameraId) {
+                    super.onPhysicalCameraUnavailable(cameraId, physicalCameraId);
+                    mErrorServiceConnection.logAsync(TestConstants.EVENT_CAMERA_UNAVAILABLE,
+                            cameraId + " : " + physicalCameraId);
+                    Log.i(TAG, "Camera " + cameraId + " : " + physicalCameraId + " is unavailable");
+                }
+            }, null);
+
+            manager.openCamera(cameraId, new CameraDevice.StateCallback() {
+                @Override
+                public void onOpened(CameraDevice cameraDevice) {
+                    mErrorServiceConnection.logAsync(TestConstants.EVENT_CAMERA_CONNECT,
+                            cameraId);
+                    Log.i(TAG, "Camera " + cameraId + " is opened");
+                }
+
+                @Override
+                public void onDisconnected(CameraDevice cameraDevice) {
+                    mErrorServiceConnection.logAsync(TestConstants.EVENT_CAMERA_EVICTED,
+                            cameraId);
+                    Log.i(TAG, "Camera " + cameraId + " is disconnected");
+                }
+
+                @Override
+                public void onError(CameraDevice cameraDevice, int i) {
+                    mErrorServiceConnection.logAsync(TestConstants.EVENT_CAMERA_ERROR, TAG +
+                            " Camera " + cameraId + " experienced error " + i);
+                    Log.e(TAG, "Camera " + cameraId + " onError called with error " + i);
+                }
+            }, null);
+        } catch (CameraAccessException e) {
+            mErrorServiceConnection.logAsync(TestConstants.EVENT_CAMERA_ERROR, TAG +
+                    " camera exception during connection: " + e);
+            Log.e(TAG, "Access exception: " + e);
+        }
+    }
+
+    @Override
+    protected void onDestroy() {
+        Log.i(TAG, "onDestroy called.");
+        super.onDestroy();
+        if (mErrorServiceConnection != null) {
+            mErrorServiceConnection.stop();
+            mErrorServiceConnection = null;
+        }
+    }
+}
diff --git a/tests/camera/src/android/hardware/camera2/cts/CameraDeviceTest.java b/tests/camera/src/android/hardware/camera2/cts/CameraDeviceTest.java
index 01d9a1e2..73e3828 100644
--- a/tests/camera/src/android/hardware/camera2/cts/CameraDeviceTest.java
+++ b/tests/camera/src/android/hardware/camera2/cts/CameraDeviceTest.java
@@ -2519,17 +2519,6 @@
                     CaptureRequest.DISTORTION_CORRECTION_MODE_OFF);
         }
 
-        // Scaler settings
-        if (mStaticInfo.areKeysAvailable(
-                CameraCharacteristics.SCALER_AVAILABLE_ROTATE_AND_CROP_MODES)) {
-            List<Integer> rotateAndCropModes = Arrays.asList(toObject(
-                props.get(CameraCharacteristics.SCALER_AVAILABLE_ROTATE_AND_CROP_MODES)));
-            if (rotateAndCropModes.contains(SCALER_ROTATE_AND_CROP_AUTO)) {
-                mCollector.expectKeyValueEquals(request, SCALER_ROTATE_AND_CROP,
-                        CaptureRequest.SCALER_ROTATE_AND_CROP_AUTO);
-            }
-        }
-
         // TODO: use the list of keys from CameraCharacteristics to avoid expecting
         //       keys which are not available by this CameraDevice.
     }
diff --git a/tests/camera/src/android/hardware/camera2/cts/CaptureRequestTest.java b/tests/camera/src/android/hardware/camera2/cts/CaptureRequestTest.java
index 74e2adc..4a4aa0d 100644
--- a/tests/camera/src/android/hardware/camera2/cts/CaptureRequestTest.java
+++ b/tests/camera/src/android/hardware/camera2/cts/CaptureRequestTest.java
@@ -900,10 +900,10 @@
     }
 
     /**
-     * Test bokeh mode controls.
+     * Test extended scene mode controls.
      */
     @Test
-    public void testBokehModes() throws Exception {
+    public void testExtendedSceneModes() throws Exception {
         for (String id : mCameraIdsUnderTest) {
             try {
                 if (!mAllStaticInfo.get(id).isColorOutputSupported()) {
@@ -912,7 +912,7 @@
                 }
                 openDevice(id);
                 List<Range<Integer>> fpsRanges = getTargetFpsRangesUpTo30(mStaticInfo);
-                bokehModeTestByCamera(fpsRanges);
+                extendedSceneModeTestByCamera(fpsRanges);
             } finally {
                 closeDevice();
             }
@@ -2953,9 +2953,9 @@
         }
     }
 
-    private void bokehModeTestByCamera(List<Range<Integer>> fpsRanges) throws Exception {
-        Capability[] bokehCaps = mStaticInfo.getAvailableBokehCapsChecked();
-        if (bokehCaps.length == 0) {
+    private void extendedSceneModeTestByCamera(List<Range<Integer>> fpsRanges) throws Exception {
+        Capability[] extendedSceneModeCaps = mStaticInfo.getAvailableExtendedSceneModeCapsChecked();
+        if (extendedSceneModeCaps.length == 0) {
             return;
         }
 
@@ -2963,17 +2963,17 @@
         CaptureRequest.Builder requestBuilder =
                 mCamera.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
 
-        for (Capability bokehCap : bokehCaps) {
-            int mode = bokehCap.getMode();
-            requestBuilder.set(CaptureRequest.CONTROL_BOKEH_MODE, mode);
+        for (Capability cap : extendedSceneModeCaps) {
+            int mode = cap.getMode();
+            requestBuilder.set(CaptureRequest.CONTROL_EXTENDED_SCENE_MODE, mode);
 
-            // Test that OFF and CONTINUOUS mode doesn't slow down the frame rate
-            if (mode == CaptureRequest.CONTROL_BOKEH_MODE_OFF ||
-                    mode == CaptureRequest.CONTROL_BOKEH_MODE_CONTINUOUS) {
+            // Test that DISABLED and BOKEH_CONTINUOUS mode doesn't slow down the frame rate
+            if (mode == CaptureRequest.CONTROL_EXTENDED_SCENE_MODE_DISABLED ||
+                    mode == CaptureRequest.CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS) {
                 verifyFpsNotSlowDown(requestBuilder, NUM_FRAMES_VERIFIED, fpsRanges);
             }
 
-            Range<Float> zoomRange = bokehCap.getZoomRatioRange();
+            Range<Float> zoomRange = cap.getZoomRatioRange();
             float[] zoomRatios = new float[]{zoomRange.getLower(), zoomRange.getUpper()};
             for (float ratio : zoomRatios) {
                 SimpleCaptureCallback listener = new SimpleCaptureCallback();
@@ -2981,7 +2981,7 @@
                 startPreview(requestBuilder, maxPreviewSize, listener);
                 waitForSettingsApplied(listener, NUM_FRAMES_WAITED_FOR_UNKNOWN_LATENCY);
 
-                verifyCaptureResultForKey(CaptureResult.CONTROL_BOKEH_MODE,
+                verifyCaptureResultForKey(CaptureResult.CONTROL_EXTENDED_SCENE_MODE,
                         mode, listener, NUM_FRAMES_VERIFIED);
                 verifyCaptureResultForKey(CaptureResult.CONTROL_ZOOM_RATIO,
                         ratio, listener, NUM_FRAMES_VERIFIED);
diff --git a/tests/camera/src/android/hardware/camera2/cts/CaptureResultTest.java b/tests/camera/src/android/hardware/camera2/cts/CaptureResultTest.java
index 5940493..a5c8978 100644
--- a/tests/camera/src/android/hardware/camera2/cts/CaptureResultTest.java
+++ b/tests/camera/src/android/hardware/camera2/cts/CaptureResultTest.java
@@ -729,12 +729,8 @@
             waiverKeys.add(CaptureResult.STATISTICS_OIS_SAMPLES);
         }
 
-        if (staticInfo.getAvailableBokehCapsChecked().length == 0) {
-            waiverKeys.add(CaptureResult.CONTROL_BOKEH_MODE);
-        }
-
-        if (!staticInfo.isRotateAndCropSupported()) {
-            waiverKeys.add(CaptureResult.SCALER_ROTATE_AND_CROP);
+        if (staticInfo.getAvailableExtendedSceneModeCapsChecked().length == 0) {
+            waiverKeys.add(CaptureResult.CONTROL_EXTENDED_SCENE_MODE);
         }
 
         if (staticInfo.isHardwareLevelAtLeastFull()) {
@@ -851,7 +847,6 @@
         waiverKeys.add(CaptureResult.STATISTICS_FACE_DETECT_MODE);
         waiverKeys.add(CaptureResult.FLASH_MODE);
         waiverKeys.add(CaptureResult.SCALER_CROP_REGION);
-        waiverKeys.add(CaptureResult.SCALER_ROTATE_AND_CROP);
 
         return waiverKeys;
     }
@@ -998,7 +993,7 @@
         resultKeys.add(CaptureResult.CONTROL_POST_RAW_SENSITIVITY_BOOST);
         resultKeys.add(CaptureResult.CONTROL_ENABLE_ZSL);
         resultKeys.add(CaptureResult.CONTROL_AF_SCENE_CHANGE);
-        resultKeys.add(CaptureResult.CONTROL_BOKEH_MODE);
+        resultKeys.add(CaptureResult.CONTROL_EXTENDED_SCENE_MODE);
         resultKeys.add(CaptureResult.CONTROL_ZOOM_RATIO);
         resultKeys.add(CaptureResult.EDGE_MODE);
         resultKeys.add(CaptureResult.FLASH_MODE);
@@ -1024,7 +1019,6 @@
         resultKeys.add(CaptureResult.NOISE_REDUCTION_MODE);
         resultKeys.add(CaptureResult.REQUEST_PIPELINE_DEPTH);
         resultKeys.add(CaptureResult.SCALER_CROP_REGION);
-        resultKeys.add(CaptureResult.SCALER_ROTATE_AND_CROP);
         resultKeys.add(CaptureResult.SENSOR_EXPOSURE_TIME);
         resultKeys.add(CaptureResult.SENSOR_FRAME_DURATION);
         resultKeys.add(CaptureResult.SENSOR_SENSITIVITY);
diff --git a/tests/camera/src/android/hardware/camera2/cts/ExtendedCameraCharacteristicsTest.java b/tests/camera/src/android/hardware/camera2/cts/ExtendedCameraCharacteristicsTest.java
index 770f3e4..07155ff 100644
--- a/tests/camera/src/android/hardware/camera2/cts/ExtendedCameraCharacteristicsTest.java
+++ b/tests/camera/src/android/hardware/camera2/cts/ExtendedCameraCharacteristicsTest.java
@@ -2315,53 +2315,6 @@
         }
     }
 
-    /**
-     * Check rotate-and-crop camera reporting.
-     * Every device must report NONE; if actually supporting feature, must report NONE, 90, AUTO at
-     * least.
-     */
-    @Test
-    public void testRotateAndCropCharacteristics() {
-        for (int i = 0; i < mAllCameraIds.length; i++) {
-            Log.i(TAG, "testRotateAndCropCharacteristics: Testing camera ID " + mAllCameraIds[i]);
-
-            CameraCharacteristics c = mCharacteristics.get(i);
-
-            if (!arrayContains(mCameraIdsUnderTest, mAllCameraIds[i])) {
-                // Skip hidden physical cameras
-                continue;
-            }
-
-            int[] availableRotateAndCropModes = c.get(
-                    CameraCharacteristics.SCALER_AVAILABLE_ROTATE_AND_CROP_MODES);
-            assertTrue("availableRotateAndCropModes must not be null",
-                     availableRotateAndCropModes != null);
-            boolean foundAuto = false;
-            boolean foundNone = false;
-            boolean found90 = false;
-            for (int mode :  availableRotateAndCropModes) {
-                switch(mode) {
-                    case CameraCharacteristics.SCALER_ROTATE_AND_CROP_NONE:
-                        foundNone = true;
-                        break;
-                    case CameraCharacteristics.SCALER_ROTATE_AND_CROP_90:
-                        found90 = true;
-                        break;
-                    case CameraCharacteristics.SCALER_ROTATE_AND_CROP_AUTO:
-                        foundAuto = true;
-                        break;
-                }
-            }
-            if (availableRotateAndCropModes.length > 1) {
-                assertTrue("To support SCALER_ROTATE_AND_CROP: NONE, 90, and AUTO must be included",
-                        foundNone && found90 && foundAuto);
-            } else {
-                assertTrue("If only one SCALER_ROTATE_AND_CROP value is supported, it must be NONE",
-                        foundNone);
-            }
-        }
-    }
-
     private boolean matchParametersToCharacteritics(Camera.Parameters params,
             Camera.CameraInfo info, CameraCharacteristics ch) {
         Integer facing = ch.get(CameraCharacteristics.LENS_FACING);
diff --git a/tests/camera/src/android/hardware/camera2/cts/OfflineSessionTest.java b/tests/camera/src/android/hardware/camera2/cts/OfflineSessionTest.java
index a897944..e504803 100644
--- a/tests/camera/src/android/hardware/camera2/cts/OfflineSessionTest.java
+++ b/tests/camera/src/android/hardware/camera2/cts/OfflineSessionTest.java
@@ -24,8 +24,11 @@
 import com.android.ex.camera2.blocking.BlockingSessionCallback;
 import com.android.ex.camera2.blocking.BlockingOfflineSessionCallback;
 
+import android.app.Activity;
+import android.app.ActivityManager;
+import android.content.Context;
+import android.content.Intent;
 import android.graphics.ImageFormat;
-import android.hardware.Camera;
 import android.hardware.camera2.CameraCaptureSession;
 import android.hardware.camera2.CameraDevice;
 import android.hardware.camera2.CaptureFailure;
@@ -34,7 +37,13 @@
 import android.hardware.camera2.CaptureRequest;
 import android.hardware.camera2.CaptureResult;
 import android.hardware.camera2.TotalCaptureResult;
+import android.hardware.camera2.params.InputConfiguration;
 import android.hardware.camera2.params.OutputConfiguration;
+import android.hardware.multiprocess.camera.cts.ErrorLoggingService;
+import android.hardware.multiprocess.camera.cts.TestConstants;
+import android.media.Image;
+import android.media.ImageReader;
+import android.os.Bundle;
 import android.util.Log;
 import android.util.Size;
 import android.view.Surface;
@@ -46,6 +55,7 @@
 import org.junit.Test;
 
 import java.lang.IllegalArgumentException;
+import java.util.concurrent.TimeoutException;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -54,9 +64,30 @@
     private static final String TAG = "OfflineSessionTest";
     private static final boolean VERBOSE = Log.isLoggable(TAG, Log.VERBOSE);
     private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
+    private final String REMOTE_PROCESS_NAME = "camera2ActivityProcess";
+    private final java.lang.Class<?> REMOTE_PROCESS_CLASS = Camera2OfflineTestActivity.class;
 
+    private static final Size MANDATORY_STREAM_BOUND = new Size(1920, 1080);
     private static final int WAIT_FOR_FRAMES_TIMEOUT_MS = 3000;
     private static final int WAIT_FOR_STATE_TIMEOUT_MS = 5000;
+    private static final int WAIT_FOR_REMOTE_ACTIVITY_LAUNCH_MS = 2000;
+    private static final int WAIT_FOR_REMOTE_ACTIVITY_DESTROY_MS = 2000;
+
+    private enum OfflineTestSequence {
+        /** Regular offline switch without extra calls */
+        NoExtraSteps,
+
+        /** Offline switch followed by immediate offline session close */
+        CloseOfflineSession,
+
+        /** Offline switch followed in parallel with immediate device close and same device open
+         *  in a separate activity
+         */
+        CloseDeviceAndOpenRemote,
+
+        /** Offline session running in parallel with reinitialized regular capture session */
+        InitializeRegularSession,
+    }
 
     /**
      * Test offline switch behavior in case of invalid/bad input.
@@ -171,8 +202,8 @@
                 }
 
                 openDevice(mCameraIdsUnderTest[i]);
-                camera2OfflineSessionTest(mOrderedStillSizes.get(0), ImageFormat.JPEG,
-                        false /*closeDevice*/, false /*closeSession*/);
+                camera2OfflineSessionTest(mCameraIdsUnderTest[i], mOrderedStillSizes.get(0),
+                        ImageFormat.JPEG, OfflineTestSequence.NoExtraSteps);
             } finally {
                 closeDevice();
             }
@@ -213,8 +244,8 @@
                         mCameraIdsUnderTest[i], mCameraManager, ImageFormat.DEPTH_JPEG,
                         null /*bound*/);
                 openDevice(mCameraIdsUnderTest[i]);
-                camera2OfflineSessionTest(depthJpegSizes.get(0), ImageFormat.DEPTH_JPEG,
-                        false /*closeDevice*/, false /*closeSession*/);
+                camera2OfflineSessionTest(mCameraIdsUnderTest[i], depthJpegSizes.get(0),
+                        ImageFormat.DEPTH_JPEG, OfflineTestSequence.NoExtraSteps);
             } finally {
                 closeDevice();
             }
@@ -254,8 +285,8 @@
                 List<Size> heicSizes = CameraTestUtils.getSupportedHeicSizes(
                         mCameraIdsUnderTest[i], mCameraManager, null /*bound*/);
                 openDevice(mCameraIdsUnderTest[i]);
-                camera2OfflineSessionTest(heicSizes.get(0), ImageFormat.HEIC,
-                        false /*closeDevice*/, false /*closeSession*/);
+                camera2OfflineSessionTest(mCameraIdsUnderTest[i], heicSizes.get(0),
+                        ImageFormat.HEIC, OfflineTestSequence.NoExtraSteps);
             } finally {
                 closeDevice();
             }
@@ -263,13 +294,17 @@
     }
 
     /**
-     * Test camera offline session behavior during inactive camera device.
+     * Test camera offline session behavior after close and reopen.
      *
-     * <p> Verify that closing the initial camera device does not impact the
-     * offline camera session.</p>
+     * <p> Verify that closing the initial camera device and opening the same
+     * sensor during offline processing does not have any unexpected side effects.</p>
      */
     @Test
-    public void testDeviceClose() throws Exception {
+    public void testDeviceCloseAndOpen() throws Exception {
+        ErrorLoggingService.ErrorServiceConnection errorConnection =
+                new ErrorLoggingService.ErrorServiceConnection(mContext);
+
+        errorConnection.start();
         for (int i = 0; i < mCameraIdsUnderTest.length; i++) {
             try {
                 Log.i(TAG, "Testing camera2 API for camera device " + mCameraIdsUnderTest[i]);
@@ -287,12 +322,26 @@
                 }
 
                 openDevice(mCameraIdsUnderTest[i]);
-                camera2OfflineSessionTest(mOrderedStillSizes.get(0), ImageFormat.JPEG,
-                        true /*closeDevice*/, false /*closeSession*/);
+                camera2OfflineSessionTest(mCameraIdsUnderTest[i], mOrderedStillSizes.get(0),
+                        ImageFormat.JPEG, OfflineTestSequence.CloseDeviceAndOpenRemote);
+
+                // Verify that the remote camera was opened correctly
+                List<ErrorLoggingService.LogEvent> allEvents = null;
+                try {
+                    allEvents = errorConnection.getLog(WAIT_FOR_STATE_TIMEOUT_MS,
+                            TestConstants.EVENT_CAMERA_CONNECT);
+                } catch (TimeoutException e) {
+                    fail("Timed out waiting on remote offline process error log!");
+                }
+                assertNotNull("Failed to connect to camera device in remote offline process!",
+                        allEvents);
             } finally {
                 closeDevice();
+
             }
         }
+
+        errorConnection.stop();
     }
 
     /**
@@ -320,8 +369,41 @@
                 }
 
                 openDevice(mCameraIdsUnderTest[i]);
-                camera2OfflineSessionTest(mOrderedStillSizes.get(0), ImageFormat.JPEG,
-                        false /*closeDevice*/, true /*closeSession*/);
+                camera2OfflineSessionTest(mCameraIdsUnderTest[i], mOrderedStillSizes.get(0),
+                        ImageFormat.JPEG, OfflineTestSequence.CloseOfflineSession);
+            } finally {
+                closeDevice();
+            }
+        }
+    }
+
+    /**
+     * Test camera offline session in case of new capture session
+     *
+     * <p>Verify that clients are able to initialize a new regular capture session
+     * in parallel with the offline session.</p>
+     */
+    @Test
+    public void testOfflineSessionWithRegularSession() throws Exception {
+        for (int i = 0; i < mCameraIdsUnderTest.length; i++) {
+            try {
+                Log.i(TAG, "Testing camera2 API for camera device " + mCameraIdsUnderTest[i]);
+
+                if (!mAllStaticInfo.get(mCameraIdsUnderTest[i]).isColorOutputSupported()) {
+                    Log.i(TAG, "Camera " + mCameraIdsUnderTest[i] +
+                            " does not support color outputs, skipping");
+                    continue;
+                }
+
+                if (!mAllStaticInfo.get(mCameraIdsUnderTest[i]).isOfflineProcessingSupported()) {
+                    Log.i(TAG, "Camera " + mCameraIdsUnderTest[i] +
+                            " does not support offline processing, skipping");
+                    continue;
+                }
+
+                openDevice(mCameraIdsUnderTest[i]);
+                camera2OfflineSessionTest(mCameraIdsUnderTest[i], mOrderedStillSizes.get(0),
+                        ImageFormat.JPEG, OfflineTestSequence.InitializeRegularSession);
             } finally {
                 closeDevice();
             }
@@ -363,35 +445,38 @@
         }
     }
 
-    // Find the last frame number received in results and failures.
-    private long findLastFrameNumber(SimpleCaptureCallback captureListener) {
-        long lastFrameNumber = -1;
-        while (captureListener.hasMoreResults()) {
-            TotalCaptureResult result = captureListener.getTotalCaptureResult(0 /*timeout*/);
-            if (lastFrameNumber < result.getFrameNumber()) {
-                lastFrameNumber = result.getFrameNumber();
+    private void verifyCaptureResults(SimpleCaptureCallback resultListener,
+            SimpleImageReaderListener imageListener, int sequenceId, boolean offlineResults)
+            throws Exception {
+        long sequenceLastFrameNumber = resultListener.getCaptureSequenceLastFrameNumber(
+                sequenceId, 0 /*timeoutMs*/);
+
+        long lastFrameNumberReceived = -1;
+        while (resultListener.hasMoreResults()) {
+            TotalCaptureResult result = resultListener.getTotalCaptureResult(0 /*timeout*/);
+            if (lastFrameNumberReceived < result.getFrameNumber()) {
+                lastFrameNumberReceived = result.getFrameNumber();
+            }
+
+            if (imageListener != null) {
+                long resultTimestamp = result.get(CaptureResult.SENSOR_TIMESTAMP);
+                Image offlineImage = imageListener.getImage(CAPTURE_IMAGE_TIMEOUT_MS);
+                assertEquals("Offline image timestamp: " + offlineImage.getTimestamp() +
+                        " doesn't match with the result timestamp: " + resultTimestamp,
+                        offlineImage.getTimestamp(), resultTimestamp);
             }
         }
 
-        while (captureListener.hasMoreFailures()) {
-            ArrayList<CaptureFailure> failures = captureListener.getCaptureFailures(
+        while (resultListener.hasMoreFailures()) {
+            ArrayList<CaptureFailure> failures = resultListener.getCaptureFailures(
                     /*maxNumFailures*/ 1);
             for (CaptureFailure failure : failures) {
-                if (lastFrameNumber < failure.getFrameNumber()) {
-                    lastFrameNumber = failure.getFrameNumber();
+                if (lastFrameNumberReceived < failure.getFrameNumber()) {
+                    lastFrameNumberReceived = failure.getFrameNumber();
                 }
             }
         }
 
-        return lastFrameNumber;
-    }
-
-    private void verifyCaptureResults(SimpleCaptureCallback resultListener, int sequenceId,
-            boolean offlineResults) {
-        long sequenceLastFrameNumber = resultListener.getCaptureSequenceLastFrameNumber(
-                sequenceId, 0 /*timeoutMs*/);
-
-        long lastFrameNumberReceived = findLastFrameNumber(resultListener);
         String assertString = offlineResults ?
                 "Last offline frame number from " +
                 "onCaptureSequenceCompleted (%d) doesn't match the last frame number " +
@@ -403,16 +488,34 @@
                 sequenceLastFrameNumber, lastFrameNumberReceived);
     }
 
-    private void camera2OfflineSessionTest(Size offlineSize, int offlineFormat, boolean closeDevice,
-            boolean closeSession) throws Exception {
+    private void camera2OfflineSessionTest(String cameraId, Size offlineSize, int offlineFormat,
+            OfflineTestSequence testSequence) throws Exception {
+        int remoteOfflinePID = -1;
+        Size previewSize = mOrderedPreviewSizes.get(0);
+        for (Size sz : mOrderedPreviewSizes) {
+            if (sz.getWidth() <= MANDATORY_STREAM_BOUND.getWidth() && sz.getHeight() <=
+                    MANDATORY_STREAM_BOUND.getHeight()) {
+                previewSize = sz;
+                break;
+            }
+        }
+        Size privateSize = previewSize;
+        if (mAllStaticInfo.get(cameraId).isPrivateReprocessingSupported()) {
+            privateSize = mAllStaticInfo.get(cameraId).getSortedSizesForInputFormat(
+                    ImageFormat.PRIVATE, MANDATORY_STREAM_BOUND).get(0);
+        }
+
         CaptureRequest.Builder previewRequest =
                 mCamera.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
         CaptureRequest.Builder stillCaptureRequest =
                 mCamera.createCaptureRequest(CameraDevice.TEMPLATE_STILL_CAPTURE);
-        Size previewSize = mOrderedPreviewSizes.get(0);
         SimpleCaptureCallback resultListener = new SimpleCaptureCallback();
+        SimpleCaptureCallback regularResultListener = new SimpleCaptureCallback();
         SimpleCaptureCallback offlineResultListener = new SimpleCaptureCallback();
         SimpleImageReaderListener imageListener = new SimpleImageReaderListener();
+        ImageReader privateReader = null;
+        ImageReader yuvCallbackReader = null;
+        ImageReader jpegReader = null;
 
         // Update preview size.
         updatePreviewSurface(previewSize);
@@ -441,18 +544,7 @@
         // Start preview.
         int repeatingSeqId = mSession.setRepeatingRequest(previewRequest.build(), resultListener,
                 mHandler);
-
-        CaptureResult result = resultListener.getCaptureResult(WAIT_FOR_FRAMES_TIMEOUT_MS);
-
-        Long timestamp = result.get(CaptureResult.SENSOR_TIMESTAMP);
-        assertNotNull("Can't read a capture result timestamp", timestamp);
-
-        CaptureResult result2 = resultListener.getCaptureResult(WAIT_FOR_FRAMES_TIMEOUT_MS);
-
-        Long timestamp2 = result2.get(CaptureResult.SENSOR_TIMESTAMP);
-        assertNotNull("Can't read a capture result 2 timestamp", timestamp2);
-
-        assertTrue("Bad timestamps", timestamp2 > timestamp);
+        checkInitialResults(resultListener);
 
         ArrayList<Integer> allowedOfflineStates = new ArrayList<Integer>();
         allowedOfflineStates.add(BlockingOfflineSessionCallback.STATE_READY);
@@ -487,45 +579,128 @@
             verify(mockOfflineCb, times(0)).onError(offlineSession,
                     CameraOfflineSessionCallback.STATUS_INTERNAL_ERROR);
 
-            verifyCaptureResults(resultListener, repeatingSeqId, false /*offlineResults*/);
-            verifyCaptureResults(offlineResultListener, offlineSeqId, true /*offlineResults*/);
+            verifyCaptureResults(resultListener, null /*imageListener*/, repeatingSeqId,
+                    false /*offlineResults*/);
+            verifyCaptureResults(offlineResultListener, null /*imageListener*/, offlineSeqId,
+                    true /*offlineResults*/);
         } else {
             verify(mockOfflineCb, times(1)).onReady(offlineSession);
             verify(mockOfflineCb, times(0)).onSwitchFailed(offlineSession);
 
-            if (closeDevice) {
-                // According to specification, closing the initial camera device after
-                // successful offline session switch must not have any noticeable impact
-                // on the offline client.
-                closeDevice();
+            switch (testSequence) {
+                case CloseDeviceAndOpenRemote:
+                    // According to the documentation, closing the initial camera device and
+                    // re-opening the same device from a different client after successful
+                    // offline session switch must not have any noticeable impact on the
+                    // offline processing.
+                    closeDevice();
+                    remoteOfflinePID = startRemoteOfflineTestProcess(cameraId);
+
+                    break;
+                case CloseOfflineSession:
+                    offlineSession.close();
+
+                    break;
+                case InitializeRegularSession:
+                    // According to the documentation, initializing a regular capture session
+                    // along with the offline session should not have any side effects.
+                    // We also don't want to re-use the same offline output surface as part
+                    // of the new  regular capture session.
+                    outputSurfaces.remove(mReaderSurface);
+
+                    // According to the specification, an active offline session must allow
+                    // camera devices to support at least one preview stream, one yuv stream
+                    // of size up-to 1080p, one jpeg stream with any supported size and
+                    // an extra input/output private pair in case reprocessing is also available.
+                    yuvCallbackReader = makeImageReader(previewSize, ImageFormat.YUV_420_888,
+                            1 /*maxNumImages*/, new SimpleImageReaderListener(), mHandler);
+                    outputSurfaces.add(yuvCallbackReader.getSurface());
+
+                    jpegReader = makeImageReader(offlineSize, ImageFormat.JPEG,
+                            1 /*maxNumImages*/, new SimpleImageReaderListener(), mHandler);
+                    outputSurfaces.add(jpegReader.getSurface());
+
+                    if (mAllStaticInfo.get(cameraId).isPrivateReprocessingSupported()) {
+                        privateReader = makeImageReader(privateSize, ImageFormat.PRIVATE,
+                                1 /*maxNumImages*/, new SimpleImageReaderListener(), mHandler);
+                        outputSurfaces.add(privateReader.getSurface());
+
+                        InputConfiguration inputConfig = new InputConfiguration(
+                                privateSize.getWidth(), privateSize.getHeight(),
+                                ImageFormat.PRIVATE);
+                        mSession = CameraTestUtils.configureReprocessableCameraSession(mCamera,
+                                inputConfig, outputSurfaces, mSessionListener, mHandler);
+
+                    } else {
+                        mSession = configureCameraSession(mCamera, outputSurfaces, mSessionListener,
+                                mHandler);
+                    }
+
+                    mSession.setRepeatingRequest(previewRequest.build(), regularResultListener,
+                            mHandler);
+
+                    break;
+                case NoExtraSteps:
+                default:
             }
 
-            if (closeSession) {
-                offlineSession.close();
-            }
+            // The repeating non-offline request should be done after the switch returns.
+            verifyCaptureResults(resultListener, null /*imageListener*/, repeatingSeqId,
+                    false /*offlineResults*/);
 
-            // The repeating non-offline request should be completed after the switch returns.
-            verifyCaptureResults(resultListener, repeatingSeqId, false /*offlineResults*/);
-
-            if (!closeSession) {
+            if (testSequence != OfflineTestSequence.CloseOfflineSession) {
                 offlineCb.waitForState(BlockingOfflineSessionCallback.STATE_IDLE,
                         WAIT_FOR_STATE_TIMEOUT_MS);
                 verify(mockOfflineCb, times(1)).onIdle(offlineSession);
                 verify(mockOfflineCb, times(0)).onError(offlineSession,
                         CameraOfflineSessionCallback.STATUS_INTERNAL_ERROR);
 
-                // The offline requests should be completed after we reach idle state.
-                verifyCaptureResults(offlineResultListener, offlineSeqId, true /*offlineResults*/);
+                // The offline requests should be done after we reach idle state.
+                verifyCaptureResults(offlineResultListener, imageListener, offlineSeqId,
+                        true /*offlineResults*/);
 
                 offlineSession.close();
-                offlineCb.waitForState(BlockingOfflineSessionCallback.STATE_CLOSED,
-                        WAIT_FOR_STATE_TIMEOUT_MS);
             }
 
+            if (testSequence == OfflineTestSequence.InitializeRegularSession) {
+                checkInitialResults(regularResultListener);
+                stopPreview();
+
+                if (privateReader != null) {
+                    privateReader.close();
+                }
+
+                if (yuvCallbackReader != null) {
+                    yuvCallbackReader.close();
+                }
+
+                if (jpegReader != null) {
+                    jpegReader.close();
+                }
+            }
+
+            offlineCb.waitForState(BlockingOfflineSessionCallback.STATE_CLOSED,
+                  WAIT_FOR_STATE_TIMEOUT_MS);
             verify(mockOfflineCb, times(1)).onClosed(offlineSession);
         }
 
         closeImageReader();
+
+        stopRemoteOfflineTestProcess(remoteOfflinePID);
+    }
+
+    private void checkInitialResults(SimpleCaptureCallback resultListener) {
+        CaptureResult result = resultListener.getCaptureResult(WAIT_FOR_FRAMES_TIMEOUT_MS);
+
+        Long timestamp = result.get(CaptureResult.SENSOR_TIMESTAMP);
+        assertNotNull("Can't read a capture result timestamp", timestamp);
+
+        CaptureResult result2 = resultListener.getCaptureResult(WAIT_FOR_FRAMES_TIMEOUT_MS);
+
+        Long timestamp2 = result2.get(CaptureResult.SENSOR_TIMESTAMP);
+        assertNotNull("Can't read a capture result 2 timestamp", timestamp2);
+
+        assertTrue("Bad timestamps", timestamp2 > timestamp);
     }
 
     private void camera2UnsupportedOfflineOutputTest(boolean useSurfaceGroup) throws Exception {
@@ -574,4 +749,56 @@
 
         session.close();
     }
+
+    private int startRemoteOfflineTestProcess(String cameraId) throws InterruptedException {
+        // Ensure no running activity process with same name
+        String cameraActivityName = mContext.getPackageName() + ":" + REMOTE_PROCESS_NAME;
+        ActivityManager activityManager = (ActivityManager) mContext.getSystemService(
+                Context.ACTIVITY_SERVICE);
+        List<ActivityManager.RunningAppProcessInfo> list = activityManager.getRunningAppProcesses();
+        for (ActivityManager.RunningAppProcessInfo rai : list) {
+            if (cameraActivityName.equals(rai.processName)) {
+                fail("Remote offline session test activity already running");
+                return -1;
+            }
+        }
+
+        Activity activity = mActivityRule.getActivity();
+        Intent activityIntent = new Intent(activity, REMOTE_PROCESS_CLASS);
+        Bundle b = new Bundle();
+        b.putString(CameraTestUtils.OFFLINE_CAMERA_ID, cameraId);
+        activityIntent.putExtras(b);
+        activity.startActivity(activityIntent);
+        Thread.sleep(WAIT_FOR_REMOTE_ACTIVITY_LAUNCH_MS);
+
+        // Fail if activity isn't running
+        list = activityManager.getRunningAppProcesses();
+        for (ActivityManager.RunningAppProcessInfo rai : list) {
+            if (cameraActivityName.equals(rai.processName))
+                return rai.pid;
+        }
+
+        fail("Remote offline session test activity failed to start");
+
+        return -1;
+    }
+
+    private void stopRemoteOfflineTestProcess(int remotePID) throws InterruptedException {
+        if (remotePID < 0) {
+            return;
+        }
+
+        android.os.Process.killProcess(remotePID);
+        Thread.sleep(WAIT_FOR_REMOTE_ACTIVITY_DESTROY_MS);
+
+        ActivityManager activityManager = (ActivityManager) mContext.getSystemService(
+                Context.ACTIVITY_SERVICE);
+        String cameraActivityName = mContext.getPackageName() + ":" + REMOTE_PROCESS_NAME;
+        List<ActivityManager.RunningAppProcessInfo> list = activityManager.getRunningAppProcesses();
+        for (ActivityManager.RunningAppProcessInfo rai : list) {
+            if (cameraActivityName.equals(rai.processName))
+                fail("Remote offline session test activity is still running");
+        }
+
+    }
 }
diff --git a/tests/camera/utils/src/android/hardware/camera2/cts/CameraTestUtils.java b/tests/camera/utils/src/android/hardware/camera2/cts/CameraTestUtils.java
index f64ff08..da6593f 100644
--- a/tests/camera/utils/src/android/hardware/camera2/cts/CameraTestUtils.java
+++ b/tests/camera/utils/src/android/hardware/camera2/cts/CameraTestUtils.java
@@ -120,6 +120,8 @@
 
     public static final int MAX_READER_IMAGES = 5;
 
+    public static final String OFFLINE_CAMERA_ID = "offline_camera_id";
+
     private static final int EXIF_DATETIME_LENGTH = 19;
     private static final int EXIF_DATETIME_ERROR_MARGIN_SEC = 60;
     private static final float EXIF_FOCAL_LENGTH_ERROR_MARGIN = 0.001f;
diff --git a/tests/camera/utils/src/android/hardware/camera2/cts/helpers/StaticMetadata.java b/tests/camera/utils/src/android/hardware/camera2/cts/helpers/StaticMetadata.java
index 6607c36..332964c 100644
--- a/tests/camera/utils/src/android/hardware/camera2/cts/helpers/StaticMetadata.java
+++ b/tests/camera/utils/src/android/hardware/camera2/cts/helpers/StaticMetadata.java
@@ -1873,12 +1873,12 @@
         return modes;
     }
 
-    public Capability[] getAvailableBokehCapsChecked() {
+    public Capability[] getAvailableExtendedSceneModeCapsChecked() {
         final Size FULL_HD = new Size(1920, 1080);
         Rect activeRect = getValueFromKeyNonNull(
                 CameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZE);
         Key<Capability[]> key =
-                CameraCharacteristics.CONTROL_AVAILABLE_BOKEH_CAPABILITIES;
+                CameraCharacteristics.CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_CAPABILITIES;
         Capability[] caps = mCharacteristics.get(key);
         if (caps == null) {
             return new Capability[0];
@@ -1888,41 +1888,35 @@
                 StaticMetadata.StreamDirection.Output);
         List<Size> yuvSizesList = Arrays.asList(yuvSizes);
         for (Capability cap : caps) {
-            int bokehMode = cap.getMode();
+            int extendedSceneMode = cap.getMode();
             Size maxStreamingSize = cap.getMaxStreamingSize();
             boolean maxStreamingSizeIsZero =
                     maxStreamingSize.getWidth() == 0 && maxStreamingSize.getHeight() == 0;
-            // Check bokeh mode is in range.
-            checkTrueForKey(key,
-                    String.format(" bokehMode %d is out of range [%d, %d]", bokehMode,
-                    CameraMetadata.CONTROL_BOKEH_MODE_OFF,
-                    CameraMetadata.CONTROL_BOKEH_MODE_CONTINUOUS),
-                    bokehMode <= CameraMetadata.CONTROL_BOKEH_MODE_CONTINUOUS &&
-                    bokehMode >= CameraMetadata.CONTROL_BOKEH_MODE_OFF);
-            switch (bokehMode) {
-                case CameraMetadata.CONTROL_BOKEH_MODE_STILL_CAPTURE:
+            switch (extendedSceneMode) {
+                case CameraMetadata.CONTROL_EXTENDED_SCENE_MODE_BOKEH_STILL_CAPTURE:
                     // STILL_CAPTURE: Must either be (0, 0), or one of supported yuv/private sizes.
                     // Because spec requires yuv and private sizes match, only check YUV sizes here.
                     checkTrueForKey(key,
-                            String.format(" maxStreamingSize [%d, %d] for bokeh mode " +
+                            String.format(" maxStreamingSize [%d, %d] for extended scene mode " +
                             "%d must be a supported YCBCR_420_888 size, or (0, 0)",
-                            maxStreamingSize.getWidth(), maxStreamingSize.getHeight(), bokehMode),
+                            maxStreamingSize.getWidth(), maxStreamingSize.getHeight(),
+                            extendedSceneMode),
                             yuvSizesList.contains(maxStreamingSize) || maxStreamingSizeIsZero);
                     break;
-                case CameraMetadata.CONTROL_BOKEH_MODE_CONTINUOUS:
+                case CameraMetadata.CONTROL_EXTENDED_SCENE_MODE_BOKEH_CONTINUOUS:
                     // CONTINUOUS: Must be one of supported yuv/private stream sizes.
                     checkTrueForKey(key,
-                            String.format(" maxStreamingSize [%d, %d] for bokeh mode " +
+                            String.format(" maxStreamingSize [%d, %d] for extended scene mode " +
                             "%d must be a supported YCBCR_420_888 size.",
-                            maxStreamingSize.getWidth(), maxStreamingSize.getHeight(), bokehMode),
-                            yuvSizesList.contains(maxStreamingSize));
+                            maxStreamingSize.getWidth(), maxStreamingSize.getHeight(),
+                            extendedSceneMode), yuvSizesList.contains(maxStreamingSize));
                     // Must be at least 1080p if sensor is at least 1080p.
                     if (activeRect.width() >= FULL_HD.getWidth() &&
                             activeRect.height() >= FULL_HD.getHeight()) {
                         checkTrueForKey(key,
-                                String.format(" maxStreamingSize [%d, %d] for bokeh mode %d must " +
-                                "be at least 1080p", maxStreamingSize.getWidth(),
-                                maxStreamingSize.getHeight(), bokehMode),
+                                String.format(" maxStreamingSize [%d, %d] for extended scene " +
+                                "mode %d must be at least 1080p", maxStreamingSize.getWidth(),
+                                maxStreamingSize.getHeight(), extendedSceneMode),
                                 maxStreamingSize.getWidth() >= FULL_HD.getWidth() &&
                                 maxStreamingSize.getHeight() >= FULL_HD.getHeight());
                     }
@@ -2082,6 +2076,45 @@
     }
 
     /**
+     * Determine whether the current device supports a private reprocessing capability or not.
+     *
+     * @return {@code true} if the capability is supported, {@code false} otherwise.
+     *
+     * @throws IllegalArgumentException if {@code capability} was negative
+     */
+    public boolean isPrivateReprocessingSupported() {
+        return isCapabilitySupported(
+                CameraCharacteristics.REQUEST_AVAILABLE_CAPABILITIES_PRIVATE_REPROCESSING);
+    }
+
+    /**
+     * Get sorted (descending order) size list for given input format. Remove the sizes larger than
+     * the bound. If the bound is null, don't do the size bound filtering.
+     *
+     * @param format input format
+     * @param bound maximum allowed size bound
+     *
+     * @return Sorted input size list (descending order)
+     */
+    public List<Size> getSortedSizesForInputFormat(int format, Size bound) {
+        Size[] availableSizes = getAvailableSizesForFormatChecked(format, StreamDirection.Input);
+        if (bound == null) {
+            return CameraTestUtils.getAscendingOrderSizes(Arrays.asList(availableSizes),
+                    /*ascending*/false);
+        }
+
+        List<Size> sizes = new ArrayList<Size>();
+        for (Size sz: availableSizes) {
+            if (sz.getWidth() <= bound.getWidth() && sz.getHeight() <= bound.getHeight()) {
+                sizes.add(sz);
+            }
+        }
+
+        return CameraTestUtils.getAscendingOrderSizes(sizes, /*ascending*/false);
+    }
+
+
+    /**
      * Determine whether or not all the {@code keys} are available characteristics keys
      * (as in {@link CameraCharacteristics#getKeys}.
      *
@@ -2538,26 +2571,6 @@
     }
 
     /**
-     * Check if rotate and crop is supported
-     */
-    public boolean isRotateAndCropSupported() {
-        int[] availableRotateAndCropModes = mCharacteristics.get(
-                CameraCharacteristics.SCALER_AVAILABLE_ROTATE_AND_CROP_MODES);
-
-        if (availableRotateAndCropModes == null) {
-            return false;
-        }
-
-        for (int mode : availableRotateAndCropModes) {
-            if (mode != CameraMetadata.SCALER_ROTATE_AND_CROP_NONE) {
-                return true;
-            }
-        }
-
-        return false;
-    }
-
-    /**
      * Check if distortion correction is supported.
      */
     public boolean isDistortionCorrectionSupported() {
diff --git a/tests/contentcaptureservice/Android.bp b/tests/contentcaptureservice/Android.bp
index bb26526..94cc9cf 100644
--- a/tests/contentcaptureservice/Android.bp
+++ b/tests/contentcaptureservice/Android.bp
@@ -30,6 +30,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/contentcaptureservice/OutsideOfPackageActivity/Android.bp b/tests/contentcaptureservice/OutsideOfPackageActivity/Android.bp
index 1f35d9b..57b225f 100644
--- a/tests/contentcaptureservice/OutsideOfPackageActivity/Android.bp
+++ b/tests/contentcaptureservice/OutsideOfPackageActivity/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     srcs: ["src/**/*.java"],
diff --git a/tests/contentsuggestions/Android.bp b/tests/contentsuggestions/Android.bp
index 0dba01a..951648b 100644
--- a/tests/contentsuggestions/Android.bp
+++ b/tests/contentsuggestions/Android.bp
@@ -29,6 +29,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/filesystem/Android.bp b/tests/filesystem/Android.bp
index b60eb94..c82b9cc 100644
--- a/tests/filesystem/Android.bp
+++ b/tests/filesystem/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/fragment/Android.bp b/tests/fragment/Android.bp
index 6ab9eb4..791ae33 100644
--- a/tests/fragment/Android.bp
+++ b/tests/fragment/Android.bp
@@ -39,6 +39,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 
diff --git a/tests/fragment/sdk26/Android.bp b/tests/fragment/sdk26/Android.bp
index 937a488..d39af9b 100644
--- a/tests/fragment/sdk26/Android.bp
+++ b/tests/fragment/sdk26/Android.bp
@@ -28,6 +28,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 
diff --git a/tests/framework/base/windowmanager/Android.mk b/tests/framework/base/windowmanager/Android.mk
index 3dab725..7e58ad3 100644
--- a/tests/framework/base/windowmanager/Android.mk
+++ b/tests/framework/base/windowmanager/Android.mk
@@ -44,7 +44,7 @@
     CtsMockInputMethodLib \
     metrics-helper-lib \
 
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 LOCAL_SDK_VERSION := test_current
 
diff --git a/tests/framework/base/windowmanager/alertwindowapp/Android.bp b/tests/framework/base/windowmanager/alertwindowapp/Android.bp
index 2c59adc..e1c9da4 100644
--- a/tests/framework/base/windowmanager/alertwindowapp/Android.bp
+++ b/tests/framework/base/windowmanager/alertwindowapp/Android.bp
@@ -28,6 +28,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/framework/base/windowmanager/alertwindowappsdk25/Android.bp b/tests/framework/base/windowmanager/alertwindowappsdk25/Android.bp
index c598e23..d140312 100644
--- a/tests/framework/base/windowmanager/alertwindowappsdk25/Android.bp
+++ b/tests/framework/base/windowmanager/alertwindowappsdk25/Android.bp
@@ -30,6 +30,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/framework/base/windowmanager/alertwindowservice/Android.bp b/tests/framework/base/windowmanager/alertwindowservice/Android.bp
index 192a814..d9a0a9b 100644
--- a/tests/framework/base/windowmanager/alertwindowservice/Android.bp
+++ b/tests/framework/base/windowmanager/alertwindowservice/Android.bp
@@ -26,6 +26,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 
diff --git a/tests/framework/base/windowmanager/app/Android.bp b/tests/framework/base/windowmanager/app/Android.bp
index 16a59be..4274b82 100644
--- a/tests/framework/base/windowmanager/app/Android.bp
+++ b/tests/framework/base/windowmanager/app/Android.bp
@@ -32,6 +32,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/framework/base/windowmanager/app27/Android.bp b/tests/framework/base/windowmanager/app27/Android.bp
index 33ff8af..cb0698d 100644
--- a/tests/framework/base/windowmanager/app27/Android.bp
+++ b/tests/framework/base/windowmanager/app27/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/framework/base/windowmanager/appAShareUid/Android.bp b/tests/framework/base/windowmanager/appAShareUid/Android.bp
index f85c782..fd0ac3d 100644
--- a/tests/framework/base/windowmanager/appAShareUid/Android.bp
+++ b/tests/framework/base/windowmanager/appAShareUid/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/framework/base/windowmanager/appBShareUid/Android.bp b/tests/framework/base/windowmanager/appBShareUid/Android.bp
index 5cb7ad3..236e12b 100644
--- a/tests/framework/base/windowmanager/appBShareUid/Android.bp
+++ b/tests/framework/base/windowmanager/appBShareUid/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/framework/base/windowmanager/appDeprecatedSdk/Android.bp b/tests/framework/base/windowmanager/appDeprecatedSdk/Android.bp
index a2f27fa..642cc93 100644
--- a/tests/framework/base/windowmanager/appDeprecatedSdk/Android.bp
+++ b/tests/framework/base/windowmanager/appDeprecatedSdk/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/framework/base/windowmanager/appDisplaySize/Android.bp b/tests/framework/base/windowmanager/appDisplaySize/Android.bp
index f92325d..c49fd0a 100644
--- a/tests/framework/base/windowmanager/appDisplaySize/Android.bp
+++ b/tests/framework/base/windowmanager/appDisplaySize/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/framework/base/windowmanager/appPrereleaseSdk/Android.bp b/tests/framework/base/windowmanager/appPrereleaseSdk/Android.bp
index 53eb2a7..35af9d2 100644
--- a/tests/framework/base/windowmanager/appPrereleaseSdk/Android.bp
+++ b/tests/framework/base/windowmanager/appPrereleaseSdk/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/framework/base/windowmanager/appProfileable/Android.bp b/tests/framework/base/windowmanager/appProfileable/Android.bp
index 1f525eb..cdcf584 100644
--- a/tests/framework/base/windowmanager/appProfileable/Android.bp
+++ b/tests/framework/base/windowmanager/appProfileable/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/framework/base/windowmanager/appSecondUid/Android.bp b/tests/framework/base/windowmanager/appSecondUid/Android.bp
index c92d4bf..435ac7e 100644
--- a/tests/framework/base/windowmanager/appSecondUid/Android.bp
+++ b/tests/framework/base/windowmanager/appSecondUid/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/framework/base/windowmanager/appThirdUid/Android.bp b/tests/framework/base/windowmanager/appThirdUid/Android.bp
index 511658c..1a3ce8b 100644
--- a/tests/framework/base/windowmanager/appThirdUid/Android.bp
+++ b/tests/framework/base/windowmanager/appThirdUid/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/framework/base/windowmanager/backgroundactivity/Android.bp b/tests/framework/base/windowmanager/backgroundactivity/Android.bp
index 077d788..0aed638 100644
--- a/tests/framework/base/windowmanager/backgroundactivity/Android.bp
+++ b/tests/framework/base/windowmanager/backgroundactivity/Android.bp
@@ -33,6 +33,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/framework/base/windowmanager/backgroundactivity/AppA/Android.bp b/tests/framework/base/windowmanager/backgroundactivity/AppA/Android.bp
index ec2f566..cfae648 100644
--- a/tests/framework/base/windowmanager/backgroundactivity/AppA/Android.bp
+++ b/tests/framework/base/windowmanager/backgroundactivity/AppA/Android.bp
@@ -28,6 +28,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 
diff --git a/tests/framework/base/windowmanager/backgroundactivity/AppB/Android.bp b/tests/framework/base/windowmanager/backgroundactivity/AppB/Android.bp
index 90c00f9..c4ceab0 100644
--- a/tests/framework/base/windowmanager/backgroundactivity/AppB/Android.bp
+++ b/tests/framework/base/windowmanager/backgroundactivity/AppB/Android.bp
@@ -28,6 +28,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 
diff --git a/tests/framework/base/windowmanager/dndsourceapp/Android.bp b/tests/framework/base/windowmanager/dndsourceapp/Android.bp
index 1de4bcd..b68b6b5 100644
--- a/tests/framework/base/windowmanager/dndsourceapp/Android.bp
+++ b/tests/framework/base/windowmanager/dndsourceapp/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/framework/base/windowmanager/dndtargetapp/Android.bp b/tests/framework/base/windowmanager/dndtargetapp/Android.bp
index d5f9ac2..f3141b2 100644
--- a/tests/framework/base/windowmanager/dndtargetapp/Android.bp
+++ b/tests/framework/base/windowmanager/dndtargetapp/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 
diff --git a/tests/framework/base/windowmanager/dndtargetappsdk23/Android.bp b/tests/framework/base/windowmanager/dndtargetappsdk23/Android.bp
index c75a1a8..b0536cd 100644
--- a/tests/framework/base/windowmanager/dndtargetappsdk23/Android.bp
+++ b/tests/framework/base/windowmanager/dndtargetappsdk23/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 
diff --git a/tests/framework/base/windowmanager/src/android/server/wm/ActivityMetricsLoggerTests.java b/tests/framework/base/windowmanager/src/android/server/wm/ActivityMetricsLoggerTests.java
index ec594d5..4c3c9a0 100644
--- a/tests/framework/base/windowmanager/src/android/server/wm/ActivityMetricsLoggerTests.java
+++ b/tests/framework/base/windowmanager/src/android/server/wm/ActivityMetricsLoggerTests.java
@@ -68,7 +68,8 @@
 import android.util.EventLog.Event;
 
 
-import androidx.test.filters.FlakyTest;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 
 import com.android.compatibility.common.util.SystemUtil;
 
@@ -78,6 +79,7 @@
 
 import java.util.Arrays;
 import java.util.List;
+import java.util.Objects;
 import java.util.Queue;
 import java.util.concurrent.TimeUnit;
 import java.util.function.IntConsumer;
@@ -113,12 +115,11 @@
      * - am_activity_launch_time event is generated
      * In all three cases, verify the delay measurements are the same.
      */
-    @FlakyTest(bugId = 143855645)
     @Test
     public void testAppLaunchIsLogged() {
         launchAndWaitForActivity(TEST_ACTIVITY);
 
-        final LogMaker metricsLog = getMetricsLog(TEST_ACTIVITY, APP_TRANSITION);
+        final LogMaker metricsLog = waitForMetricsLog(TEST_ACTIVITY, APP_TRANSITION);
         final String[] deviceLogs = getDeviceLogsForComponents(mLogSeparator, TAG_ATM);
         final List<Event> eventLogs = getEventLogsForComponents(mLogSeparator,
                 EVENT_WM_ACTIVITY_LAUNCH_TIME);
@@ -138,7 +139,7 @@
     private void assertMetricsLogs(ComponentName componentName,
             int category, LogMaker log, long preUptimeMs, long postUptimeMs) {
         assertNotNull("did not find the metrics log for: " + componentName
-                + " category:" + category, log);
+                + " category:" + categoryToString(category), log);
         int startUptimeSec =
                 ((Number) log.getTaggedData(APP_TRANSITION_DEVICE_UPTIME_SECONDS)).intValue();
         int preUptimeSec = (int) (TimeUnit.MILLISECONDS.toSeconds(preUptimeMs));
@@ -194,7 +195,6 @@
      * In both cases verify fully drawn delay measurements are equal.
      * See {@link Activity#reportFullyDrawn()}
      */
-    @FlakyTest(bugId = 143855645)
     @Test
     public void testAppFullyDrawnReportIsLogged() {
         launchAndWaitForActivity(REPORT_FULLY_DRAWN_ACTIVITY);
@@ -202,7 +202,7 @@
         // Sleep until activity under test has reported drawn (after 500ms)
         sleep(1000);
 
-        final LogMaker metricsLog = getMetricsLog(REPORT_FULLY_DRAWN_ACTIVITY,
+        final LogMaker metricsLog = waitForMetricsLog(REPORT_FULLY_DRAWN_ACTIVITY,
                 APP_TRANSITION_REPORTED_DRAWN);
         final String[] deviceLogs = getDeviceLogsForComponents(mLogSeparator, TAG_ATM);
 
@@ -226,7 +226,6 @@
      * totalTime is set correctly. Make sure the reported value is consistent with value reported to
      * metrics logs. Verify we output the correct launch state.
      */
-    @FlakyTest(bugId = 143855645)
     @Test
     public void testAppWarmLaunchSetsWaitResultDelayData() {
         try (ActivitySessionClient client = createActivitySessionClient()) {
@@ -244,9 +243,7 @@
         final String amStartOutput = SystemUtil.runShellCommand(
                 "am start -W " + TEST_ACTIVITY.flattenToShortString());
 
-        final LogMaker metricsLog = getMetricsLog(TEST_ACTIVITY, APP_TRANSITION);
-        assertNotNull("log should have windows drawn delay", metricsLog);
-
+        final LogMaker metricsLog = waitForMetricsLog(TEST_ACTIVITY, APP_TRANSITION);
         final int windowsDrawnDelayMs =
                 (int) metricsLog.getTaggedData(APP_TRANSITION_WINDOWS_DRAWN_DELAY_MS);
 
@@ -261,7 +258,6 @@
      * totalTime is set correctly. Make sure the reported value is consistent with value reported to
      * metrics logs. Verify we output the correct launch state.
      */
-    @FlakyTest(bugId = 143855645)
     @Test
     public void testAppHotLaunchSetsWaitResultDelayData() {
         SystemUtil.runShellCommand("am start -S -W " + TEST_ACTIVITY.flattenToShortString());
@@ -274,9 +270,7 @@
         final String amStartOutput = SystemUtil.runShellCommand(
                 "am start -W " + TEST_ACTIVITY.flattenToShortString());
 
-        final LogMaker metricsLog = getMetricsLog(TEST_ACTIVITY, APP_TRANSITION);
-        assertNotNull("log should have windows drawn delay", metricsLog);
-
+        final LogMaker metricsLog = waitForMetricsLog(TEST_ACTIVITY, APP_TRANSITION);
         final int windowsDrawnDelayMs =
                 (int) metricsLog.getTaggedData(APP_TRANSITION_WINDOWS_DRAWN_DELAY_MS);
 
@@ -291,15 +285,12 @@
      * totalTime is set correctly. Make sure the reported value is consistent with value reported to
      * metrics logs. Verify we output the correct launch state.
      */
-    @FlakyTest(bugId = 143855645)
     @Test
     public void testAppColdLaunchSetsWaitResultDelayData() {
         final String amStartOutput = SystemUtil.runShellCommand(
                 "am start -S -W " + TEST_ACTIVITY.flattenToShortString());
 
-        final LogMaker metricsLog = getMetricsLog(TEST_ACTIVITY, APP_TRANSITION);
-        assertNotNull("log should have windows drawn delay", metricsLog);
-
+        final LogMaker metricsLog = waitForMetricsLog(TEST_ACTIVITY, APP_TRANSITION);
         final int windowsDrawnDelayMs =
                 (int) metricsLog.getTaggedData(APP_TRANSITION_WINDOWS_DRAWN_DELAY_MS);
 
@@ -314,7 +305,6 @@
      * receive a windows drawn message.
      * see b/117148004
      */
-    @FlakyTest(bugId = 143855645)
     @Test
     public void testLaunchOfVisibleApp() {
         // Launch an activity.
@@ -339,7 +329,7 @@
         launchAndWaitForActivity(THIRD_ACTIVITY);
 
         long postUptimeMs = SystemClock.uptimeMillis();
-        metricsLog = getMetricsLog(THIRD_ACTIVITY, APP_TRANSITION);
+        metricsLog = waitForMetricsLog(THIRD_ACTIVITY, APP_TRANSITION);
         assertMetricsLogs(THIRD_ACTIVITY, APP_TRANSITION, metricsLog, mPreUptimeMs,
                 postUptimeMs);
         assertTransitionIsStartingWindow(metricsLog);
@@ -357,11 +347,8 @@
                 .setWaitForLaunched(false)
                 .execute();
 
-        final LogMaker metricsLog = Condition.waitForResult(
-                new Condition<LogMaker>("APP_TRANSITION_CANCELLED")
-                        .setResultSupplier(() -> getMetricsLog(
-                                TRANSLUCENT_TOP_ACTIVITY, APP_TRANSITION_CANCELLED))
-                        .setResultValidator(log -> log != null));
+        final LogMaker metricsLog = waitForMetricsLog(TRANSLUCENT_TOP_ACTIVITY,
+                APP_TRANSITION_CANCELLED);
 
         assertNotNull("Metrics log APP_TRANSITION_CANCELLED not found", metricsLog);
     }
@@ -378,7 +365,7 @@
         mPreUptimeMs = SystemClock.uptimeMillis();
         launchAndWaitForActivity(SECOND_ACTIVITY);
 
-        final LogMaker metricsLog = getMetricsLog(SECOND_ACTIVITY, APP_TRANSITION);
+        final LogMaker metricsLog = waitForMetricsLog(SECOND_ACTIVITY, APP_TRANSITION);
         final long postUptimeMs = SystemClock.uptimeMillis();
         assertMetricsLogs(SECOND_ACTIVITY, APP_TRANSITION, metricsLog, mPreUptimeMs, postUptimeMs);
         assertTransitionIsStartingWindow(metricsLog);
@@ -393,7 +380,7 @@
     public void testTrampolineActivityLaunch() {
         // Launch a trampoline activity that will launch single task activity.
         launchAndWaitForActivity(ENTRY_POINT_ALIAS_ACTIVITY);
-        final LogMaker metricsLog = getMetricsLog(SINGLE_TASK_ACTIVITY, APP_TRANSITION);
+        final LogMaker metricsLog = waitForMetricsLog(SINGLE_TASK_ACTIVITY, APP_TRANSITION);
         final long postUptimeMs = SystemClock.uptimeMillis();
         assertMetricsLogs(SINGLE_TASK_ACTIVITY, APP_TRANSITION, metricsLog, mPreUptimeMs,
                         postUptimeMs);
@@ -431,18 +418,52 @@
                 .execute();
     }
 
-    private LogMaker getMetricsLog(ComponentName componentName, int category) {
-        final Queue<LogMaker> startLogs = MetricsAsserts.findMatchingLogs(mMetricsReader,
-                new LogMaker(category));
-        for (LogMaker log : startLogs) {
-            final String actualClassName = (String) log.getTaggedData(FIELD_CLASS_NAME);
-            final String actualPackageName = log.getPackageName();
-            if (componentName.getClassName().equals(actualClassName) &&
-                    componentName.getPackageName().equals(actualPackageName)) {
+    @NonNull
+    private LogMaker waitForMetricsLog(ComponentName componentName, int category) {
+        final String categoryName = categoryToString(category);
+        final String message = componentName.toShortString() + " with category " + categoryName;
+        final LogMaker metricsLog = Condition.waitForResult(new Condition<LogMaker>(message)
+                .setResultSupplier(() -> getMetricsLog(componentName, category))
+                .setResultValidator(Objects::nonNull));
+        if (metricsLog != null) {
+            return metricsLog;
+        }
+
+        // Fallback to check again from raw event log. Not sure if sometimes MetricsAsserts cannot
+        // find the expected log.
+        final LogMaker template = new LogMaker(category);
+        final List<Event> eventLogs = getEventLogsForComponents(mLogSeparator,
+                android.util.EventLog.getTagCode("sysui_multi_action"));
+        for (Event event : eventLogs) {
+            final LogMaker log = new LogMaker((Object[]) event.getData());
+            if (isComponentMatched(log, componentName) && template.isSubsetOf(log)) {
                 return log;
             }
         }
-        return null;
+
+        throw new AssertionError("Log should have " + categoryName + " of " + componentName);
+    }
+
+    @Nullable
+    private LogMaker getMetricsLog(ComponentName componentName, int category) {
+        final Queue<LogMaker> startLogs = MetricsAsserts.findMatchingLogs(mMetricsReader,
+                new LogMaker(category));
+        return startLogs.stream().filter(log -> isComponentMatched(log, componentName))
+                .findFirst().orElse(null);
+    }
+
+    private static boolean isComponentMatched(LogMaker log, ComponentName componentName) {
+        final String actualClassName = (String) log.getTaggedData(FIELD_CLASS_NAME);
+        final String actualPackageName = log.getPackageName();
+        return componentName.getClassName().equals(actualClassName) &&
+                componentName.getPackageName().equals(actualPackageName);
+    }
+
+    private static String categoryToString(int category) {
+        return (category == APP_TRANSITION ? "APP_TRANSITION"
+                : category == APP_TRANSITION_CANCELLED ? "APP_TRANSITION_CANCELLED"
+                : category == APP_TRANSITION_REPORTED_DRAWN ? "APP_TRANSITION_REPORTED_DRAWN"
+                : "Unknown") + "(" + category + ")";
     }
 
     private static void assertLaunchComponentState(String amStartOutput, ComponentName component,
diff --git a/tests/framework/base/windowmanager/src/android/server/wm/AmProfileTests.java b/tests/framework/base/windowmanager/src/android/server/wm/AmProfileTests.java
index a2c8a0e..23cd9be 100644
--- a/tests/framework/base/windowmanager/src/android/server/wm/AmProfileTests.java
+++ b/tests/framework/base/windowmanager/src/android/server/wm/AmProfileTests.java
@@ -31,9 +31,6 @@
 import android.platform.test.annotations.Presubmit;
 import android.server.wm.CommandSession.ActivitySession;
 import android.server.wm.CommandSession.DefaultLaunchProxy;
-import android.server.wm.CommandSession.LaunchInjector;
-
-import androidx.test.filters.FlakyTest;
 
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
@@ -79,7 +76,6 @@
      * only different in the three configuration options.
      */
     @Test
-    @FlakyTest(bugId = 131005232)
     public void testAmProfileStartNoSamplingStreaming() throws Exception {
         testProfile(true, false, true);
     }
@@ -101,7 +97,6 @@
     }
 
     @Test
-    @FlakyTest(bugId = 131005232)
     public void testAmStartStartProfilerNoSamplingStreaming() throws Exception {
         testProfile(false, false, true);
     }
diff --git a/tests/framework/base/windowmanager/src/android/server/wm/AppConfigurationTests.java b/tests/framework/base/windowmanager/src/android/server/wm/AppConfigurationTests.java
index 27d8121..16268d7 100644
--- a/tests/framework/base/windowmanager/src/android/server/wm/AppConfigurationTests.java
+++ b/tests/framework/base/windowmanager/src/android/server/wm/AppConfigurationTests.java
@@ -21,10 +21,8 @@
 import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
 import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN_OR_SPLIT_SCREEN_SECONDARY;
 import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_PRIMARY;
-import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_SECONDARY;
 import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
 import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
-import static android.server.wm.CommandSession.ActivityCallback.ON_CONFIGURATION_CHANGED;
 import static android.server.wm.ComponentNameUtils.getWindowName;
 import static android.server.wm.StateLogger.logE;
 import static android.server.wm.WindowManagerState.STATE_RESUMED;
@@ -34,7 +32,6 @@
 import static android.server.wm.app.Components.LANDSCAPE_ORIENTATION_ACTIVITY;
 import static android.server.wm.app.Components.LAUNCHING_ACTIVITY;
 import static android.server.wm.app.Components.NIGHT_MODE_ACTIVITY;
-import static android.server.wm.app.Components.NO_RELAUNCH_ACTIVITY;
 import static android.server.wm.app.Components.PORTRAIT_ORIENTATION_ACTIVITY;
 import static android.server.wm.app.Components.RESIZEABLE_ACTIVITY;
 import static android.server.wm.app.Components.TEST_ACTIVITY;
@@ -956,58 +953,4 @@
     private SizeInfo getAppSizeInfo(ActivitySession activitySession) {
         return activitySession.getAppConfigInfo().sizeInfo;
     }
-
-    /**
-     * Verify that reported display sizes are different for multiple activities with different
-     * configurations running in the same process.
-     */
-    @Test
-    public void testDisplaySizeInSplitScreen() {
-        assumeTrue("Skipping test: no multi-window support", supportsSplitScreenMultiWindow());
-
-        // Launch two activities in split-screen
-        final ActivitySession primaryActivitySession = createManagedActivityClientSession()
-                .startActivity(getLaunchActivityBuilder()
-                        .setUseInstrumentation()
-                        .setTargetActivity(RESIZEABLE_ACTIVITY)
-                        .setWindowingMode(WINDOWING_MODE_SPLIT_SCREEN_PRIMARY)
-                        .setWaitForLaunched(true));
-
-        final ActivitySession secondaryActivitySession = createManagedActivityClientSession()
-                .startActivity(getLaunchActivityBuilder()
-                        .setUseInstrumentation()
-                        .setNewTask(true)
-                        .setMultipleTask(true)
-                        .setTargetActivity(NO_RELAUNCH_ACTIVITY)
-                        .setWindowingMode(WINDOWING_MODE_SPLIT_SCREEN_SECONDARY)
-                        .setWaitForLaunched(true));
-
-        // Resize split-screen to make sure that sizes are not the same.
-        separateTestJournal();
-        final int STACK_SIZE = 400;
-        resizeDockedStack(STACK_SIZE, STACK_SIZE, STACK_SIZE, STACK_SIZE);
-
-        waitForOrFail("Activity must receive a configuration change",
-                () -> hasConfigChanged(primaryActivitySession));
-        waitForOrFail("Activity must receive a configuration change",
-                () -> hasConfigChanged(secondaryActivitySession));
-
-        // Check if the sizes reported to activities are different.
-        final SizeInfo primarySizeInfo = primaryActivitySession.getConfigInfo().sizeInfo;
-        final SizeInfo secondarySizeInfo = secondaryActivitySession.getConfigInfo().sizeInfo;
-        final SizeInfo appSizeInfo = secondaryActivitySession.getAppConfigInfo().sizeInfo;
-        // Second activity size info should match the application, since the process is tracking the
-        // configuration of the activity that was added last.
-        assertSizesAreSame(secondarySizeInfo, appSizeInfo);
-        // Primary and secondary activity sizes must be different, since the sizes of the windows
-        // after resize are different.
-        assertNotEquals(primarySizeInfo.displayWidth, secondarySizeInfo.displayWidth);
-        assertNotEquals(primarySizeInfo.displayHeight, secondarySizeInfo.displayHeight);
-    }
-
-    private boolean hasConfigChanged(ActivitySession activitySession) {
-        final List<CommandSession.ActivityCallback> callbackHistory =
-                activitySession.takeCallbackHistory();
-        return callbackHistory != null && callbackHistory.contains(ON_CONFIGURATION_CHANGED);
-    }
 }
diff --git a/tests/framework/base/windowmanager/src/android/server/wm/WindowInsetsAnimationTests.java b/tests/framework/base/windowmanager/src/android/server/wm/WindowInsetsAnimationTests.java
index 2ff0d87..957062b 100644
--- a/tests/framework/base/windowmanager/src/android/server/wm/WindowInsetsAnimationTests.java
+++ b/tests/framework/base/windowmanager/src/android/server/wm/WindowInsetsAnimationTests.java
@@ -73,7 +73,6 @@
  *     atest CtsWindowManagerDeviceTestCases:WindowInsetsAnimationTests
  */
 @Presubmit
-@FlakyTest(detail = "Promote once confirmed non-flaky")
 public class WindowInsetsAnimationTests extends WindowManagerTestBase {
 
     TestActivity mActivity;
@@ -117,6 +116,7 @@
     }
 
     @Test
+    @FlakyTest(detail = "Promote once confirmed non-flaky")
     public void testAnimationCallbacks_overlapping() {
         WindowInsets before = mActivity.mLastWindowInsets;
 
diff --git a/tests/framework/base/windowmanager/testsdk25/Android.bp b/tests/framework/base/windowmanager/testsdk25/Android.bp
index 3eeb841..318002e 100644
--- a/tests/framework/base/windowmanager/testsdk25/Android.bp
+++ b/tests/framework/base/windowmanager/testsdk25/Android.bp
@@ -32,6 +32,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/framework/base/windowmanager/testsdk28/Android.bp b/tests/framework/base/windowmanager/testsdk28/Android.bp
index 5c01348..3b3bffc 100644
--- a/tests/framework/base/windowmanager/testsdk28/Android.bp
+++ b/tests/framework/base/windowmanager/testsdk28/Android.bp
@@ -32,6 +32,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/framework/base/windowmanager/translucentapp/Android.bp b/tests/framework/base/windowmanager/translucentapp/Android.bp
index 19a8f47..f889dab 100644
--- a/tests/framework/base/windowmanager/translucentapp/Android.bp
+++ b/tests/framework/base/windowmanager/translucentapp/Android.bp
@@ -30,6 +30,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/framework/base/windowmanager/translucentappsdk26/Android.bp b/tests/framework/base/windowmanager/translucentappsdk26/Android.bp
index 6f86d31..1c07e26 100644
--- a/tests/framework/base/windowmanager/translucentappsdk26/Android.bp
+++ b/tests/framework/base/windowmanager/translucentappsdk26/Android.bp
@@ -28,6 +28,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/inputmethod/Android.bp b/tests/inputmethod/Android.bp
index ac58f95..87228d5 100644
--- a/tests/inputmethod/Android.bp
+++ b/tests/inputmethod/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     compile_multilib: "both",
diff --git a/tests/inputmethod/mockime/Android.bp b/tests/inputmethod/mockime/Android.bp
index 42f057a..91988ea 100644
--- a/tests/inputmethod/mockime/Android.bp
+++ b/tests/inputmethod/mockime/Android.bp
@@ -40,6 +40,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     static_libs: [
diff --git a/tests/inputmethod/mockime/src/com/android/cts/mockime/ImeEventStreamTestUtils.java b/tests/inputmethod/mockime/src/com/android/cts/mockime/ImeEventStreamTestUtils.java
index cee89d8..f08633f 100644
--- a/tests/inputmethod/mockime/src/com/android/cts/mockime/ImeEventStreamTestUtils.java
+++ b/tests/inputmethod/mockime/src/com/android/cts/mockime/ImeEventStreamTestUtils.java
@@ -291,6 +291,19 @@
     }
 
     /**
+     * Checks if {@code eventName} has occurred and given {@param key} has value {@param value}.
+     * @param eventName event name to check.
+     * @param key the key that should be checked.
+     * @param value the expected value for the given {@param key}.
+     */
+    public static void expectEventWithKeyValue(@NonNull ImeEventStream stream,
+            @NonNull String eventName, @NonNull String key, int value, long timeout)
+            throws TimeoutException {
+        expectEvent(stream, event -> TextUtils.equals(eventName, event.getEventName())
+                && value == event.getArguments().getInt(key), timeout);
+    }
+
+    /**
      * Waits until {@code MockIme} does not send {@code "onInputViewLayoutChanged"} event
      * for a certain period of time ({@code stableThresholdTime} msec).
      *
diff --git a/tests/inputmethod/mockime/src/com/android/cts/mockime/MockIme.java b/tests/inputmethod/mockime/src/com/android/cts/mockime/MockIme.java
index 9a73722..3a814db 100644
--- a/tests/inputmethod/mockime/src/com/android/cts/mockime/MockIme.java
+++ b/tests/inputmethod/mockime/src/com/android/cts/mockime/MockIme.java
@@ -410,14 +410,17 @@
 
     private static final class KeyboardLayoutView extends LinearLayout {
         @NonNull
+        private final MockIme mMockIme;
+        @NonNull
         private final ImeSettings mSettings;
         @NonNull
         private final View.OnLayoutChangeListener mLayoutListener;
 
-        KeyboardLayoutView(Context context, @NonNull ImeSettings imeSettings,
+        KeyboardLayoutView(MockIme mockIme, @NonNull ImeSettings imeSettings,
                 @Nullable Consumer<ImeLayoutInfo> onInputViewLayoutChangedCallback) {
-            super(context);
+            super(mockIme);
 
+            mMockIme = mockIme;
             mSettings = imeSettings;
 
             setOrientation(VERTICAL);
@@ -511,6 +514,13 @@
         }
 
         @Override
+        protected void onWindowVisibilityChanged(int visibility) {
+            mMockIme.getTracer().onWindowVisibilityChanged(() -> {
+                super.onWindowVisibilityChanged(visibility);
+            }, visibility);
+        }
+
+        @Override
         protected void onDetachedFromWindow() {
             super.onDetachedFromWindow();
             removeOnLayoutChangeListener(mLayoutListener);
@@ -861,6 +871,12 @@
             recordEventInternal("onStartInput", runnable, arguments);
         }
 
+        public void onWindowVisibilityChanged(@NonNull Runnable runnable, int visibility) {
+            final Bundle arguments = new Bundle();
+            arguments.putInt("visible", visibility);
+            recordEventInternal("onWindowVisibilityChanged", runnable, arguments);
+        }
+
         public void onStartInputView(EditorInfo editorInfo, boolean restarting,
                 @NonNull Runnable runnable) {
             final Bundle arguments = new Bundle();
diff --git a/tests/inputmethod/src/android/view/inputmethod/cts/FocusHandlingTest.java b/tests/inputmethod/src/android/view/inputmethod/cts/FocusHandlingTest.java
index 5a2c8c2..653507d 100644
--- a/tests/inputmethod/src/android/view/inputmethod/cts/FocusHandlingTest.java
+++ b/tests/inputmethod/src/android/view/inputmethod/cts/FocusHandlingTest.java
@@ -17,7 +17,6 @@
 package android.view.inputmethod.cts;
 
 import static android.view.WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM;
-import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
 import static android.view.WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE;
 import static android.view.inputmethod.cts.util.TestUtils.runOnMainSync;
 import static android.widget.PopupWindow.INPUT_METHOD_NOT_NEEDED;
@@ -41,6 +40,7 @@
 import android.os.IBinder;
 import android.os.Process;
 import android.os.SystemClock;
+import android.platform.test.annotations.AppModeFull;
 import android.text.TextUtils;
 import android.view.View;
 import android.view.ViewTreeObserver;
@@ -50,6 +50,7 @@
 import android.view.inputmethod.cts.util.EndToEndImeTestBase;
 import android.view.inputmethod.cts.util.TestActivity;
 import android.view.inputmethod.cts.util.TestUtils;
+import android.view.inputmethod.cts.util.UnlockScreenRule;
 import android.view.inputmethod.cts.util.WindowFocusHandleService;
 import android.view.inputmethod.cts.util.WindowFocusStealer;
 import android.widget.EditText;
@@ -70,6 +71,7 @@
 import com.android.cts.mockime.ImeSettings;
 import com.android.cts.mockime.MockImeSession;
 
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -84,6 +86,9 @@
     static final long TIMEOUT = TimeUnit.SECONDS.toMillis(5);
     static final long NOT_EXPECT_TIMEOUT = TimeUnit.SECONDS.toMillis(1);
 
+    @Rule
+    public final UnlockScreenRule mUnlockScreenRule = new UnlockScreenRule();
+
     private static final String TEST_MARKER_PREFIX =
             "android.view.inputmethod.cts.FocusHandlingTest";
 
@@ -443,6 +448,7 @@
         }
     }
 
+    @AppModeFull(reason = "Instant apps cannot hold android.permission.SYSTEM_ALERT_WINDOW")
     @Test
     public void testMultiWindowFocusHandleOnDifferentUiThread() throws Exception {
         final Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
@@ -567,8 +573,8 @@
 
             // Wait for service bound.
             try {
-                TestUtils.waitOnMainUntil(() -> WindowFocusHandleService.getInstance() != null, 5,
-                        "WindowFocusHandleService should be bound");
+                TestUtils.waitOnMainUntil(() -> WindowFocusHandleService.getInstance() != null,
+                        TIMEOUT, "WindowFocusHandleService should be bound");
             } catch (TimeoutException e) {
                 fail("WindowFocusHandleService should be bound");
             }
diff --git a/tests/inputmethod/src/android/view/inputmethod/cts/InputMethodServiceTest.java b/tests/inputmethod/src/android/view/inputmethod/cts/InputMethodServiceTest.java
index 1a2561a..2db7ee1 100644
--- a/tests/inputmethod/src/android/view/inputmethod/cts/InputMethodServiceTest.java
+++ b/tests/inputmethod/src/android/view/inputmethod/cts/InputMethodServiceTest.java
@@ -23,6 +23,7 @@
 import static android.view.inputmethod.cts.util.TestUtils.waitOnMainUntil;
 
 import static com.android.cts.mockime.ImeEventStreamTestUtils.EventFilterMode.CHECK_EXIT_EVENT_ONLY;
+import static com.android.cts.mockime.ImeEventStreamTestUtils.expectEventWithKeyValue;
 import static com.android.cts.mockime.ImeEventStreamTestUtils.editorMatcher;
 import static com.android.cts.mockime.ImeEventStreamTestUtils.expectCommand;
 import static com.android.cts.mockime.ImeEventStreamTestUtils.expectEvent;
@@ -40,6 +41,7 @@
 import android.text.TextUtils;
 import android.view.KeyCharacterMap;
 import android.view.KeyEvent;
+import android.view.View;
 import android.view.inputmethod.CursorAnchorInfo;
 import android.view.inputmethod.EditorInfo;
 import android.view.inputmethod.InputConnection;
@@ -48,6 +50,7 @@
 import android.view.inputmethod.cts.util.EndToEndImeTestBase;
 import android.view.inputmethod.cts.util.TestActivity;
 import android.view.inputmethod.cts.util.TestUtils;
+import android.view.inputmethod.cts.util.UnlockScreenRule;
 import android.widget.EditText;
 import android.widget.LinearLayout;
 
@@ -62,6 +65,7 @@
 import com.android.cts.mockime.MockImeSession;
 
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -81,6 +85,9 @@
     private static final long TIMEOUT = TimeUnit.SECONDS.toMillis(5);
     private static final long EXPECTED_TIMEOUT = TimeUnit.SECONDS.toMillis(2);
 
+    @Rule
+    public final UnlockScreenRule mUnlockScreenRule = new UnlockScreenRule();
+
     private Instrumentation mInstrumentation;
 
     private static Predicate<ImeEvent> backKeyDownMatcher(boolean expectedReturnValue) {
@@ -199,6 +206,8 @@
             imeSession.callRequestHideSelf(0);
             expectEvent(stream, event -> "hideSoftInput".equals(event.getEventName()), TIMEOUT);
             expectEvent(stream, event -> "onFinishInputView".equals(event.getEventName()), TIMEOUT);
+            expectEventWithKeyValue(stream, "onWindowVisibilityChanged", "visible",
+                    View.GONE, TIMEOUT);
         }
     }
 
@@ -217,6 +226,8 @@
             imeSession.callRequestShowSelf(0);
             expectEvent(stream, event -> "showSoftInput".equals(event.getEventName()), TIMEOUT);
             expectEvent(stream, event -> "onStartInputView".equals(event.getEventName()), TIMEOUT);
+            expectEventWithKeyValue(stream, "onWindowVisibilityChanged", "visible",
+                    View.VISIBLE, TIMEOUT);
         }
     }
 
diff --git a/tests/inputmethod/src/android/view/inputmethod/cts/InputMethodStartInputLifecycleTest.java b/tests/inputmethod/src/android/view/inputmethod/cts/InputMethodStartInputLifecycleTest.java
new file mode 100644
index 0000000..52fc64d
--- /dev/null
+++ b/tests/inputmethod/src/android/view/inputmethod/cts/InputMethodStartInputLifecycleTest.java
@@ -0,0 +1,139 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.view.inputmethod.cts;
+
+import static android.view.View.SCREEN_STATE_OFF;
+import static android.view.View.SCREEN_STATE_ON;
+
+import static com.android.cts.mockime.ImeEventStreamTestUtils.editorMatcher;
+import static com.android.cts.mockime.ImeEventStreamTestUtils.expectCommand;
+import static com.android.cts.mockime.ImeEventStreamTestUtils.expectEvent;
+
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assume.assumeTrue;
+
+import android.app.Instrumentation;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.os.SystemClock;
+import android.text.TextUtils;
+import android.view.inputmethod.InputMethodManager;
+import android.view.inputmethod.cts.util.DisableScreenDozeRule;
+import android.view.inputmethod.cts.util.TestActivity;
+import android.view.inputmethod.cts.util.TestUtils;
+import android.view.inputmethod.cts.util.UnlockScreenRule;
+import android.widget.EditText;
+import android.widget.LinearLayout;
+
+import androidx.test.InstrumentationRegistry;
+import androidx.test.filters.MediumTest;
+import androidx.test.runner.AndroidJUnit4;
+
+import com.android.compatibility.common.util.CtsTouchUtils;
+import com.android.cts.mockime.ImeCommand;
+import com.android.cts.mockime.ImeEventStream;
+import com.android.cts.mockime.ImeSettings;
+import com.android.cts.mockime.MockImeSession;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.atomic.AtomicReference;
+
+@MediumTest
+@RunWith(AndroidJUnit4.class)
+public class InputMethodStartInputLifecycleTest {
+    @Rule
+    public final DisableScreenDozeRule mDisableScreenDozeRule = new DisableScreenDozeRule();
+    @Rule
+    public final UnlockScreenRule mUnlockScreenRule = new UnlockScreenRule();
+
+    private static final long TIMEOUT = TimeUnit.SECONDS.toMillis(5);
+
+    @Test
+    public void testInputConnectionStateWhenScreenStateChanges() throws Exception {
+        final Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
+        final Context context = instrumentation.getTargetContext();
+        final InputMethodManager imManager = context.getSystemService(InputMethodManager.class);
+        assumeTrue(context.getPackageManager().hasSystemFeature(
+                PackageManager.FEATURE_INPUT_METHODS));
+        final AtomicReference<EditText> focusedEditTextRef = new AtomicReference<>();
+
+        try (MockImeSession imeSession = MockImeSession.create(
+                context, instrumentation.getUiAutomation(), new ImeSettings.Builder())) {
+            final ImeEventStream stream = imeSession.openEventStream();
+
+            final String marker = InputMethodManagerTest.class.getName() + "/"
+                    + SystemClock.elapsedRealtimeNanos();
+            final AtomicInteger screenStateCallbackRef = new AtomicInteger(-1);
+            TestActivity.startSync(activity -> {
+                final LinearLayout layout = new LinearLayout(activity);
+                layout.setOrientation(LinearLayout.VERTICAL);
+
+                final EditText focusedEditText = new EditText(activity) {
+                    @Override
+                    public void onScreenStateChanged(int screenState) {
+                        super.onScreenStateChanged(screenState);
+                        screenStateCallbackRef.set(screenState);
+                    }
+                };
+                focusedEditText.setPrivateImeOptions(marker);
+                focusedEditText.setHint("editText");
+                layout.addView(focusedEditText);
+                focusedEditText.requestFocus();
+                focusedEditTextRef.set(focusedEditText);
+
+                final EditText nonFocusedEditText = new EditText(activity);
+                layout.addView(nonFocusedEditText);
+
+                return layout;
+            });
+
+            // Expected onStartInput when TestActivity launched.
+            final EditText editText = focusedEditTextRef.get();
+            expectEvent(stream, editorMatcher("onStartInput", marker), TIMEOUT);
+
+            // Expected text commit will not work when turnScreenOff.
+            TestUtils.turnScreenOff();
+            TestUtils.waitOnMainUntil(() -> screenStateCallbackRef.get() == SCREEN_STATE_OFF,
+                    TIMEOUT);
+            assertTrue(TestUtils.getOnMainSync(
+                    () -> !imManager.isActive(editText) && !imManager.isAcceptingText()));
+            final ImeCommand commit = imeSession.callCommitText("Hi!", 1);
+            expectCommand(stream, commit, TIMEOUT);
+            TestUtils.waitOnMainUntil(() -> !TextUtils.equals(editText.getText(), "Hi!"), TIMEOUT,
+                    "InputMethodService#commitText should not work after screen off");
+
+            // Expected text commit will work when turnScreenOn.
+            TestUtils.turnScreenOn();
+            TestUtils.unlockScreen();
+            TestUtils.waitOnMainUntil(() -> screenStateCallbackRef.get() == SCREEN_STATE_ON,
+                    TIMEOUT);
+            CtsTouchUtils.emulateTapOnViewCenter(instrumentation, null, editText);
+            expectEvent(stream, editorMatcher("onStartInput", marker), TIMEOUT);
+            assertTrue(TestUtils.getOnMainSync(
+                    () -> imManager.isActive(editText) && imManager.isAcceptingText()));
+            final ImeCommand commit1 = imeSession.callCommitText("Hello!", 1);
+            expectCommand(stream, commit1, TIMEOUT);
+            TestUtils.waitOnMainUntil(() -> TextUtils.equals(editText.getText(), "Hello!"), TIMEOUT,
+                    "InputMethodService#commitText should work after screen on");
+        }
+    }
+}
diff --git a/tests/inputmethod/src/android/view/inputmethod/cts/KeyboardVisibilityControlTest.java b/tests/inputmethod/src/android/view/inputmethod/cts/KeyboardVisibilityControlTest.java
index aa5b695..48e8ca3 100644
--- a/tests/inputmethod/src/android/view/inputmethod/cts/KeyboardVisibilityControlTest.java
+++ b/tests/inputmethod/src/android/view/inputmethod/cts/KeyboardVisibilityControlTest.java
@@ -19,6 +19,7 @@
 import static android.view.inputmethod.cts.util.TestUtils.getOnMainSync;
 import static android.view.inputmethod.cts.util.TestUtils.runOnMainSync;
 
+import static com.android.cts.mockime.ImeEventStreamTestUtils.expectEventWithKeyValue;
 import static com.android.cts.mockime.ImeEventStreamTestUtils.expectEvent;
 import static com.android.cts.mockime.ImeEventStreamTestUtils.notExpectEvent;
 
@@ -28,11 +29,13 @@
 import android.os.SystemClock;
 import android.text.TextUtils;
 import android.util.Pair;
+import android.view.View;
 import android.view.inputmethod.EditorInfo;
 import android.view.inputmethod.InputMethod;
 import android.view.inputmethod.InputMethodManager;
 import android.view.inputmethod.cts.util.EndToEndImeTestBase;
 import android.view.inputmethod.cts.util.TestActivity;
+import android.view.inputmethod.cts.util.UnlockScreenRule;
 import android.widget.EditText;
 import android.widget.LinearLayout;
 
@@ -46,6 +49,7 @@
 import com.android.cts.mockime.ImeSettings;
 import com.android.cts.mockime.MockImeSession;
 
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -58,6 +62,9 @@
 public class KeyboardVisibilityControlTest extends EndToEndImeTestBase {
     private static final long TIMEOUT = TimeUnit.SECONDS.toMillis(5);
 
+    @Rule
+    public final UnlockScreenRule mUnlockScreenRule = new UnlockScreenRule();
+
     private static final String TEST_MARKER_PREFIX =
             "android.view.inputmethod.cts.KeyboardVisibilityControlTest";
 
@@ -155,6 +162,8 @@
 
             expectEvent(stream, showSoftInputMatcher(InputMethod.SHOW_EXPLICIT), TIMEOUT);
             expectEvent(stream, editorMatcher("onStartInputView", marker), TIMEOUT);
+            expectEventWithKeyValue(stream, "onWindowVisibilityChanged", "visible",
+                    View.VISIBLE, TIMEOUT);
 
             // Test hideSoftInputFromWindow() flow
             assertTrue("hideSoftInputFromWindow must success if the View has IME focus",
@@ -162,6 +171,8 @@
 
             expectEvent(stream, hideSoftInputMatcher(), TIMEOUT);
             expectEvent(stream, onFinishInputViewMatcher(false), TIMEOUT);
+            expectEventWithKeyValue(stream, "onWindowVisibilityChanged", "visible",
+                    View.GONE, TIMEOUT);
         }
     }
 
diff --git a/tests/inputmethod/src/android/view/inputmethod/cts/NavigationBarColorTest.java b/tests/inputmethod/src/android/view/inputmethod/cts/NavigationBarColorTest.java
index 3754c14..69cf8ac 100644
--- a/tests/inputmethod/src/android/view/inputmethod/cts/NavigationBarColorTest.java
+++ b/tests/inputmethod/src/android/view/inputmethod/cts/NavigationBarColorTest.java
@@ -47,6 +47,7 @@
 import android.view.inputmethod.cts.util.EndToEndImeTestBase;
 import android.view.inputmethod.cts.util.NavigationBarInfo;
 import android.view.inputmethod.cts.util.TestActivity;
+import android.view.inputmethod.cts.util.UnlockScreenRule;
 import android.widget.LinearLayout;
 import android.widget.TextView;
 
@@ -65,6 +66,7 @@
 
 import org.junit.Before;
 import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -78,6 +80,9 @@
 
     private static final String TEST_MARKER = "android.view.inputmethod.cts.NavigationBarColorTest";
 
+    @Rule
+    public final UnlockScreenRule mUnlockScreenRule = new UnlockScreenRule();
+
     private static void updateSystemUiVisibility(@NonNull View view, int flags, int mask) {
         final int currentFlags = view.getSystemUiVisibility();
         final int newFlags = (currentFlags & ~mask) | (flags & mask);
diff --git a/tests/inputmethod/src/android/view/inputmethod/cts/OnScreenPositionTest.java b/tests/inputmethod/src/android/view/inputmethod/cts/OnScreenPositionTest.java
index a90147e..36230b7 100644
--- a/tests/inputmethod/src/android/view/inputmethod/cts/OnScreenPositionTest.java
+++ b/tests/inputmethod/src/android/view/inputmethod/cts/OnScreenPositionTest.java
@@ -30,6 +30,7 @@
 import android.view.inputmethod.EditorInfo;
 import android.view.inputmethod.cts.util.EndToEndImeTestBase;
 import android.view.inputmethod.cts.util.TestActivity;
+import android.view.inputmethod.cts.util.UnlockScreenRule;
 import android.widget.EditText;
 import android.widget.LinearLayout;
 
@@ -43,6 +44,7 @@
 import com.android.cts.mockime.ImeSettings;
 import com.android.cts.mockime.MockImeSession;
 
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -57,6 +59,9 @@
 
     private static final String TEST_MARKER = "android.view.inputmethod.cts.OnScreenPositionTest";
 
+    @Rule
+    public final UnlockScreenRule mUnlockScreenRule = new UnlockScreenRule();
+
     public EditText launchTestActivity() {
         final AtomicReference<EditText> editTextRef = new AtomicReference<>();
         TestActivity.startSync(activity -> {
diff --git a/tests/inputmethod/src/android/view/inputmethod/cts/SearchViewTest.java b/tests/inputmethod/src/android/view/inputmethod/cts/SearchViewTest.java
index 2b327f5..f9ea069 100644
--- a/tests/inputmethod/src/android/view/inputmethod/cts/SearchViewTest.java
+++ b/tests/inputmethod/src/android/view/inputmethod/cts/SearchViewTest.java
@@ -29,6 +29,7 @@
 import android.view.inputmethod.InputMethodManager;
 import android.view.inputmethod.cts.util.EndToEndImeTestBase;
 import android.view.inputmethod.cts.util.TestActivity;
+import android.view.inputmethod.cts.util.UnlockScreenRule;
 import android.widget.BaseAdapter;
 import android.widget.EditText;
 import android.widget.LinearLayout;
@@ -44,6 +45,7 @@
 import com.android.cts.mockime.ImeSettings;
 import com.android.cts.mockime.MockImeSession;
 
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -56,6 +58,9 @@
     static final long TIMEOUT = TimeUnit.SECONDS.toMillis(5);
     static final long NOT_EXPECT_TIMEOUT = TimeUnit.SECONDS.toMillis(2);
 
+    @Rule
+    public final UnlockScreenRule mUnlockScreenRule = new UnlockScreenRule();
+
     public SearchView launchTestActivity(boolean requestFocus) {
         final AtomicReference<SearchView> searchViewRef = new AtomicReference<>();
         TestActivity.startSync(activity -> {
diff --git a/tests/inputmethod/src/android/view/inputmethod/cts/util/DisableScreenDozeRule.java b/tests/inputmethod/src/android/view/inputmethod/cts/util/DisableScreenDozeRule.java
new file mode 100644
index 0000000..e6e8e30
--- /dev/null
+++ b/tests/inputmethod/src/android/view/inputmethod/cts/util/DisableScreenDozeRule.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.view.inputmethod.cts.util;
+
+import static com.android.compatibility.common.util.SystemUtil.runShellCommand;
+
+import org.junit.rules.TestRule;
+import org.junit.runner.Description;
+import org.junit.runners.model.Statement;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * {@link TestRule} class that disables screen doze settings before each test method running and
+ * restoring to initial values after test method finished.
+ */
+public class DisableScreenDozeRule implements TestRule {
+
+    /** Copied from ActivityManagerTestBase since these keys are hidden. */
+    private static final String[] DOZE_SETTINGS = {
+            "doze_enabled",
+            "doze_always_on",
+            "doze_pulse_on_pick_up",
+            "doze_pulse_on_long_press",
+            "doze_pulse_on_double_tap",
+            "doze_wake_screen_gesture",
+            "doze_wake_display_gesture",
+            "doze_tap_gesture"
+    };
+
+    private String getSecureSetting(String key) {
+        return runShellCommand("settings get secure " + key).trim();
+    }
+
+    private void putSecureSetting(String key, String value) {
+        runShellCommand("settings put secure " + key + " " + value);
+    }
+
+    @Override
+    public Statement apply(Statement base, Description description) {
+        return new Statement() {
+            @Override
+            public void evaluate() throws Throwable {
+                final Map<String, String> initialValues = new HashMap<>();
+                Arrays.stream(DOZE_SETTINGS).forEach(k -> initialValues.put(k, getSecureSetting(k)));
+                try {
+                    Arrays.stream(DOZE_SETTINGS).forEach(k -> putSecureSetting(k, "0"));
+                    base.evaluate();
+                } finally {
+                    Arrays.stream(DOZE_SETTINGS).forEach(k -> putSecureSetting(k, initialValues.get(k)));
+                }
+            }
+        };
+    }
+}
diff --git a/tests/inputmethod/src/android/view/inputmethod/cts/util/TestUtils.java b/tests/inputmethod/src/android/view/inputmethod/cts/util/TestUtils.java
index 51fcdbb..bb9cedc 100644
--- a/tests/inputmethod/src/android/view/inputmethod/cts/util/TestUtils.java
+++ b/tests/inputmethod/src/android/view/inputmethod/cts/util/TestUtils.java
@@ -16,11 +16,18 @@
 
 package android.view.inputmethod.cts.util;
 
+import static com.android.compatibility.common.util.SystemUtil.runShellCommand;
+
 import android.app.Instrumentation;
+import android.app.KeyguardManager;
+import android.content.Context;
+import android.os.PowerManager;
 
 import androidx.annotation.NonNull;
 import androidx.test.InstrumentationRegistry;
 
+import com.android.compatibility.common.util.CommonTestUtils;
+
 import java.util.concurrent.TimeoutException;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicReference;
@@ -102,4 +109,50 @@
             throws TimeoutException {
         waitOnMainUntil(condition, timeout, "");
     }
+
+    /**
+     * Call a command to turn screen On.
+     *
+     * This method will wait until the power state is interactive with {@link
+     * PowerManager#isInteractive()}.
+     */
+    public static void turnScreenOn() throws Exception {
+        final Context context = InstrumentationRegistry.getInstrumentation().getContext();
+        final PowerManager pm = context.getSystemService(PowerManager.class);
+        runShellCommand("input keyevent KEYCODE_WAKEUP");
+        CommonTestUtils.waitUntil("Device does not wake up after 5 seconds", 5,
+                () -> pm!= null && pm.isInteractive());
+    }
+
+    /**
+     * Call a command to turn screen off.
+     *
+     * This method will wait until the power state is *NOT* interactive with
+     * {@link PowerManager#isInteractive()}.
+     * Note that {@link PowerManager#isInteractive()} may not return {@code true} when the device
+     * enables Aod mode, recommend to add (@link DisableScreenDozeRule} in the test to disable Aod
+     * for making power state reliable.
+     */
+    public static void turnScreenOff() throws Exception {
+        final Context context = InstrumentationRegistry.getInstrumentation().getContext();
+        final PowerManager pm = context.getSystemService(PowerManager.class);
+        runShellCommand("input keyevent KEYCODE_SLEEP");
+        CommonTestUtils.waitUntil("Device does not sleep after 5 seconds", 5,
+                () -> pm != null && !pm.isInteractive());
+    }
+
+    /**
+     * Call a command to unlock screen.
+     *
+     * Note that this method is originated from
+     * {@link android.server.wm.UiDeviceUtils#pressUnlockButton()}, which is only valid for
+     * unlocking insecure keyguard for test automation.
+     */
+    public static void unlockScreen() throws Exception {
+        final Context context = InstrumentationRegistry.getInstrumentation().getContext();
+        final KeyguardManager km = context.getSystemService(KeyguardManager.class);
+        runShellCommand("input keyevent KEYCODE_MENU");
+        CommonTestUtils.waitUntil("Device does not unlock after 5 seconds", 5,
+                () -> km != null && !km.isKeyguardLocked());
+    }
 }
diff --git a/tests/inputmethod/src/android/view/inputmethod/cts/util/UnlockScreenRule.java b/tests/inputmethod/src/android/view/inputmethod/cts/util/UnlockScreenRule.java
new file mode 100644
index 0000000..2763095
--- /dev/null
+++ b/tests/inputmethod/src/android/view/inputmethod/cts/util/UnlockScreenRule.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.view.inputmethod.cts.util;
+
+import android.app.KeyguardManager;
+import android.content.Context;
+import android.os.PowerManager;
+
+import androidx.test.InstrumentationRegistry;
+
+import org.junit.rules.TestRule;
+import org.junit.runner.Description;
+import org.junit.runners.model.Statement;
+
+/**
+ * {@link TestRule} class that will turn screen on and unlock insecure keyguard when necessary
+ * before each test method running.
+ */
+public class UnlockScreenRule implements TestRule {
+    @Override
+    public Statement apply(Statement base, Description description) {
+        final Context context = InstrumentationRegistry.getInstrumentation().getContext();
+        final PowerManager pm = context.getSystemService(PowerManager.class);
+        final KeyguardManager km = context.getSystemService(KeyguardManager.class);
+
+        return new Statement() {
+            @Override
+            public void evaluate() throws Throwable {
+                if (pm!= null && !pm.isInteractive()) {
+                    TestUtils.turnScreenOn();
+                }
+                if (km != null && km.isKeyguardLocked()) {
+                    TestUtils.unlockScreen();
+                }
+                base.evaluate();
+            }
+        };
+    }
+}
diff --git a/tests/jdwp/Android.bp b/tests/jdwp/Android.bp
index d7d748c..b80c2bb 100644
--- a/tests/jdwp/Android.bp
+++ b/tests/jdwp/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 
diff --git a/tests/jdwp/runner/host-side/Android.bp b/tests/jdwp/runner/host-side/Android.bp
index 597ae6f..791f3ed 100644
--- a/tests/jdwp/runner/host-side/Android.bp
+++ b/tests/jdwp/runner/host-side/Android.bp
@@ -34,6 +34,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
 	"mts",
     ],
diff --git a/tests/leanbackjank/Android.bp b/tests/leanbackjank/Android.bp
index 78ff57e..40efaa1 100644
--- a/tests/leanbackjank/Android.bp
+++ b/tests/leanbackjank/Android.bp
@@ -24,6 +24,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     static_libs: [
diff --git a/tests/leanbackjank/app/Android.bp b/tests/leanbackjank/app/Android.bp
index 87a7798..9420ecb 100644
--- a/tests/leanbackjank/app/Android.bp
+++ b/tests/leanbackjank/app/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     resource_dirs: ["res"],
diff --git a/tests/libcore/jsr166/Android.bp b/tests/libcore/jsr166/Android.bp
index 83e0331..26c3317 100644
--- a/tests/libcore/jsr166/Android.bp
+++ b/tests/libcore/jsr166/Android.bp
@@ -30,6 +30,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     java_resources: [":libcore-expectations-knownfailures"],
diff --git a/tests/libcore/luni/Android.bp b/tests/libcore/luni/Android.bp
index b0fa8b6..50ea342 100644
--- a/tests/libcore/luni/Android.bp
+++ b/tests/libcore/luni/Android.bp
@@ -53,6 +53,7 @@
         "cts",
         "mts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     java_resources: [
diff --git a/tests/libcore/ojluni/Android.bp b/tests/libcore/ojluni/Android.bp
index 6232e47..a38a9b5 100644
--- a/tests/libcore/ojluni/Android.bp
+++ b/tests/libcore/ojluni/Android.bp
@@ -32,6 +32,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
 	"mts",
     ],
diff --git a/tests/libcore/okhttp/Android.bp b/tests/libcore/okhttp/Android.bp
index 00360f1..6dd2a3c 100644
--- a/tests/libcore/okhttp/Android.bp
+++ b/tests/libcore/okhttp/Android.bp
@@ -38,6 +38,7 @@
         "general-tests",
         "mts",
         "vts",
+        "vts10",
     ],
     java_resources: [":libcore-expectations-knownfailures"],
 }
diff --git a/tests/libcore/runner/Android.bp b/tests/libcore/runner/Android.bp
index 3edbe3f..02c99c4 100644
--- a/tests/libcore/runner/Android.bp
+++ b/tests/libcore/runner/Android.bp
@@ -27,6 +27,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
 	"mts",
     ],
diff --git a/tests/libcore/wycheproof-bc/Android.bp b/tests/libcore/wycheproof-bc/Android.bp
index f719b1a..f1adfbd 100644
--- a/tests/libcore/wycheproof-bc/Android.bp
+++ b/tests/libcore/wycheproof-bc/Android.bp
@@ -34,6 +34,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
     ],
     java_resources: [":libcore-expectations-knownfailures"],
 }
diff --git a/tests/libcore/wycheproof/Android.bp b/tests/libcore/wycheproof/Android.bp
index 3a9eb28..89a4135 100644
--- a/tests/libcore/wycheproof/Android.bp
+++ b/tests/libcore/wycheproof/Android.bp
@@ -34,6 +34,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     java_resources: [":libcore-expectations-knownfailures"],
diff --git a/tests/location/location_coarse/Android.bp b/tests/location/location_coarse/Android.bp
index 5730d2a..b644169 100644
--- a/tests/location/location_coarse/Android.bp
+++ b/tests/location/location_coarse/Android.bp
@@ -31,6 +31,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/location/location_fine/Android.bp b/tests/location/location_fine/Android.bp
index 2970bfb..aa81f86 100644
--- a/tests/location/location_fine/Android.bp
+++ b/tests/location/location_fine/Android.bp
@@ -31,6 +31,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/location/location_gnss/Android.bp b/tests/location/location_gnss/Android.bp
index 5208d51..522e4d6 100644
--- a/tests/location/location_gnss/Android.bp
+++ b/tests/location/location_gnss/Android.bp
@@ -61,6 +61,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/location/location_none/Android.bp b/tests/location/location_none/Android.bp
index 5c4a030..d6b73a6 100644
--- a/tests/location/location_none/Android.bp
+++ b/tests/location/location_none/Android.bp
@@ -31,6 +31,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/media/Android.bp b/tests/media/Android.bp
index adcf3de..a30a232 100644
--- a/tests/media/Android.bp
+++ b/tests/media/Android.bp
@@ -34,6 +34,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/mocking/Android.bp b/tests/mocking/Android.bp
index 4217e94..8f686b7 100644
--- a/tests/mocking/Android.bp
+++ b/tests/mocking/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/tests/mocking/debuggable/Android.bp b/tests/mocking/debuggable/Android.bp
index d06c820..6c49be4 100644
--- a/tests/mocking/debuggable/Android.bp
+++ b/tests/mocking/debuggable/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/tests/mocking/extended/Android.bp b/tests/mocking/extended/Android.bp
index c60f0a3..e573992 100644
--- a/tests/mocking/extended/Android.bp
+++ b/tests/mocking/extended/Android.bp
@@ -37,6 +37,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/tests/mocking/inline/Android.bp b/tests/mocking/inline/Android.bp
index e925ed3..e4dc7d7 100644
--- a/tests/mocking/inline/Android.bp
+++ b/tests/mocking/inline/Android.bp
@@ -32,6 +32,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/tests/netlegacy22.api/Android.mk b/tests/netlegacy22.api/Android.mk
index 1a063e7..f475bbe 100644
--- a/tests/netlegacy22.api/Android.mk
+++ b/tests/netlegacy22.api/Android.mk
@@ -30,6 +30,6 @@
 LOCAL_STATIC_JAVA_LIBRARIES := ctstestrunner-axt compatibility-device-util-axt
 
 # Tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 include $(BUILD_CTS_PACKAGE)
diff --git a/tests/netlegacy22.permission/Android.bp b/tests/netlegacy22.permission/Android.bp
index 78d4b0c..00c8264 100644
--- a/tests/netlegacy22.permission/Android.bp
+++ b/tests/netlegacy22.permission/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/netsecpolicy/Android.bp b/tests/netsecpolicy/Android.bp
index 1dbfe9f..7a78192 100644
--- a/tests/netsecpolicy/Android.bp
+++ b/tests/netsecpolicy/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
@@ -33,6 +34,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
@@ -47,6 +49,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/tests/openglperf2/Android.mk b/tests/openglperf2/Android.mk
index 9dcb3c0..7d777fa 100644
--- a/tests/openglperf2/Android.mk
+++ b/tests/openglperf2/Android.mk
@@ -30,7 +30,7 @@
 LOCAL_PACKAGE_NAME := CtsOpenGlPerf2TestCases
 
 # Tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 LOCAL_SDK_VERSION := 16
 #LOCAL_MIN_SDK_VERSION := 16
diff --git a/tests/pdf/Android.bp b/tests/pdf/Android.bp
index 1700e49..1e66653 100644
--- a/tests/pdf/Android.bp
+++ b/tests/pdf/Android.bp
@@ -30,6 +30,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/providerui/Android.bp b/tests/providerui/Android.bp
index 51a23ef..4b15852 100644
--- a/tests/providerui/Android.bp
+++ b/tests/providerui/Android.bp
@@ -31,6 +31,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/sample/Android.bp b/tests/sample/Android.bp
index 40a04b0..d735ad2 100644
--- a/tests/sample/Android.bp
+++ b/tests/sample/Android.bp
@@ -34,6 +34,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/sensor/Android.mk b/tests/sensor/Android.mk
index b9130fb..0c91004 100644
--- a/tests/sensor/Android.mk
+++ b/tests/sensor/Android.mk
@@ -73,7 +73,7 @@
 LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
 
 # Tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 # include both the 32 and 64 bit versions
 LOCAL_MULTILIB := both
diff --git a/tests/signature/api-check/android-test-base-28-api/Android.bp b/tests/signature/api-check/android-test-base-28-api/Android.bp
index 565aad3..7bd65ae 100644
--- a/tests/signature/api-check/android-test-base-28-api/Android.bp
+++ b/tests/signature/api-check/android-test-base-28-api/Android.bp
@@ -26,6 +26,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/signature/api-check/android-test-base-current-api/Android.bp b/tests/signature/api-check/android-test-base-current-api/Android.bp
index 8ddb74f..e5474d4 100644
--- a/tests/signature/api-check/android-test-base-current-api/Android.bp
+++ b/tests/signature/api-check/android-test-base-current-api/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/signature/api-check/android-test-mock-current-api/Android.bp b/tests/signature/api-check/android-test-mock-current-api/Android.bp
index e836409..56ad603 100644
--- a/tests/signature/api-check/android-test-mock-current-api/Android.bp
+++ b/tests/signature/api-check/android-test-mock-current-api/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/signature/api-check/android-test-runner-current-api/Android.bp b/tests/signature/api-check/android-test-runner-current-api/Android.bp
index 2a6dd7d..e899dcd 100644
--- a/tests/signature/api-check/android-test-runner-current-api/Android.bp
+++ b/tests/signature/api-check/android-test-runner-current-api/Android.bp
@@ -27,6 +27,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/signature/api-check/apache-http-legacy-27-api/Android.bp b/tests/signature/api-check/apache-http-legacy-27-api/Android.bp
index 0c53a34..04b5c56 100644
--- a/tests/signature/api-check/apache-http-legacy-27-api/Android.bp
+++ b/tests/signature/api-check/apache-http-legacy-27-api/Android.bp
@@ -27,6 +27,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/signature/api-check/apache-http-legacy-current-api/Android.bp b/tests/signature/api-check/apache-http-legacy-current-api/Android.bp
index e589ab3..2807b48 100644
--- a/tests/signature/api-check/apache-http-legacy-current-api/Android.bp
+++ b/tests/signature/api-check/apache-http-legacy-current-api/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/signature/api-check/apache-http-legacy-uses-library-api/Android.bp b/tests/signature/api-check/apache-http-legacy-uses-library-api/Android.bp
index 794a952..b48cef7 100644
--- a/tests/signature/api-check/apache-http-legacy-uses-library-api/Android.bp
+++ b/tests/signature/api-check/apache-http-legacy-uses-library-api/Android.bp
@@ -26,6 +26,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/signature/api-check/build_signature_apk.mk b/tests/signature/api-check/build_signature_apk.mk
index 98ff55f..57abb61 100644
--- a/tests/signature/api-check/build_signature_apk.mk
+++ b/tests/signature/api-check/build_signature_apk.mk
@@ -24,7 +24,7 @@
 LOCAL_MODULE_TAGS := tests
 
 # Tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 LOCAL_SDK_VERSION := current
 
diff --git a/tests/signature/api-check/current-api/Android.bp b/tests/signature/api-check/current-api/Android.bp
index 1ca5d11..e7fcdd7 100644
--- a/tests/signature/api-check/current-api/Android.bp
+++ b/tests/signature/api-check/current-api/Android.bp
@@ -28,6 +28,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/signature/api-check/hidden-api-blacklist-27-api/Android.bp b/tests/signature/api-check/hidden-api-blacklist-27-api/Android.bp
index 7750b14..32c8736 100644
--- a/tests/signature/api-check/hidden-api-blacklist-27-api/Android.bp
+++ b/tests/signature/api-check/hidden-api-blacklist-27-api/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/signature/api-check/hidden-api-blacklist-28-api/Android.bp b/tests/signature/api-check/hidden-api-blacklist-28-api/Android.bp
index 44ec9ba..d6e1816 100644
--- a/tests/signature/api-check/hidden-api-blacklist-28-api/Android.bp
+++ b/tests/signature/api-check/hidden-api-blacklist-28-api/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/signature/api-check/hidden-api-blacklist-current-api/Android.bp b/tests/signature/api-check/hidden-api-blacklist-current-api/Android.bp
index ea419f2..12ea9a0 100644
--- a/tests/signature/api-check/hidden-api-blacklist-current-api/Android.bp
+++ b/tests/signature/api-check/hidden-api-blacklist-current-api/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/signature/api-check/hidden-api-blacklist-debug-class/Android.bp b/tests/signature/api-check/hidden-api-blacklist-debug-class/Android.bp
index 150ba8c..83e47c5 100644
--- a/tests/signature/api-check/hidden-api-blacklist-debug-class/Android.bp
+++ b/tests/signature/api-check/hidden-api-blacklist-debug-class/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/signature/api-check/hidden-api-blacklist-test-api/Android.bp b/tests/signature/api-check/hidden-api-blacklist-test-api/Android.bp
index 9678136..4514ffa 100644
--- a/tests/signature/api-check/hidden-api-blacklist-test-api/Android.bp
+++ b/tests/signature/api-check/hidden-api-blacklist-test-api/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/signature/api-check/hidden-api-killswitch-debug-class/Android.bp b/tests/signature/api-check/hidden-api-killswitch-debug-class/Android.bp
index cb86794..9c4aac0 100644
--- a/tests/signature/api-check/hidden-api-killswitch-debug-class/Android.bp
+++ b/tests/signature/api-check/hidden-api-killswitch-debug-class/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/signature/api-check/hidden-api-killswitch-whitelist/Android.bp b/tests/signature/api-check/hidden-api-killswitch-whitelist/Android.bp
index 2c1e8f4..be61554 100644
--- a/tests/signature/api-check/hidden-api-killswitch-whitelist/Android.bp
+++ b/tests/signature/api-check/hidden-api-killswitch-whitelist/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/signature/api-check/hidden-api-killswitch-wildcard/Android.bp b/tests/signature/api-check/hidden-api-killswitch-wildcard/Android.bp
index 785199e..e4f434a 100644
--- a/tests/signature/api-check/hidden-api-killswitch-wildcard/Android.bp
+++ b/tests/signature/api-check/hidden-api-killswitch-wildcard/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/signature/api-check/system-annotation/Android.bp b/tests/signature/api-check/system-annotation/Android.bp
index b423593..6a75162 100644
--- a/tests/signature/api-check/system-annotation/Android.bp
+++ b/tests/signature/api-check/system-annotation/Android.bp
@@ -32,6 +32,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/signature/api-check/system-api/Android.mk b/tests/signature/api-check/system-api/Android.mk
index 7605f85..54cbfd5 100644
--- a/tests/signature/api-check/system-api/Android.mk
+++ b/tests/signature/api-check/system-api/Android.mk
@@ -27,7 +27,7 @@
 LOCAL_MODULE_STEM := system-all.txt.zip
 LOCAL_MODULE_CLASS := ETC
 LOCAL_MODULE_PATH = $(TARGET_OUT_DATA_ETC)
-LOCAL_COMPATIBILITY_SUITE := arcts cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := arcts cts vts vts10 general-tests
 include $(BUILD_SYSTEM)/base_rules.mk
 $(LOCAL_BUILT_MODULE): $(SOONG_ZIP)
 $(LOCAL_BUILT_MODULE): PRIVATE_SYSTEM_API_FILES := $(all_system_api_files)
diff --git a/tests/signature/api/Android.mk b/tests/signature/api/Android.mk
index 6e7f13c..dc3be71 100644
--- a/tests/signature/api/Android.mk
+++ b/tests/signature/api/Android.mk
@@ -23,7 +23,7 @@
 LOCAL_MODULE := cts-$(subst .,-,$(1))
 LOCAL_MODULE_STEM := $(1)
 LOCAL_MODULE_CLASS := ETC
-LOCAL_COMPATIBILITY_SUITE := arcts cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := arcts cts vts vts10 general-tests
 include $(BUILD_SYSTEM)/base_rules.mk
 $$(LOCAL_BUILT_MODULE): $(2) | $(APICHECK)
 	@echo "Copying API file $$< -> $$@"
diff --git a/tests/signature/intent-check/Android.bp b/tests/signature/intent-check/Android.bp
index 299e2b7..4d9beda9 100644
--- a/tests/signature/intent-check/Android.bp
+++ b/tests/signature/intent-check/Android.bp
@@ -27,6 +27,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 
diff --git a/tests/simplecpu/Android.mk b/tests/simplecpu/Android.mk
index e6713d4..08d12f1 100644
--- a/tests/simplecpu/Android.mk
+++ b/tests/simplecpu/Android.mk
@@ -30,7 +30,7 @@
 LOCAL_PACKAGE_NAME := CtsSimpleCpuTestCases
 
 # Tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 LOCAL_SDK_VERSION := 16
 
diff --git a/tests/suspendapps/permission/Android.bp b/tests/suspendapps/permission/Android.bp
index b7ce222..cf35e63 100644
--- a/tests/suspendapps/permission/Android.bp
+++ b/tests/suspendapps/permission/Android.bp
@@ -30,6 +30,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/suspendapps/test-apps/SuspendTestApp/Android.bp b/tests/suspendapps/test-apps/SuspendTestApp/Android.bp
index c6b3016..4796d02 100644
--- a/tests/suspendapps/test-apps/SuspendTestApp/Android.bp
+++ b/tests/suspendapps/test-apps/SuspendTestApp/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -44,6 +45,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 
diff --git a/tests/suspendapps/test-apps/TestDeviceAdmin/Android.bp b/tests/suspendapps/test-apps/TestDeviceAdmin/Android.bp
index 36fcc32..1f923a3 100644
--- a/tests/suspendapps/test-apps/TestDeviceAdmin/Android.bp
+++ b/tests/suspendapps/test-apps/TestDeviceAdmin/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/suspendapps/tests/Android.bp b/tests/suspendapps/tests/Android.bp
index 15a239e..dbdf143 100644
--- a/tests/suspendapps/tests/Android.bp
+++ b/tests/suspendapps/tests/Android.bp
@@ -32,6 +32,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/accounts/Android.bp b/tests/tests/accounts/Android.bp
index eb8772b..39a0f7c 100644
--- a/tests/tests/accounts/Android.bp
+++ b/tests/tests/accounts/Android.bp
@@ -32,6 +32,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/accounts/CtsUnaffiliatedAccountAuthenticators/Android.bp b/tests/tests/accounts/CtsUnaffiliatedAccountAuthenticators/Android.bp
index 707d214..74d99db 100644
--- a/tests/tests/accounts/CtsUnaffiliatedAccountAuthenticators/Android.bp
+++ b/tests/tests/accounts/CtsUnaffiliatedAccountAuthenticators/Android.bp
@@ -27,6 +27,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     certificate: ":cts-testkey2",
diff --git a/tests/tests/animation/Android.bp b/tests/tests/animation/Android.bp
index 20bffd4..28957bb 100644
--- a/tests/tests/animation/Android.bp
+++ b/tests/tests/animation/Android.bp
@@ -32,6 +32,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 
diff --git a/tests/tests/app.usage/Android.bp b/tests/tests/app.usage/Android.bp
index a75225d..030c272 100644
--- a/tests/tests/app.usage/Android.bp
+++ b/tests/tests/app.usage/Android.bp
@@ -33,6 +33,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/app.usage/TestApp1/Android.bp b/tests/tests/app.usage/TestApp1/Android.bp
index 1f866b7..061f496 100644
--- a/tests/tests/app.usage/TestApp1/Android.bp
+++ b/tests/tests/app.usage/TestApp1/Android.bp
@@ -33,6 +33,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/app/Android.bp b/tests/tests/app/Android.bp
index 122dc6b..dfaf0a0 100644
--- a/tests/tests/app/Android.bp
+++ b/tests/tests/app/Android.bp
@@ -30,6 +30,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/appcomponentfactory/Android.bp b/tests/tests/appcomponentfactory/Android.bp
index b746d68..f5f1260 100644
--- a/tests/tests/appcomponentfactory/Android.bp
+++ b/tests/tests/appcomponentfactory/Android.bp
@@ -30,6 +30,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/appenumeration/Android.bp b/tests/tests/appenumeration/Android.bp
index 3bb83dc..f9def9c 100644
--- a/tests/tests/appenumeration/Android.bp
+++ b/tests/tests/appenumeration/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     static_libs: [
diff --git a/tests/tests/appenumeration/AndroidTest.xml b/tests/tests/appenumeration/AndroidTest.xml
index 8db021f..85f1477 100644
--- a/tests/tests/appenumeration/AndroidTest.xml
+++ b/tests/tests/appenumeration/AndroidTest.xml
@@ -29,6 +29,10 @@
         <option name="test-file-name" value="CtsAppEnumerationForceQueryable.apk" />
         <option name="test-file-name" value="CtsAppEnumerationFilters.apk" />
         <option name="test-file-name" value="CtsAppEnumerationNoApi.apk" />
+        <option name="test-file-name" value="CtsAppEnumerationContactsActivityTarget.apk" />
+        <option name="test-file-name" value="CtsAppEnumerationDocumentsActivityTarget.apk" />
+        <option name="test-file-name" value="CtsAppEnumerationShareActivityTarget.apk" />
+        <option name="test-file-name" value="CtsAppEnumerationWebActivityTarget.apk" />
         <option name="test-file-name" value="CtsAppEnumerationSharedUidSource.apk" />
         <option name="test-file-name" value="CtsAppEnumerationSharedUidTarget.apk" />
         <option name="test-file-name" value="CtsAppEnumerationQueriesNothing.apk" />
@@ -42,6 +46,11 @@
         <option name="test-file-name" value="CtsAppEnumerationQueriesPackage.apk" />
         <option name="test-file-name" value="CtsAppEnumerationQueriesNothingTargetsQ.apk" />
         <option name="test-file-name" value="CtsAppEnumerationQueriesNothingHasPermission.apk" />
+        <option name="test-file-name" value="CtsAppEnumerationWildcardBrowsableActivitySource.apk" />
+        <option name="test-file-name" value="CtsAppEnumerationWildcardContactsActivitySource.apk" />
+        <option name="test-file-name" value="CtsAppEnumerationWildcardDocumentEditorActivitySource.apk" />
+        <option name="test-file-name" value="CtsAppEnumerationWildcardShareActivitySource.apk" />
+        <option name="test-file-name" value="CtsAppEnumerationWildcardWebActivitySource.apk" />
     </target_preparer>
     <test class="com.android.tradefed.testtype.AndroidJUnitTest" >
         <option name="package" value="android.appenumeration.cts" />
diff --git a/tests/tests/appenumeration/app/source/Android.bp b/tests/tests/appenumeration/app/source/Android.bp
index f215e77..2e2e26b 100644
--- a/tests/tests/appenumeration/app/source/Android.bp
+++ b/tests/tests/appenumeration/app/source/Android.bp
@@ -27,6 +27,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -39,6 +40,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -51,6 +53,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -63,6 +66,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -75,6 +79,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -87,6 +92,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -99,6 +105,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -111,6 +118,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -123,6 +131,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -135,6 +144,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -147,6 +157,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -159,6 +170,66 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
+        "general-tests",
+    ],
+}
+android_test_helper_app {
+    name: "CtsAppEnumerationWildcardBrowsableActivitySource",
+    manifest: "AndroidManifest-queriesWildcard-browsableActivity.xml",
+    defaults: ["CtsAppEnumerationQueriesDefaults"],
+    // Tag this module as a cts test artifact
+    test_suites: [
+        "cts",
+        "vts",
+        "general-tests",
+    ],
+}
+
+android_test_helper_app {
+    name: "CtsAppEnumerationWildcardContactsActivitySource",
+    manifest: "AndroidManifest-queriesWildcard-contactsActivity.xml",
+    defaults: ["CtsAppEnumerationQueriesDefaults"],
+    // Tag this module as a cts test artifact
+    test_suites: [
+        "cts",
+        "vts",
+        "general-tests",
+    ],
+}
+
+android_test_helper_app {
+    name: "CtsAppEnumerationWildcardDocumentEditorActivitySource",
+    manifest: "AndroidManifest-queriesWildcard-documentEditorActivity.xml",
+    defaults: ["CtsAppEnumerationQueriesDefaults"],
+    // Tag this module as a cts test artifact
+    test_suites: [
+        "cts",
+        "vts",
+        "general-tests",
+    ],
+}
+
+android_test_helper_app {
+    name: "CtsAppEnumerationWildcardShareActivitySource",
+    manifest: "AndroidManifest-queriesWildcard-shareActivity.xml",
+    defaults: ["CtsAppEnumerationQueriesDefaults"],
+    // Tag this module as a cts test artifact
+    test_suites: [
+        "cts",
+        "vts",
+        "general-tests",
+    ],
+}
+
+android_test_helper_app {
+    name: "CtsAppEnumerationWildcardWebActivitySource",
+    manifest: "AndroidManifest-queriesWildcard-webActivity.xml",
+    defaults: ["CtsAppEnumerationQueriesDefaults"],
+    // Tag this module as a cts test artifact
+    test_suites: [
+        "cts",
+        "vts",
         "general-tests",
     ],
 }
\ No newline at end of file
diff --git a/tests/tests/appenumeration/app/source/AndroidManifest-queriesWildcard-browsableActivity.xml b/tests/tests/appenumeration/app/source/AndroidManifest-queriesWildcard-browsableActivity.xml
new file mode 100644
index 0000000..8cf6bfe
--- /dev/null
+++ b/tests/tests/appenumeration/app/source/AndroidManifest-queriesWildcard-browsableActivity.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="android.appenumeration.queries.wildcard.browsable">
+
+    <queries>
+        <intent>
+            <action android:name="*" />
+            <category android:name="android.intent.category.BROWSABLE" />
+            <data android:scheme="*" android:host="*" />
+        </intent>
+    </queries>
+
+    <application>
+        <uses-library android:name="android.test.runner" />
+        <activity android:name="android.appenumeration.cts.query.TestActivity"
+                  android:exported="true" />
+    </application>
+</manifest>
diff --git a/tests/tests/appenumeration/app/source/AndroidManifest-queriesWildcard-contactsActivity.xml b/tests/tests/appenumeration/app/source/AndroidManifest-queriesWildcard-contactsActivity.xml
new file mode 100644
index 0000000..a51d7f4
--- /dev/null
+++ b/tests/tests/appenumeration/app/source/AndroidManifest-queriesWildcard-contactsActivity.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="android.appenumeration.queries.wildcard.contacts">
+
+    <queries>
+        <intent>
+            <action android:name="android.intent.action.VIEW" />
+            <data android:scheme="content"
+                  android:host="com.android.contacts"
+                  android:mimeType="vnd.android.cursor.item/*" />
+        </intent>
+    </queries>
+
+    <application>
+        <uses-library android:name="android.test.runner" />
+        <activity android:name="android.appenumeration.cts.query.TestActivity"
+                  android:exported="true" />
+    </application>
+</manifest>
diff --git a/tests/tests/appenumeration/app/source/AndroidManifest-queriesWildcard-documentEditorActivity.xml b/tests/tests/appenumeration/app/source/AndroidManifest-queriesWildcard-documentEditorActivity.xml
new file mode 100644
index 0000000..1bfa17e
--- /dev/null
+++ b/tests/tests/appenumeration/app/source/AndroidManifest-queriesWildcard-documentEditorActivity.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="android.appenumeration.queries.wildcard.editor">
+
+    <queries>
+        <intent>
+            <action android:name="android.intent.action.VIEW" />
+            <category android:name="android.intent.category.DEFAULT" />
+            <data android:mimeType="*/*" />
+        </intent>
+    </queries>
+
+    <application>
+        <uses-library android:name="android.test.runner" />
+        <activity android:name="android.appenumeration.cts.query.TestActivity"
+                  android:exported="true" />
+    </application>
+</manifest>
diff --git a/tests/tests/appenumeration/app/source/AndroidManifest-queriesWildcard-shareActivity.xml b/tests/tests/appenumeration/app/source/AndroidManifest-queriesWildcard-shareActivity.xml
new file mode 100644
index 0000000..57efc78
--- /dev/null
+++ b/tests/tests/appenumeration/app/source/AndroidManifest-queriesWildcard-shareActivity.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="android.appenumeration.queries.wildcard.share">
+
+    <queries>
+        <intent>
+            <action android:name="android.intent.action.SEND" />
+            <data android:mimeType="image/jpeg" />
+        </intent>
+    </queries>
+
+    <application>
+        <uses-library android:name="android.test.runner" />
+        <activity android:name="android.appenumeration.cts.query.TestActivity"
+                  android:exported="true" />
+    </application>
+</manifest>
diff --git a/tests/tests/appenumeration/app/source/AndroidManifest-queriesWildcard-webActivity.xml b/tests/tests/appenumeration/app/source/AndroidManifest-queriesWildcard-webActivity.xml
new file mode 100644
index 0000000..3355c35
--- /dev/null
+++ b/tests/tests/appenumeration/app/source/AndroidManifest-queriesWildcard-webActivity.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="android.appenumeration.queries.wildcard.web">
+
+    <queries>
+        <intent>
+            <action android:name="android.intent.action.VIEW" />
+            <category android:name="android.intent.category.BROWSABLE" />
+            <data android:scheme="http" android:host="*"/>
+        </intent>
+        <intent>
+            <action android:name="android.intent.action.VIEW" />
+            <category android:name="android.intent.category.BROWSABLE" />
+            <data android:scheme="https" android:host="*"/>
+        </intent>
+    </queries>
+
+    <application>
+        <uses-library android:name="android.test.runner" />
+        <activity android:name="android.appenumeration.cts.query.TestActivity"
+                  android:exported="true" />
+    </application>
+</manifest>
diff --git a/tests/tests/appenumeration/app/target/Android.bp b/tests/tests/appenumeration/app/target/Android.bp
index 54f6662..efc9ca8 100644
--- a/tests/tests/appenumeration/app/target/Android.bp
+++ b/tests/tests/appenumeration/app/target/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
@@ -35,6 +36,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
@@ -49,6 +51,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
@@ -63,7 +66,64 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
-}
\ No newline at end of file
+}
+
+android_test_helper_app {
+    name: "CtsAppEnumerationContactsActivityTarget",
+    manifest: "AndroidManifest-contactsActivity.xml",
+    defaults: ["cts_support_defaults"],
+    srcs: ["src/**/*.java"],
+    // Tag this module as a cts test artifact
+    test_suites: [
+        "cts",
+        "vts",
+        "general-tests",
+    ],
+    sdk_version: "test_current",
+}
+
+android_test_helper_app {
+    name: "CtsAppEnumerationDocumentsActivityTarget",
+    manifest: "AndroidManifest-documentEditorActivity.xml",
+    defaults: ["cts_support_defaults"],
+    srcs: ["src/**/*.java"],
+    // Tag this module as a cts test artifact
+    test_suites: [
+        "cts",
+        "vts",
+        "general-tests",
+    ],
+    sdk_version: "test_current",
+}
+
+android_test_helper_app {
+    name: "CtsAppEnumerationShareActivityTarget",
+    manifest: "AndroidManifest-shareActivity.xml",
+    defaults: ["cts_support_defaults"],
+    srcs: ["src/**/*.java"],
+    // Tag this module as a cts test artifact
+    test_suites: [
+        "cts",
+        "vts",
+        "general-tests",
+    ],
+    sdk_version: "test_current",
+}
+
+android_test_helper_app {
+    name: "CtsAppEnumerationWebActivityTarget",
+    manifest: "AndroidManifest-webActivity.xml",
+    defaults: ["cts_support_defaults"],
+    srcs: ["src/**/*.java"],
+    // Tag this module as a cts test artifact
+    test_suites: [
+        "cts",
+        "vts",
+        "general-tests",
+    ],
+    sdk_version: "test_current",
+}
diff --git a/tests/tests/appenumeration/app/target/AndroidManifest-contactsActivity.xml b/tests/tests/appenumeration/app/target/AndroidManifest-contactsActivity.xml
new file mode 100644
index 0000000..e31d018
--- /dev/null
+++ b/tests/tests/appenumeration/app/target/AndroidManifest-contactsActivity.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="android.appenumeration.contacts.activity">
+    <application>
+        <uses-library android:name="android.test.runner" />
+        <activity android:name="android.appenumeration.ContactsActivity"
+                  android:exported="true">
+            <intent-filter>
+                <action android:name="android.intent.action.VIEW"/>
+                <category android:name="android.intent.category.DEFAULT"/>
+                <data android:scheme="content"/>
+                <data android:host="com.android.contacts"/>
+                <data android:mimeType="vnd.android.cursor.item/vnd.android.appenumeration.contacts"/>
+            </intent-filter>
+        </activity>
+    </application>
+</manifest>
diff --git a/tests/tests/appenumeration/app/target/AndroidManifest-documentEditorActivity.xml b/tests/tests/appenumeration/app/target/AndroidManifest-documentEditorActivity.xml
new file mode 100644
index 0000000..445f90b
--- /dev/null
+++ b/tests/tests/appenumeration/app/target/AndroidManifest-documentEditorActivity.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="android.appenumeration.editor.activity">
+    <application>
+        <uses-library android:name="android.test.runner" />
+        <activity android:name="android.appenumeration.EditorActivity">
+            <intent-filter>
+                <action android:name="android.intent.action.VIEW"/>
+                <action android:name="android.intent.action.EDIT"/>
+                <category android:name="android.intent.category.DEFAULT"/>
+                <data android:mimeType="application/vnd.oasis.opendocument.text"/>
+                <data android:mimeType="application/rtf"/>
+                <data android:mimeType="text/rtf"/>
+                <data android:mimeType="text/plain"/>
+                <data android:mimeType="application/pdf"/>
+                <data android:mimeType="application/x-pdf"/>
+            </intent-filter>
+        </activity>
+
+    </application>
+</manifest>
diff --git a/tests/tests/appenumeration/app/target/AndroidManifest-filters.xml b/tests/tests/appenumeration/app/target/AndroidManifest-filters.xml
index 82e356f..5a91ba1 100644
--- a/tests/tests/appenumeration/app/target/AndroidManifest-filters.xml
+++ b/tests/tests/appenumeration/app/target/AndroidManifest-filters.xml
@@ -19,7 +19,10 @@
     package="android.appenumeration.filters">
     <application>
         <uses-library android:name="android.test.runner" />
-        <activity android:name="android.appenumeration.testapp.DummyActivity">
+        <activity android:name="android.appenumeration.testapp.DummyActivity"
+                  android:visibleToInstantApps="true">
+            <!-- Marked visible to instant apps to ensure this logic doesn't conflict with non
+                 instant filtering -->
             <intent-filter>
                 <action android:name="android.appenumeration.action.ACTIVITY" />
                 <category android:name="android.intent.category.DEFAULT" />
diff --git a/tests/tests/appenumeration/app/target/AndroidManifest-shareActivity.xml b/tests/tests/appenumeration/app/target/AndroidManifest-shareActivity.xml
new file mode 100644
index 0000000..87f621a
--- /dev/null
+++ b/tests/tests/appenumeration/app/target/AndroidManifest-shareActivity.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="android.appenumeration.share.activity">
+    <application>
+        <uses-library android:name="android.test.runner" />
+        <activity android:name="android.appenumeration.ShareActivity">
+            <intent-filter>
+                <action android:name="android.intent.action.SEND"/>
+                <category android:name="android.intent.category.DEFAULT"/>
+                <data android:mimeType="*/*"/>
+            </intent-filter>
+        </activity>
+    </application>
+</manifest>
diff --git a/tests/tests/appenumeration/app/target/AndroidManifest-webActivity.xml b/tests/tests/appenumeration/app/target/AndroidManifest-webActivity.xml
new file mode 100644
index 0000000..e198ea5
--- /dev/null
+++ b/tests/tests/appenumeration/app/target/AndroidManifest-webActivity.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="android.appenumeration.web.activity">
+    <application>
+        <uses-library android:name="android.test.runner" />
+        <activity android:name="android.appenumeration.WebActivity">
+            <intent-filter>
+                <action android:name="android.intent.action.VIEW"/>
+                <category android:name="android.intent.category.BROWSABLE"/>
+                <category android:name="android.intent.category.DEFAULT"/>
+                <data android:scheme="http" android:host="appenumeration.android"/>
+                <data android:scheme="https" android:host="appenumeration.android"/>
+            </intent-filter>
+        </activity>
+    </application>
+</manifest>
diff --git a/tests/tests/appenumeration/lib/src/android/appenumeration/cts/Constants.java b/tests/tests/appenumeration/lib/src/android/appenumeration/cts/Constants.java
index 1afcc65..a189ce3 100644
--- a/tests/tests/appenumeration/lib/src/android/appenumeration/cts/Constants.java
+++ b/tests/tests/appenumeration/lib/src/android/appenumeration/cts/Constants.java
@@ -46,6 +46,17 @@
     public static final String QUERIES_NOTHING_SHARED_USER = PKG_BASE + "queries.nothing.shareduid";
     /** A package that queries via wildcard action. */
     public static final String QUERIES_WILDCARD_ACTION = PKG_BASE + "queries.wildcard.action";
+    /** A package that queries for all BROWSABLE intents. */
+    public static final String QUERIES_WILDCARD_BROWSABLE = PKG_BASE + "queries.wildcard.browsable";
+    /** A package that queries for all profile / contact targets. */
+    public static final String QUERIES_WILDCARD_CONTACTS = PKG_BASE + "queries.wildcard.contacts";
+    /** A package that queries for document viewer / editor targets. */
+    public static final String QUERIES_WILDCARD_EDITOR = PKG_BASE + "queries.wildcard.editor";
+    /** A package that queries for all jpeg share targets. */
+    public static final String QUERIES_WILDCARD_SHARE = PKG_BASE + "queries.wildcard.share";
+    /** A package that queries for all web intent browsable targets. */
+    public static final String QUERIES_WILDCARD_WEB = PKG_BASE + "queries.wildcard.web";
+
     /** A package that queries for {@link #TARGET_NO_API} package */
     public static final String TARGET_SHARED_USER = PKG_BASE + "noapi.shareduid";
     /** A package that exposes itself via various intent filters (activities, services, etc.) */
@@ -54,8 +65,16 @@
     public static final String TARGET_FORCEQUERYABLE = PKG_BASE + "forcequeryable";
     /** A package with no published API and so isn't queryable by anything but package name */
     public static final String TARGET_NO_API = PKG_BASE + "noapi";
+    /** A package that offers an activity used for opening / editing file types */
+    public static final String TARGET_EDITOR = PKG_BASE + "editor.activity";
+    /** A package that offers an activity used viewing a contact / profile */
+    public static final String TARGET_CONTACTS = PKG_BASE + "contacts.activity";
+    /** A package that offers an content sharing activity */
+    public static final String TARGET_SHARE = PKG_BASE + "share.activity";
+    /** A package that offers an activity that handles browsable web intents for a specific host */
+    public static final String TARGET_WEB = PKG_BASE + "web.activity";
 
-    public static final String[] ALL_QUERIES_TARGETING_Q_PACKAGES = {
+    public static final String[] ALL_QUERIES_TARGETING_R_PACKAGES = {
             QUERIES_NOTHING,
             QUERIES_NOTHING_PERM,
             QUERIES_ACTIVITY_ACTION,
@@ -66,7 +85,12 @@
             QUERIES_UNEXPORTED_PROVIDER_AUTH,
             QUERIES_PACKAGE,
             QUERIES_NOTHING_SHARED_USER,
-            QUERIES_WILDCARD_ACTION
+            QUERIES_WILDCARD_ACTION,
+            QUERIES_WILDCARD_BROWSABLE,
+            QUERIES_WILDCARD_CONTACTS,
+            QUERIES_WILDCARD_EDITOR,
+            QUERIES_WILDCARD_SHARE,
+            QUERIES_WILDCARD_WEB,
     };
 
     public static final String ACTIVITY_CLASS_TEST = PKG_BASE + "cts.query.TestActivity";
diff --git a/tests/tests/appenumeration/src/android/appenumeration/cts/AppEnumerationTests.java b/tests/tests/appenumeration/src/android/appenumeration/cts/AppEnumerationTests.java
index 3f624ee..4fa2bd4 100644
--- a/tests/tests/appenumeration/src/android/appenumeration/cts/AppEnumerationTests.java
+++ b/tests/tests/appenumeration/src/android/appenumeration/cts/AppEnumerationTests.java
@@ -28,7 +28,7 @@
 import static android.appenumeration.cts.Constants.ACTION_START_FOR_RESULT;
 import static android.appenumeration.cts.Constants.ACTIVITY_CLASS_DUMMY_ACTIVITY;
 import static android.appenumeration.cts.Constants.ACTIVITY_CLASS_TEST;
-import static android.appenumeration.cts.Constants.ALL_QUERIES_TARGETING_Q_PACKAGES;
+import static android.appenumeration.cts.Constants.ALL_QUERIES_TARGETING_R_PACKAGES;
 import static android.appenumeration.cts.Constants.EXTRA_ERROR;
 import static android.appenumeration.cts.Constants.EXTRA_FLAGS;
 import static android.appenumeration.cts.Constants.EXTRA_REMOTE_CALLBACK;
@@ -44,10 +44,19 @@
 import static android.appenumeration.cts.Constants.QUERIES_UNEXPORTED_PROVIDER_AUTH;
 import static android.appenumeration.cts.Constants.QUERIES_UNEXPORTED_SERVICE_ACTION;
 import static android.appenumeration.cts.Constants.QUERIES_WILDCARD_ACTION;
+import static android.appenumeration.cts.Constants.QUERIES_WILDCARD_BROWSABLE;
+import static android.appenumeration.cts.Constants.QUERIES_WILDCARD_CONTACTS;
+import static android.appenumeration.cts.Constants.QUERIES_WILDCARD_EDITOR;
+import static android.appenumeration.cts.Constants.QUERIES_WILDCARD_SHARE;
+import static android.appenumeration.cts.Constants.QUERIES_WILDCARD_WEB;
+import static android.appenumeration.cts.Constants.TARGET_CONTACTS;
+import static android.appenumeration.cts.Constants.TARGET_EDITOR;
 import static android.appenumeration.cts.Constants.TARGET_FILTERS;
 import static android.appenumeration.cts.Constants.TARGET_FORCEQUERYABLE;
 import static android.appenumeration.cts.Constants.TARGET_NO_API;
+import static android.appenumeration.cts.Constants.TARGET_SHARE;
 import static android.appenumeration.cts.Constants.TARGET_SHARED_USER;
+import static android.appenumeration.cts.Constants.TARGET_WEB;
 import static android.content.pm.PackageManager.MATCH_SYSTEM_ONLY;
 
 import static org.hamcrest.Matchers.greaterThan;
@@ -326,6 +335,31 @@
         assertVisible(QUERIES_PACKAGE, QUERIES_NOTHING_SHARED_USER);
     }
 
+    @Test
+    public void queriesWildcardContacts() throws Exception {
+        assertNotVisible(QUERIES_NOTHING, TARGET_CONTACTS);
+        assertVisible(QUERIES_WILDCARD_CONTACTS, TARGET_CONTACTS);
+    }
+
+    @Test
+    public void queriesWildcardWeb() throws Exception {
+        assertNotVisible(QUERIES_NOTHING, TARGET_WEB);
+        assertVisible(QUERIES_WILDCARD_BROWSABLE, TARGET_WEB);
+        assertVisible(QUERIES_WILDCARD_WEB, TARGET_WEB);
+    }
+
+    @Test
+    public void queriesWildcardEditor() throws Exception {
+        assertNotVisible(QUERIES_NOTHING, TARGET_EDITOR);
+        assertVisible(QUERIES_WILDCARD_EDITOR, TARGET_EDITOR);
+    }
+
+    @Test
+    public void queriesWildcardShareSheet() throws Exception {
+        assertNotVisible(QUERIES_NOTHING, TARGET_SHARE);
+        assertVisible(QUERIES_WILDCARD_SHARE, TARGET_SHARE);
+    }
+
     private void assertVisible(String sourcePackageName, String targetPackageName)
             throws Exception {
         if (!sGlobalFeatureEnabled) return;
@@ -335,7 +369,7 @@
 
 
     private void setFeatureEnabledForAll(Boolean enabled) {
-        for (String pkgName : ALL_QUERIES_TARGETING_Q_PACKAGES) {
+        for (String pkgName : ALL_QUERIES_TARGETING_R_PACKAGES) {
             setFeatureEnabledForAll(pkgName, enabled);
         }
         setFeatureEnabledForAll(QUERIES_NOTHING_Q, enabled == null ? null : false);
diff --git a/tests/tests/appop/Android.bp b/tests/tests/appop/Android.bp
index 268d883..1b7f0e7 100644
--- a/tests/tests/appop/Android.bp
+++ b/tests/tests/appop/Android.bp
@@ -90,6 +90,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/appop/AppThatCanBeForcedIntoForegroundStates/Android.bp b/tests/tests/appop/AppThatCanBeForcedIntoForegroundStates/Android.bp
index 9c1fc5f..20c7111 100644
--- a/tests/tests/appop/AppThatCanBeForcedIntoForegroundStates/Android.bp
+++ b/tests/tests/appop/AppThatCanBeForcedIntoForegroundStates/Android.bp
@@ -24,6 +24,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ]
 }
\ No newline at end of file
diff --git a/tests/tests/appop/AppThatUsesAppOps/Android.bp b/tests/tests/appop/AppThatUsesAppOps/Android.bp
index 31f4a95..9e7ff50 100644
--- a/tests/tests/appop/AppThatUsesAppOps/Android.bp
+++ b/tests/tests/appop/AppThatUsesAppOps/Android.bp
@@ -58,6 +58,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ]
 }
\ No newline at end of file
diff --git a/tests/tests/appop/AppToBlame1/Android.bp b/tests/tests/appop/AppToBlame1/Android.bp
index 1ed124c..d4c4987 100644
--- a/tests/tests/appop/AppToBlame1/Android.bp
+++ b/tests/tests/appop/AppToBlame1/Android.bp
@@ -18,6 +18,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ]
 }
\ No newline at end of file
diff --git a/tests/tests/appop/AppToBlame2/Android.bp b/tests/tests/appop/AppToBlame2/Android.bp
index 7467662..10d3820 100644
--- a/tests/tests/appop/AppToBlame2/Android.bp
+++ b/tests/tests/appop/AppToBlame2/Android.bp
@@ -18,6 +18,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ]
 }
\ No newline at end of file
diff --git a/tests/tests/appop/AppToCollect/Android.bp b/tests/tests/appop/AppToCollect/Android.bp
index 1e90444..f600027 100644
--- a/tests/tests/appop/AppToCollect/Android.bp
+++ b/tests/tests/appop/AppToCollect/Android.bp
@@ -18,6 +18,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ]
 }
\ No newline at end of file
diff --git a/tests/tests/appop/AppWithAttributionInheritingFromExisting/Android.bp b/tests/tests/appop/AppWithAttributionInheritingFromExisting/Android.bp
index 2b07c3b..fd53e32 100644
--- a/tests/tests/appop/AppWithAttributionInheritingFromExisting/Android.bp
+++ b/tests/tests/appop/AppWithAttributionInheritingFromExisting/Android.bp
@@ -18,6 +18,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ]
 }
\ No newline at end of file
diff --git a/tests/tests/appop/AppWithAttributionInheritingFromSameAsOther/Android.bp b/tests/tests/appop/AppWithAttributionInheritingFromSameAsOther/Android.bp
index 7de79e5..3aa1358 100644
--- a/tests/tests/appop/AppWithAttributionInheritingFromSameAsOther/Android.bp
+++ b/tests/tests/appop/AppWithAttributionInheritingFromSameAsOther/Android.bp
@@ -18,6 +18,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ]
 }
\ No newline at end of file
diff --git a/tests/tests/appop/AppWithAttributionInheritingFromSelf/Android.bp b/tests/tests/appop/AppWithAttributionInheritingFromSelf/Android.bp
index 4a6e524..765075b 100644
--- a/tests/tests/appop/AppWithAttributionInheritingFromSelf/Android.bp
+++ b/tests/tests/appop/AppWithAttributionInheritingFromSelf/Android.bp
@@ -18,6 +18,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ]
 }
\ No newline at end of file
diff --git a/tests/tests/appop/AppWithDuplicateAttribution/Android.bp b/tests/tests/appop/AppWithDuplicateAttribution/Android.bp
index a4b1272..27b860e 100644
--- a/tests/tests/appop/AppWithDuplicateAttribution/Android.bp
+++ b/tests/tests/appop/AppWithDuplicateAttribution/Android.bp
@@ -18,6 +18,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ]
 }
\ No newline at end of file
diff --git a/tests/tests/appop/AppWithLongAttributionTag/Android.bp b/tests/tests/appop/AppWithLongAttributionTag/Android.bp
index 5ee3f02..a952614 100644
--- a/tests/tests/appop/AppWithLongAttributionTag/Android.bp
+++ b/tests/tests/appop/AppWithLongAttributionTag/Android.bp
@@ -18,6 +18,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ]
 }
\ No newline at end of file
diff --git a/tests/tests/appop/AppWithTooManyAttributions/Android.bp b/tests/tests/appop/AppWithTooManyAttributions/Android.bp
index 80b1bd3..18ae06f 100644
--- a/tests/tests/appop/AppWithTooManyAttributions/Android.bp
+++ b/tests/tests/appop/AppWithTooManyAttributions/Android.bp
@@ -18,6 +18,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ]
 }
\ No newline at end of file
diff --git a/tests/tests/appop/src/android/app/appops/cts/AppOpsLoggingTest.kt b/tests/tests/appop/src/android/app/appops/cts/AppOpsLoggingTest.kt
index e8db5e2..74fa394 100644
--- a/tests/tests/appop/src/android/app/appops/cts/AppOpsLoggingTest.kt
+++ b/tests/tests/appop/src/android/app/appops/cts/AppOpsLoggingTest.kt
@@ -25,7 +25,6 @@
 import android.app.AppOpsManager.OPSTR_GET_ACCOUNTS
 import android.app.AppOpsManager.OPSTR_READ_CONTACTS
 import android.app.AppOpsManager.OPSTR_READ_EXTERNAL_STORAGE
-import android.app.AppOpsManager.OPSTR_READ_PHONE_STATE
 import android.app.AppOpsManager.OPSTR_WRITE_CONTACTS
 import android.app.AppOpsManager.strOpToOp
 import android.app.AsyncNotedAppOp
@@ -57,7 +56,6 @@
 import android.os.Looper
 import android.platform.test.annotations.AppModeFull
 import android.provider.ContactsContract
-import android.telecom.TelecomManager
 import android.telephony.TelephonyManager
 import androidx.test.platform.app.InstrumentationRegistry
 import com.google.common.truth.Truth.assertThat
@@ -615,23 +613,6 @@
     }
 
     /**
-     * Realistic end-to-end test for getting cell info
-     */
-    @Test
-    fun getMultiSimSupport() {
-        assumeTrue(context.packageManager.hasSystemFeature(FEATURE_TELEPHONY))
-
-        val telephonyManager = context.createAttributionContext(TEST_ATTRIBUTION_TAG)
-            .getSystemService(TelephonyManager::class.java)
-
-        telephonyManager.isMultiSimSupported
-
-        assertThat(noted[0].first.op).isEqualTo(OPSTR_READ_PHONE_STATE)
-        assertThat(noted[0].first.attributionTag).isEqualTo(TEST_ATTRIBUTION_TAG)
-        assertThat(noted[0].second.map { it.methodName }).contains("getMultiSimSupport")
-    }
-
-    /**
      * Realistic end-to-end test for getting wallpaper
      */
     @Test
@@ -647,21 +628,6 @@
     }
 
     /**
-     * Realistic end-to-end test for checking if currently in call
-     */
-    @Test
-    fun isInCall() {
-        val telecomManager = context.createAttributionContext(TEST_ATTRIBUTION_TAG)
-                .getSystemService(TelecomManager::class.java)
-
-        telecomManager.isInCall()
-
-        assertThat(noted[0].first.op).isEqualTo(OPSTR_READ_PHONE_STATE)
-        assertThat(noted[0].first.attributionTag).isEqualTo(TEST_ATTRIBUTION_TAG)
-        assertThat(noted[0].second.map { it.methodName }).contains("isInCall")
-    }
-
-    /**
      * Realistic end-to-end test for starting a permission protected activity
      */
     @Test
diff --git a/tests/tests/appwidget/Android.bp b/tests/tests/appwidget/Android.bp
index 2a769ca..5aa8fc4 100644
--- a/tests/tests/appwidget/Android.bp
+++ b/tests/tests/appwidget/Android.bp
@@ -39,6 +39,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/appwidget/packages/launchermanifest/Android.bp b/tests/tests/appwidget/packages/launchermanifest/Android.bp
index 972f361..c9365d9 100644
--- a/tests/tests/appwidget/packages/launchermanifest/Android.bp
+++ b/tests/tests/appwidget/packages/launchermanifest/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     aaptflags: [
@@ -39,6 +40,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     aaptflags: [
@@ -55,6 +57,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     aaptflags: [
diff --git a/tests/tests/appwidget/packages/widgetprovider/Android.bp b/tests/tests/appwidget/packages/widgetprovider/Android.bp
index 455de53..f20997d 100644
--- a/tests/tests/appwidget/packages/widgetprovider/Android.bp
+++ b/tests/tests/appwidget/packages/widgetprovider/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -36,6 +37,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -50,6 +52,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/assist/Android.bp b/tests/tests/assist/Android.bp
index 83be674..9e5d7b4 100644
--- a/tests/tests/assist/Android.bp
+++ b/tests/tests/assist/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     static_libs: [
diff --git a/tests/tests/assist/service/Android.bp b/tests/tests/assist/service/Android.bp
index d3bb2b6..f3989e26 100644
--- a/tests/tests/assist/service/Android.bp
+++ b/tests/tests/assist/service/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/tests/assist/testapp/Android.bp b/tests/tests/assist/testapp/Android.bp
index b87a7f1..c12c112 100644
--- a/tests/tests/assist/testapp/Android.bp
+++ b/tests/tests/assist/testapp/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/tests/background/Android.bp b/tests/tests/background/Android.bp
index 0eaf61f..9e1edbd 100644
--- a/tests/tests/background/Android.bp
+++ b/tests/tests/background/Android.bp
@@ -28,6 +28,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
     ],
     sdk_version: "test_current",
 }
diff --git a/tests/tests/batterysaving/Android.bp b/tests/tests/batterysaving/Android.bp
index b0007e2..59b4868 100644
--- a/tests/tests/batterysaving/Android.bp
+++ b/tests/tests/batterysaving/Android.bp
@@ -34,6 +34,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/tests/batterysaving/apps/app_target_api_25/Android.bp b/tests/tests/batterysaving/apps/app_target_api_25/Android.bp
index de78337..3d40b33 100644
--- a/tests/tests/batterysaving/apps/app_target_api_25/Android.bp
+++ b/tests/tests/batterysaving/apps/app_target_api_25/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/batterysaving/apps/app_target_api_current/Android.bp b/tests/tests/batterysaving/apps/app_target_api_current/Android.bp
index 8d385c6..c434ee9 100644
--- a/tests/tests/batterysaving/apps/app_target_api_current/Android.bp
+++ b/tests/tests/batterysaving/apps/app_target_api_current/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/binder_ndk/Android.bp b/tests/tests/binder_ndk/Android.bp
index 315f3a3..0c9877e 100644
--- a/tests/tests/binder_ndk/Android.bp
+++ b/tests/tests/binder_ndk/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     static_libs: [
diff --git a/tests/tests/bionic/Android.mk b/tests/tests/bionic/Android.mk
index c94da20..f17ea4d 100644
--- a/tests/tests/bionic/Android.mk
+++ b/tests/tests/bionic/Android.mk
@@ -48,7 +48,7 @@
 LOCAL_CXX_STL := libc++_static
 
 # Tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests mts
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests mts
 
 LOCAL_CTS_TEST_PACKAGE := android.bionic
 
diff --git a/tests/tests/bluetooth/Android.bp b/tests/tests/bluetooth/Android.bp
index 1d24127..758940f 100644
--- a/tests/tests/bluetooth/Android.bp
+++ b/tests/tests/bluetooth/Android.bp
@@ -26,6 +26,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/bluetooth/src/android/bluetooth/cts/BasicAdapterTest.java b/tests/tests/bluetooth/src/android/bluetooth/cts/BasicAdapterTest.java
index 8616a6d..fa126ff 100644
--- a/tests/tests/bluetooth/src/android/bluetooth/cts/BasicAdapterTest.java
+++ b/tests/tests/bluetooth/src/android/bluetooth/cts/BasicAdapterTest.java
@@ -140,7 +140,7 @@
         assertTrue(BluetoothAdapter.checkBluetoothAddress(adapter.getAddress()));
     }
 
-    public void test_getName() {
+    public void test_setName_getName() {
         if (!mHasBluetooth) {
             // Skip the test if bluetooth is not present.
             return;
@@ -150,6 +150,10 @@
 
         String name = adapter.getName();
         assertNotNull(name);
+
+        String genericName = "Generic Device 1";
+        assertTrue(adapter.setName(genericName));
+        assertEquals(genericName, adapter.getName());
     }
 
     public void test_getBondedDevices() {
diff --git a/tests/tests/calendarcommon/Android.bp b/tests/tests/calendarcommon/Android.bp
index 5b2504d..2ae94e8 100644
--- a/tests/tests/calendarcommon/Android.bp
+++ b/tests/tests/calendarcommon/Android.bp
@@ -24,6 +24,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/calendarprovider/Android.bp b/tests/tests/calendarprovider/Android.bp
index 43ecb0d..db3eded 100644
--- a/tests/tests/calendarprovider/Android.bp
+++ b/tests/tests/calendarprovider/Android.bp
@@ -5,6 +5,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 
diff --git a/tests/tests/car/Android.bp b/tests/tests/car/Android.bp
index 28b6431..9812222 100644
--- a/tests/tests/car/Android.bp
+++ b/tests/tests/car/Android.bp
@@ -33,6 +33,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/tests/carrierapi/Android.bp b/tests/tests/carrierapi/Android.bp
index be6215e..d794447 100644
--- a/tests/tests/carrierapi/Android.bp
+++ b/tests/tests/carrierapi/Android.bp
@@ -26,6 +26,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     libs: [
diff --git a/tests/tests/classloaderfactory/test-memcl/Android.bp b/tests/tests/classloaderfactory/test-memcl/Android.bp
index f190da2..9d2d9e7 100644
--- a/tests/tests/classloaderfactory/test-memcl/Android.bp
+++ b/tests/tests/classloaderfactory/test-memcl/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/classloaderfactory/test-pathcl/Android.bp b/tests/tests/classloaderfactory/test-pathcl/Android.bp
index 93cd699..b5353a7 100644
--- a/tests/tests/classloaderfactory/test-pathcl/Android.bp
+++ b/tests/tests/classloaderfactory/test-pathcl/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/colormode/Android.bp b/tests/tests/colormode/Android.bp
index 5c7de68..d930a45 100644
--- a/tests/tests/colormode/Android.bp
+++ b/tests/tests/colormode/Android.bp
@@ -27,6 +27,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/tests/tests/contactsprovider/Android.bp b/tests/tests/contactsprovider/Android.bp
index ed5cf51..62d3419 100644
--- a/tests/tests/contactsprovider/Android.bp
+++ b/tests/tests/contactsprovider/Android.bp
@@ -7,6 +7,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 
diff --git a/tests/tests/contactsproviderwipe/Android.bp b/tests/tests/contactsproviderwipe/Android.bp
index e694239..09b0775 100644
--- a/tests/tests/contactsproviderwipe/Android.bp
+++ b/tests/tests/contactsproviderwipe/Android.bp
@@ -31,6 +31,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/tests/content/Android.bp b/tests/tests/content/Android.bp
index 311974b..822b555 100644
--- a/tests/tests/content/Android.bp
+++ b/tests/tests/content/Android.bp
@@ -76,6 +76,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/content/BinderPermissionTestService/Android.bp b/tests/tests/content/BinderPermissionTestService/Android.bp
index 2b5d4d8..faa21b8 100644
--- a/tests/tests/content/BinderPermissionTestService/Android.bp
+++ b/tests/tests/content/BinderPermissionTestService/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     optimize: {
diff --git a/tests/tests/content/CtsSyncAccountAccessOtherCertTests/Android.bp b/tests/tests/content/CtsSyncAccountAccessOtherCertTests/Android.bp
index c6453bc..38b137b 100644
--- a/tests/tests/content/CtsSyncAccountAccessOtherCertTests/Android.bp
+++ b/tests/tests/content/CtsSyncAccountAccessOtherCertTests/Android.bp
@@ -28,6 +28,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     optimize: {
diff --git a/tests/tests/content/DirectBootUnawareTestApp/Android.bp b/tests/tests/content/DirectBootUnawareTestApp/Android.bp
index efd2480..da8c39e 100644
--- a/tests/tests/content/DirectBootUnawareTestApp/Android.bp
+++ b/tests/tests/content/DirectBootUnawareTestApp/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/content/HelloWorldApp/Android.bp b/tests/tests/content/HelloWorldApp/Android.bp
index 9ee96f5..7bbe2a7 100644
--- a/tests/tests/content/HelloWorldApp/Android.bp
+++ b/tests/tests/content/HelloWorldApp/Android.bp
@@ -40,6 +40,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -53,6 +54,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/content/PartiallyDirectBootAwareTestApp/Android.bp b/tests/tests/content/PartiallyDirectBootAwareTestApp/Android.bp
index 6fc755c..eb2c081 100644
--- a/tests/tests/content/PartiallyDirectBootAwareTestApp/Android.bp
+++ b/tests/tests/content/PartiallyDirectBootAwareTestApp/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/content/SyncAccountAccessStubs/Android.bp b/tests/tests/content/SyncAccountAccessStubs/Android.bp
index 5ef6d43..2d1b1d2 100644
--- a/tests/tests/content/SyncAccountAccessStubs/Android.bp
+++ b/tests/tests/content/SyncAccountAccessStubs/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     optimize: {
diff --git a/tests/tests/content/emptytestapp/Android.bp b/tests/tests/content/emptytestapp/Android.bp
index e3a7872..b037777 100644
--- a/tests/tests/content/emptytestapp/Android.bp
+++ b/tests/tests/content/emptytestapp/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/content/pm/SecureFrp/Android.bp b/tests/tests/content/pm/SecureFrp/Android.bp
index 91abdc6..8a434ac 100644
--- a/tests/tests/content/pm/SecureFrp/Android.bp
+++ b/tests/tests/content/pm/SecureFrp/Android.bp
@@ -29,6 +29,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
         "mts",
     ],
diff --git a/tests/tests/content/src/android/content/cts/ContentResolverTest.java b/tests/tests/content/src/android/content/cts/ContentResolverTest.java
index f56a6ca..1a719eb 100644
--- a/tests/tests/content/src/android/content/cts/ContentResolverTest.java
+++ b/tests/tests/content/src/android/content/cts/ContentResolverTest.java
@@ -25,6 +25,8 @@
 import android.content.ContentResolver.MimeTypeInfo;
 import android.content.ContentValues;
 import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
 import android.content.res.AssetFileDescriptor;
 import android.database.ContentObserver;
 import android.database.Cursor;
@@ -1126,6 +1128,13 @@
         }
     }
 
+    public void testCheckUriPermission() {
+        assertEquals(PackageManager.PERMISSION_GRANTED, mContentResolver.checkUriPermission(
+                TABLE1_URI, android.os.Process.myUid(), Intent.FLAG_GRANT_READ_URI_PERMISSION));
+        assertEquals(PackageManager.PERMISSION_DENIED, mContentResolver.checkUriPermission(
+                TABLE1_URI, android.os.Process.myUid(), Intent.FLAG_GRANT_WRITE_URI_PERMISSION));
+    }
+
     public void testRegisterContentObserver() {
         final MockContentObserver mco = new MockContentObserver();
 
diff --git a/tests/tests/content/src/android/content/cts/MockContentProvider.java b/tests/tests/content/src/android/content/cts/MockContentProvider.java
index ee6d0be..e054cf4 100644
--- a/tests/tests/content/src/android/content/cts/MockContentProvider.java
+++ b/tests/tests/content/src/android/content/cts/MockContentProvider.java
@@ -26,7 +26,9 @@
 import android.content.ContentUris;
 import android.content.ContentValues;
 import android.content.Context;
+import android.content.Intent;
 import android.content.UriMatcher;
+import android.content.pm.PackageManager;
 import android.content.res.AssetFileDescriptor;
 import android.database.Cursor;
 import android.database.SQLException;
@@ -444,6 +446,15 @@
         return sRefreshReturnValue;
     }
 
+    @Override
+    public int checkUriPermission(@NonNull Uri uri, int uid, @Intent.AccessUriMode int modeFlags) {
+        if ((modeFlags & Intent.FLAG_GRANT_READ_URI_PERMISSION) != 0) {
+            return PackageManager.PERMISSION_GRANTED;
+        } else {
+            return PackageManager.PERMISSION_DENIED;
+        }
+    }
+
     private void crashOnLaunchIfNeeded() {
         if (getCrashOnLaunch(getContext())) {
             // The test case wants us to crash our process on first launch.
diff --git a/tests/tests/database/Android.bp b/tests/tests/database/Android.bp
index 36f4fbd..1695715 100644
--- a/tests/tests/database/Android.bp
+++ b/tests/tests/database/Android.bp
@@ -32,6 +32,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     // Enforce public / test api only
diff --git a/tests/tests/database/apps/Android.bp b/tests/tests/database/apps/Android.bp
index 9953fc1..8b811e2 100644
--- a/tests/tests/database/apps/Android.bp
+++ b/tests/tests/database/apps/Android.bp
@@ -23,6 +23,7 @@
   test_suites: [
     "cts",
     "vts",
+        "vts10",
     "general-tests",
   ]
 }
\ No newline at end of file
diff --git a/tests/tests/deviceconfig/Android.bp b/tests/tests/deviceconfig/Android.bp
index 9ec7b0a..96b39dfd 100644
--- a/tests/tests/deviceconfig/Android.bp
+++ b/tests/tests/deviceconfig/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     libs: ["android.test.base.stubs"],
diff --git a/tests/tests/display/Android.bp b/tests/tests/display/Android.bp
index 6765e97..4ac22f5 100644
--- a/tests/tests/display/Android.bp
+++ b/tests/tests/display/Android.bp
@@ -28,6 +28,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/tests/dpi/Android.bp b/tests/tests/dpi/Android.bp
index 3312570..d55bcac 100644
--- a/tests/tests/dpi/Android.bp
+++ b/tests/tests/dpi/Android.bp
@@ -32,6 +32,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/dpi2/Android.bp b/tests/tests/dpi2/Android.bp
index 9af9055..b9cfbc6 100644
--- a/tests/tests/dpi2/Android.bp
+++ b/tests/tests/dpi2/Android.bp
@@ -31,6 +31,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/dreams/Android.bp b/tests/tests/dreams/Android.bp
index 121c9d6..2f144ef 100644
--- a/tests/tests/dreams/Android.bp
+++ b/tests/tests/dreams/Android.bp
@@ -29,6 +29,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/drm/Android.bp b/tests/tests/drm/Android.bp
index 57b9332..f0177c0 100644
--- a/tests/tests/drm/Android.bp
+++ b/tests/tests/drm/Android.bp
@@ -27,6 +27,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     jni_libs: [
diff --git a/tests/tests/dynamic_linker/Android.bp b/tests/tests/dynamic_linker/Android.bp
index ee88e21..0439648 100644
--- a/tests/tests/dynamic_linker/Android.bp
+++ b/tests/tests/dynamic_linker/Android.bp
@@ -55,6 +55,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
     ],
     use_embedded_native_libs: true,
 }
diff --git a/tests/tests/effect/Android.bp b/tests/tests/effect/Android.bp
index 5b62692..f673633 100644
--- a/tests/tests/effect/Android.bp
+++ b/tests/tests/effect/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/tests/tests/externalservice/Android.bp b/tests/tests/externalservice/Android.bp
index 11a1d35..33a2656 100644
--- a/tests/tests/externalservice/Android.bp
+++ b/tests/tests/externalservice/Android.bp
@@ -32,6 +32,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/tests/externalservice/service/Android.bp b/tests/tests/externalservice/service/Android.bp
index 29b48d1..dd7c07f 100644
--- a/tests/tests/externalservice/service/Android.bp
+++ b/tests/tests/externalservice/service/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/tests/gesture/Android.bp b/tests/tests/gesture/Android.bp
index 1f8c125..62a3b33 100644
--- a/tests/tests/gesture/Android.bp
+++ b/tests/tests/gesture/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/tests/tests/graphics/Android.bp b/tests/tests/graphics/Android.bp
index 9ed18c2..69c7b8d 100644
--- a/tests/tests/graphics/Android.bp
+++ b/tests/tests/graphics/Android.bp
@@ -38,6 +38,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     // Enforce public / test api only
diff --git a/tests/tests/gwp-asan/enabled/Android.bp b/tests/tests/gwp-asan/enabled/Android.bp
index 533330a..d7daabf 100644
--- a/tests/tests/gwp-asan/enabled/Android.bp
+++ b/tests/tests/gwp-asan/enabled/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     libs: [
diff --git a/tests/tests/gwp-asan/enabled/AndroidManifest.xml b/tests/tests/gwp-asan/enabled/AndroidManifest.xml
index afd8c9a..acded16 100644
--- a/tests/tests/gwp-asan/enabled/AndroidManifest.xml
+++ b/tests/tests/gwp-asan/enabled/AndroidManifest.xml
@@ -19,13 +19,13 @@
        android:targetSandboxVersion="2">
 
   <application android:extractNativeLibs="true"
-               android:enableGwpAsan="true">
+               android:gwpAsanMode="always">
     <processes>
       <process />
       <process android:process=":gwp_asan_enabled"
-               android:enableGwpAsan="true" />
+               android:gwpAsanMode="always" />
       <process android:process=":gwp_asan_disabled"
-               android:enableGwpAsan="false" />
+               android:gwpAsanMode="never" />
       <process android:process=":gwp_asan_default" />
     </processes>
     <uses-library android:name="android.test.runner" />
diff --git a/tests/tests/hardware/Android.bp b/tests/tests/hardware/Android.bp
index 1915b00..af30a6b 100644
--- a/tests/tests/hardware/Android.bp
+++ b/tests/tests/hardware/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     compile_multilib: "both",
diff --git a/tests/tests/icu/Android.bp b/tests/tests/icu/Android.bp
index 178b909..39c422f 100644
--- a/tests/tests/icu/Android.bp
+++ b/tests/tests/icu/Android.bp
@@ -24,6 +24,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
 	"mts",
     ],
diff --git a/tests/tests/identity/Android.bp b/tests/tests/identity/Android.bp
index ef2961b..6e1d02d 100644
--- a/tests/tests/identity/Android.bp
+++ b/tests/tests/identity/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     libs: [
diff --git a/tests/tests/jni/Android.bp b/tests/tests/jni/Android.bp
index aff9682..c209fd3 100644
--- a/tests/tests/jni/Android.bp
+++ b/tests/tests/jni/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     static_libs: [
diff --git a/tests/tests/jvmti/attaching/Android.bp b/tests/tests/jvmti/attaching/Android.bp
index 36f94a7..8adba67 100644
--- a/tests/tests/jvmti/attaching/Android.bp
+++ b/tests/tests/jvmti/attaching/Android.bp
@@ -18,6 +18,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     static_libs: [
diff --git a/tests/tests/keystore/Android.bp b/tests/tests/keystore/Android.bp
index d43ba0e..59ed342 100644
--- a/tests/tests/keystore/Android.bp
+++ b/tests/tests/keystore/Android.bp
@@ -36,6 +36,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     libs: [
diff --git a/tests/tests/libcoreapievolution/Android.bp b/tests/tests/libcoreapievolution/Android.bp
index cabb0c9..3c5b7e6 100644
--- a/tests/tests/libcoreapievolution/Android.bp
+++ b/tests/tests/libcoreapievolution/Android.bp
@@ -26,6 +26,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/libcorefileio/Android.bp b/tests/tests/libcorefileio/Android.bp
index 8a599e7..72b6ac1 100644
--- a/tests/tests/libcorefileio/Android.bp
+++ b/tests/tests/libcorefileio/Android.bp
@@ -26,6 +26,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/libcorelegacy22/Android.bp b/tests/tests/libcorelegacy22/Android.bp
index e28a800..c59d6a8 100644
--- a/tests/tests/libcorelegacy22/Android.bp
+++ b/tests/tests/libcorelegacy22/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/libthermalndk/Android.bp b/tests/tests/libthermalndk/Android.bp
index 2b7d126..0f85659 100644
--- a/tests/tests/libthermalndk/Android.bp
+++ b/tests/tests/libthermalndk/Android.bp
@@ -32,6 +32,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/tests/match_flags/Android.bp b/tests/tests/match_flags/Android.bp
index 7debb8a..f0aeec8 100644
--- a/tests/tests/match_flags/Android.bp
+++ b/tests/tests/match_flags/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     static_libs: [
diff --git a/tests/tests/match_flags/app/a/Android.bp b/tests/tests/match_flags/app/a/Android.bp
index 9a5db56..1c99dea 100644
--- a/tests/tests/match_flags/app/a/Android.bp
+++ b/tests/tests/match_flags/app/a/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/tests/match_flags/app/b/Android.bp b/tests/tests/match_flags/app/b/Android.bp
index 8c49047..d447c24 100644
--- a/tests/tests/match_flags/app/b/Android.bp
+++ b/tests/tests/match_flags/app/b/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/tests/media/Android.bp b/tests/tests/media/Android.bp
index 0414e7d..634f676 100644
--- a/tests/tests/media/Android.bp
+++ b/tests/tests/media/Android.bp
@@ -74,6 +74,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
         "mts",
     ],
diff --git a/tests/tests/media/src/android/media/cts/MediaCodecBlockModelTest.java b/tests/tests/media/src/android/media/cts/MediaCodecBlockModelTest.java
index 7123d9c..be69243 100644
--- a/tests/tests/media/src/android/media/cts/MediaCodecBlockModelTest.java
+++ b/tests/tests/media/src/android/media/cts/MediaCodecBlockModelTest.java
@@ -207,8 +207,8 @@
             MediaCodec.OutputFrame frame = codec.getOutputFrame(index);
             boolean eos = (frame.getFlags() & MediaCodec.BUFFER_FLAG_END_OF_STREAM) != 0;
 
-            if (mGraphic && frame.getGraphicBlock() != null) {
-                frame.getGraphicBlock().recycle();
+            if (mGraphic && frame.getHardwareBuffer() != null) {
+                frame.getHardwareBuffer().close();
             }
             if (!mGraphic && frame.getLinearBlock() != null) {
                 frame.getLinearBlock().recycle();
@@ -232,8 +232,8 @@
             boolean eos = (frame.getFlags() & MediaCodec.BUFFER_FLAG_END_OF_STREAM) != 0;
 
             boolean render = false;
-            if (frame.getGraphicBlock() != null) {
-                frame.getGraphicBlock().recycle();
+            if (frame.getHardwareBuffer() != null) {
+                frame.getHardwareBuffer().close();
                 render = true;
             }
             codec.releaseOutputBuffer(index, render);
diff --git a/tests/tests/media/src/android/media/cts/MediaRoute2ProviderServiceTest.java b/tests/tests/media/src/android/media/cts/MediaRoute2ProviderServiceTest.java
index e4c3ea1..21a62d2 100644
--- a/tests/tests/media/src/android/media/cts/MediaRoute2ProviderServiceTest.java
+++ b/tests/tests/media/src/android/media/cts/MediaRoute2ProviderServiceTest.java
@@ -368,7 +368,7 @@
 
         TransferCallback transferCallback = new TransferCallback() {
             @Override
-            public void onTransferred(RoutingController oldController,
+            public void onTransfer(RoutingController oldController,
                     RoutingController newController) {
                 if (SESSION_ID_1.equals(newController.getOriginalId())) {
                     assertEquals(mRouter2.getSystemController(), oldController);
@@ -480,7 +480,7 @@
 
         TransferCallback transferCallback = new TransferCallback() {
             @Override
-            public void onTransferred(RoutingController oldController,
+            public void onTransfer(RoutingController oldController,
                     RoutingController newController) {
                 if (SESSION_ID_1.equals(newController.getOriginalId())) {
                     assertEquals(mRouter2.getSystemController(), oldController);
@@ -489,7 +489,7 @@
                 }
             }
             @Override
-            public void onStopped(RoutingController controller){
+            public void onStop(RoutingController controller){
                 if (SESSION_ID_1.equals(controller.getOriginalId())) {
                     assertTrue(controller.isReleased());
                     onStoppedLatch.countDown();
diff --git a/tests/tests/media/src/android/media/cts/MediaRouter2Test.java b/tests/tests/media/src/android/media/cts/MediaRouter2Test.java
index 71f83de..5e8ea6d 100644
--- a/tests/tests/media/src/android/media/cts/MediaRouter2Test.java
+++ b/tests/tests/media/src/android/media/cts/MediaRouter2Test.java
@@ -181,7 +181,7 @@
         // Create session with this route
         TransferCallback controllerCallback = new TransferCallback() {
             @Override
-            public void onTransferred(RoutingController oldController,
+            public void onTransfer(RoutingController oldController,
                     RoutingController newController) {
                 assertEquals(mRouter2.getSystemController(), oldController);
                 assertTrue(createRouteMap(newController.getSelectedRoutes()).containsKey(
@@ -191,7 +191,7 @@
             }
 
             @Override
-            public void onTransferFailed(MediaRoute2Info requestedRoute) {
+            public void onTransferFailure(MediaRoute2Info requestedRoute) {
                 failureLatch.countDown();
             }
         };
@@ -230,14 +230,14 @@
         // Create session with this route
         TransferCallback transferCallback = new TransferCallback() {
             @Override
-            public void onTransferred(RoutingController oldController,
+            public void onTransfer(RoutingController oldController,
                     RoutingController newController) {
                 controllers.add(newController);
                 successLatch.countDown();
             }
 
             @Override
-            public void onTransferFailed(MediaRoute2Info requestedRoute) {
+            public void onTransferFailure(MediaRoute2Info requestedRoute) {
                 assertEquals(route, requestedRoute);
                 failureLatch.countDown();
             }
@@ -252,7 +252,7 @@
             mRouter2.transferTo(route);
             assertTrue(failureLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
 
-            // onTransferred should not be called.
+            // onTransfer should not be called.
             assertFalse(successLatch.await(WAIT_MS, TimeUnit.MILLISECONDS));
         } finally {
             releaseControllers(controllers);
@@ -274,7 +274,7 @@
         // Create session with this route
         TransferCallback transferCallback = new TransferCallback() {
             @Override
-            public void onTransferred(RoutingController oldController,
+            public void onTransfer(RoutingController oldController,
                     RoutingController newController) {
                 createdControllers.add(newController);
                 if (successLatch1.getCount() > 0) {
@@ -285,7 +285,7 @@
             }
 
             @Override
-            public void onTransferFailed(MediaRoute2Info requestedRoute) {
+            public void onTransferFailure(MediaRoute2Info requestedRoute) {
                 failureLatch.countDown();
             }
         };
@@ -307,7 +307,7 @@
             mRouter2.transferTo(route2);
             assertTrue(successLatch2.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
 
-            // onTransferFailed should not be called.
+            // onTransferFailure should not be called.
             assertFalse(failureLatch.await(WAIT_MS, TimeUnit.MILLISECONDS));
 
             // Created controllers should have proper info
@@ -351,7 +351,7 @@
         // Create session with this route
         TransferCallback transferCallback = new TransferCallback() {
             @Override
-            public void onTransferred(RoutingController oldController,
+            public void onTransfer(RoutingController oldController,
                     RoutingController newController) {
                 assertTrue(createRouteMap(newController.getSelectedRoutes())
                         .containsKey(ROUTE_ID1));
@@ -368,7 +368,7 @@
             }
 
             @Override
-            public void onTransferFailed(MediaRoute2Info requestedRoute) {
+            public void onTransferFailure(MediaRoute2Info requestedRoute) {
                 failureLatch.countDown();
             }
         };
@@ -412,7 +412,7 @@
         // Create session with this route
         TransferCallback transferCallback = new TransferCallback() {
             @Override
-            public void onTransferred(RoutingController oldController,
+            public void onTransfer(RoutingController oldController,
                     RoutingController newController) {
                 controllers.add(newController);
                 successLatch.countDown();
@@ -482,14 +482,14 @@
         // Create session with this route
         TransferCallback transferCallback = new TransferCallback() {
             @Override
-            public void onTransferred(RoutingController oldController,
+            public void onTransfer(RoutingController oldController,
                     RoutingController newController) {
                 controllers.add(newController);
                 successLatch.countDown();
             }
 
             @Override
-            public void onTransferFailed(MediaRoute2Info requestedRoute) {
+            public void onTransferFailure(MediaRoute2Info requestedRoute) {
                 failureLatch.countDown();
             }
         };
@@ -525,7 +525,7 @@
         MediaRoute2Info routeToBegin = routes.get(ROUTE_ID1);
         assertNotNull(routeToBegin);
 
-        final CountDownLatch onTransferredLatch = new CountDownLatch(1);
+        final CountDownLatch onTransferLatch = new CountDownLatch(1);
         final CountDownLatch onControllerUpdatedLatchForSelect = new CountDownLatch(1);
         final CountDownLatch onControllerUpdatedLatchForDeselect = new CountDownLatch(1);
         final List<RoutingController> controllers = new ArrayList<>();
@@ -534,20 +534,20 @@
         // Create session with ROUTE_ID1
         TransferCallback transferCallback = new TransferCallback() {
             @Override
-            public void onTransferred(RoutingController oldController,
+            public void onTransfer(RoutingController oldController,
                     RoutingController newController) {
                 assertEquals(mRouter2.getSystemController(), oldController);
                 assertTrue(getOriginalRouteIds(newController.getSelectedRoutes()).contains(
                         ROUTE_ID1));
                 controllers.add(newController);
-                onTransferredLatch.countDown();
+                onTransferLatch.countDown();
             }
         };
 
         ControllerCallback controllerCallback = new ControllerCallback() {
             @Override
             public void onControllerUpdated(RoutingController controller) {
-                if (onTransferredLatch.getCount() != 0
+                if (onTransferLatch.getCount() != 0
                         || !TextUtils.equals(controllers.get(0).getId(), controller.getId())) {
                     return;
                 }
@@ -589,7 +589,7 @@
             mRouter2.registerTransferCallback(mExecutor, transferCallback);
             mRouter2.registerControllerCallback(mExecutor, controllerCallback);
             mRouter2.transferTo(routeToBegin);
-            assertTrue(onTransferredLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
+            assertTrue(onTransferLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
 
             assertEquals(1, controllers.size());
             RoutingController controller = controllers.get(0);
@@ -624,27 +624,27 @@
         MediaRoute2Info routeToBegin = routes.get(ROUTE_ID1);
         assertNotNull(routeToBegin);
 
-        final CountDownLatch onTransferredLatch = new CountDownLatch(1);
+        final CountDownLatch onTransferLatch = new CountDownLatch(1);
         final CountDownLatch onControllerUpdatedLatch = new CountDownLatch(1);
         final List<RoutingController> controllers = new ArrayList<>();
 
         // Create session with ROUTE_ID1
         TransferCallback transferCallback = new TransferCallback() {
             @Override
-            public void onTransferred(RoutingController oldController,
+            public void onTransfer(RoutingController oldController,
                     RoutingController newController) {
                 assertEquals(mRouter2.getSystemController(), oldController);
                 assertTrue(getOriginalRouteIds(newController.getSelectedRoutes()).contains(
                         ROUTE_ID1));
                 controllers.add(newController);
-                onTransferredLatch.countDown();
+                onTransferLatch.countDown();
             }
         };
 
         ControllerCallback controllerCallback = new ControllerCallback() {
             @Override
             public void onControllerUpdated(RoutingController controller) {
-                if (onTransferredLatch.getCount() != 0
+                if (onTransferLatch.getCount() != 0
                         || !TextUtils.equals(controllers.get(0).getId(), controller.getId())) {
                     return;
                 }
@@ -665,7 +665,7 @@
             mRouter2.registerTransferCallback(mExecutor, transferCallback);
             mRouter2.registerControllerCallback(mExecutor, controllerCallback);
             mRouter2.transferTo(routeToBegin);
-            assertTrue(onTransferredLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
+            assertTrue(onTransferLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
 
             assertEquals(1, controllers.size());
             RoutingController controller = controllers.get(0);
@@ -693,26 +693,26 @@
         MediaRoute2Info routeToBegin = routes.get(ROUTE_ID1);
         assertNotNull(routeToBegin);
 
-        final CountDownLatch onTransferredLatch = new CountDownLatch(1);
+        final CountDownLatch onTransferLatch = new CountDownLatch(1);
         final CountDownLatch onControllerUpdatedLatch = new CountDownLatch(1);
         final List<RoutingController> controllers = new ArrayList<>();
 
         // Create session with ROUTE_ID1
         TransferCallback transferCallback = new TransferCallback() {
             @Override
-            public void onTransferred(RoutingController oldController,
+            public void onTransfer(RoutingController oldController,
                     RoutingController newController) {
                 assertEquals(mRouter2.getSystemController(), oldController);
                 assertTrue(getOriginalRouteIds(newController.getSelectedRoutes()).contains(
                         ROUTE_ID1));
                 controllers.add(newController);
-                onTransferredLatch.countDown();
+                onTransferLatch.countDown();
             }
         };
         ControllerCallback controllerCallback = new ControllerCallback() {
             @Override
             public void onControllerUpdated(RoutingController controller) {
-                if (onTransferredLatch.getCount() != 0
+                if (onTransferLatch.getCount() != 0
                         || !TextUtils.equals(controllers.get(0).getId(), controller.getId())) {
                     return;
                 }
@@ -733,7 +733,7 @@
             mRouter2.registerTransferCallback(mExecutor, transferCallback);
             mRouter2.registerControllerCallback(mExecutor, controllerCallback);
             mRouter2.transferTo(routeToBegin);
-            assertTrue(onTransferredLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
+            assertTrue(onTransferLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
 
             assertEquals(1, controllers.size());
 
@@ -752,7 +752,7 @@
         }
     }
 
-    // TODO: Add tests for onStopped() when provider releases the session.
+    // TODO: Add tests for onStop() when provider releases the session.
     @Test
     public void testStop() throws Exception {
         final List<String> sampleRouteType = new ArrayList<>();
@@ -762,36 +762,36 @@
         MediaRoute2Info routeTransferFrom = routes.get(ROUTE_ID1);
         assertNotNull(routeTransferFrom);
 
-        final CountDownLatch onTransferredLatch = new CountDownLatch(1);
+        final CountDownLatch onTransferLatch = new CountDownLatch(1);
         final CountDownLatch onControllerUpdatedLatch = new CountDownLatch(1);
-        final CountDownLatch onStoppedLatch = new CountDownLatch(1);
+        final CountDownLatch onStopLatch = new CountDownLatch(1);
         final List<RoutingController> controllers = new ArrayList<>();
 
         TransferCallback transferCallback = new TransferCallback() {
             @Override
-            public void onTransferred(RoutingController oldController,
+            public void onTransfer(RoutingController oldController,
                     RoutingController newController) {
                 assertEquals(mRouter2.getSystemController(), oldController);
                 assertTrue(getOriginalRouteIds(newController.getSelectedRoutes()).contains(
                         ROUTE_ID1));
                 controllers.add(newController);
-                onTransferredLatch.countDown();
+                onTransferLatch.countDown();
             }
             @Override
-            public void onStopped(RoutingController controller) {
-                if (onTransferredLatch.getCount() != 0
+            public void onStop(RoutingController controller) {
+                if (onTransferLatch.getCount() != 0
                         || !TextUtils.equals(
                         controllers.get(0).getId(), controller.getId())) {
                     return;
                 }
-                onStoppedLatch.countDown();
+                onStopLatch.countDown();
             }
         };
 
         ControllerCallback controllerCallback = new ControllerCallback() {
             @Override
             public void onControllerUpdated(RoutingController controller) {
-                if (onTransferredLatch.getCount() != 0
+                if (onTransferLatch.getCount() != 0
                         || !TextUtils.equals(controllers.get(0).getId(), controller.getId())) {
                     return;
                 }
@@ -807,7 +807,7 @@
             mRouter2.registerTransferCallback(mExecutor, transferCallback);
             mRouter2.registerControllerCallback(mExecutor, controllerCallback);
             mRouter2.transferTo(routeTransferFrom);
-            assertTrue(onTransferredLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
+            assertTrue(onTransferLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
 
             assertEquals(1, controllers.size());
             RoutingController controller = controllers.get(0);
@@ -823,8 +823,8 @@
             controller.selectRoute(routeToSelect);
             assertFalse(onControllerUpdatedLatch.await(WAIT_MS, TimeUnit.MILLISECONDS));
 
-            // onStopped should be called.
-            assertTrue(onStoppedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
+            // onStop should be called.
+            assertTrue(onStopLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
         } finally {
             releaseControllers(controllers);
             mRouter2.unregisterRouteCallback(routeCallback);
@@ -842,36 +842,36 @@
         MediaRoute2Info routeTransferFrom = routes.get(ROUTE_ID1);
         assertNotNull(routeTransferFrom);
 
-        final CountDownLatch onTransferredLatch = new CountDownLatch(1);
+        final CountDownLatch onTransferLatch = new CountDownLatch(1);
         final CountDownLatch onControllerUpdatedLatch = new CountDownLatch(1);
-        final CountDownLatch onStoppedLatch = new CountDownLatch(1);
+        final CountDownLatch onStopLatch = new CountDownLatch(1);
         final List<RoutingController> controllers = new ArrayList<>();
 
         TransferCallback transferCallback = new TransferCallback() {
             @Override
-            public void onTransferred(RoutingController oldController,
+            public void onTransfer(RoutingController oldController,
                     RoutingController newController) {
                 assertEquals(mRouter2.getSystemController(), oldController);
                 assertTrue(getOriginalRouteIds(newController.getSelectedRoutes()).contains(
                         ROUTE_ID1));
                 controllers.add(newController);
-                onTransferredLatch.countDown();
+                onTransferLatch.countDown();
             }
             @Override
-            public void onStopped(RoutingController controller) {
-                if (onTransferredLatch.getCount() != 0
+            public void onStop(RoutingController controller) {
+                if (onTransferLatch.getCount() != 0
                         || !TextUtils.equals(
                                 controllers.get(0).getId(), controller.getId())) {
                     return;
                 }
-                onStoppedLatch.countDown();
+                onStopLatch.countDown();
             }
         };
 
         ControllerCallback controllerCallback = new ControllerCallback() {
             @Override
             public void onControllerUpdated(RoutingController controller) {
-                if (onTransferredLatch.getCount() != 0
+                if (onTransferLatch.getCount() != 0
                         || !TextUtils.equals(controllers.get(0).getId(), controller.getId())) {
                     return;
                 }
@@ -887,7 +887,7 @@
             mRouter2.registerTransferCallback(mExecutor, transferCallback);
             mRouter2.registerControllerCallback(mExecutor, controllerCallback);
             mRouter2.transferTo(routeTransferFrom);
-            assertTrue(onTransferredLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
+            assertTrue(onTransferLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
 
             assertEquals(1, controllers.size());
             RoutingController controller = controllers.get(0);
@@ -904,8 +904,8 @@
             controller.selectRoute(routeToSelect);
             assertFalse(onControllerUpdatedLatch.await(WAIT_MS, TimeUnit.MILLISECONDS));
 
-            // onStopped should be called.
-            assertTrue(onStoppedLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
+            // onStop should be called.
+            assertTrue(onStopLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
         } finally {
             releaseControllers(controllers);
             mRouter2.unregisterRouteCallback(routeCallback);
@@ -1003,8 +1003,8 @@
         routeCallback.onRoutesRemoved(null);
 
         TransferCallback transferCallback = new TransferCallback() {};
-        transferCallback.onTransferred(null, null);
-        transferCallback.onTransferFailed(null);
+        transferCallback.onTransfer(null, null);
+        transferCallback.onTransferFailure(null);
 
         OnGetControllerHintsListener listener = route -> null;
         listener.onGetControllerHints(null);
diff --git a/tests/tests/media/src/android/media/cts/VolumeShaperTest.java b/tests/tests/media/src/android/media/cts/VolumeShaperTest.java
index fac659d..d24dc4d 100644
--- a/tests/tests/media/src/android/media/cts/VolumeShaperTest.java
+++ b/tests/tests/media/src/android/media/cts/VolumeShaperTest.java
@@ -631,6 +631,7 @@
         }
     } // testPlayerRamp
 
+    @FlakyTest
     @LargeTest
     public void testPlayerCornerCase() throws Exception {
         final String TEST_NAME = "testPlayerCornerCase";
@@ -681,6 +682,7 @@
         }
     } // testPlayerCornerCase
 
+    @FlakyTest
     @LargeTest
     public void testPlayerCornerCase2() throws Exception {
         final String TEST_NAME = "testPlayerCornerCase2";
diff --git a/tests/tests/mediaparser/Android.bp b/tests/tests/mediaparser/Android.bp
index 83f1b20..0cee045 100644
--- a/tests/tests/mediaparser/Android.bp
+++ b/tests/tests/mediaparser/Android.bp
@@ -31,6 +31,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
         "mts",
     ],
diff --git a/tests/tests/mediaparser/src/android/media/mediaparser/cts/MediaParserTest.java b/tests/tests/mediaparser/src/android/media/mediaparser/cts/MediaParserTest.java
index 624016d..5013f1c 100644
--- a/tests/tests/mediaparser/src/android/media/mediaparser/cts/MediaParserTest.java
+++ b/tests/tests/mediaparser/src/android/media/mediaparser/cts/MediaParserTest.java
@@ -39,22 +39,22 @@
 
     @Test
     public void testCreationByName() {
-        testCreationByName("exo.MatroskaParser");
-        testCreationByName("exo.FragmentedMp4Parser");
-        testCreationByName("exo.Mp4Parser");
-        testCreationByName("exo.Mp3Parser");
-        testCreationByName("exo.AdtsParser");
-        testCreationByName("exo.Ac3Parser");
-        testCreationByName("exo.TsParser");
-        testCreationByName("exo.FlvParser");
-        testCreationByName("exo.OggParser");
-        testCreationByName("exo.PsParser");
-        testCreationByName("exo.WavParser");
-        testCreationByName("exo.AmrParser");
-        testCreationByName("exo.Ac4Parser");
-        testCreationByName("exo.FlacParser");
+        testCreationByName(MediaParser.PARSER_NAME_MATROSKA);
+        testCreationByName(MediaParser.PARSER_NAME_FMP4);
+        testCreationByName(MediaParser.PARSER_NAME_MP4);
+        testCreationByName(MediaParser.PARSER_NAME_MP3);
+        testCreationByName(MediaParser.PARSER_NAME_ADTS);
+        testCreationByName(MediaParser.PARSER_NAME_AC3);
+        testCreationByName(MediaParser.PARSER_NAME_TS);
+        testCreationByName(MediaParser.PARSER_NAME_FLV);
+        testCreationByName(MediaParser.PARSER_NAME_OGG);
+        testCreationByName(MediaParser.PARSER_NAME_PS);
+        testCreationByName(MediaParser.PARSER_NAME_WAV);
+        testCreationByName(MediaParser.PARSER_NAME_AMR);
+        testCreationByName(MediaParser.PARSER_NAME_AC4);
+        testCreationByName(MediaParser.PARSER_NAME_FLAC);
         try {
-            testCreationByName("exo.ExtractorThatDoesNotExist");
+            testCreationByName("android.media.mediaparser.ExtractorThatDoesNotExist");
             Assert.fail();
         } catch (IllegalArgumentException e) {
             // Expected.
@@ -85,13 +85,14 @@
 
     @Test
     public void testFlacHeaderOggSniff() throws IOException, InterruptedException {
-        testSniffAsset("ogg/flac_header", /* expectedExtractorName= */ "exo.OggParser");
+        testSniffAsset("ogg/flac_header", /* expectedExtractorName= */ MediaParser.PARSER_NAME_OGG);
     }
 
     @Test
     public void testOpusHeaderOggSniff() throws IOException, InterruptedException {
         try {
-            testSniffAsset("ogg/opus_header", /* expectedExtractorName= */ "exo.OggParser");
+            testSniffAsset(
+                    "ogg/opus_header", /* expectedExtractorName= */ MediaParser.PARSER_NAME_OGG);
             Assert.fail();
         } catch (MediaParser.UnrecognizedInputFormatException e) {
             // Expected.
@@ -101,7 +102,9 @@
     @Test
     public void testInvalidHeaderOggSniff() throws IOException, InterruptedException {
         try {
-            testSniffAsset("ogg/invalid_ogg_header", /* expectedExtractorName= */ "exo.OggParser");
+            testSniffAsset(
+                    "ogg/invalid_ogg_header",
+                    /* expectedExtractorName= */ MediaParser.PARSER_NAME_OGG);
             Assert.fail();
         } catch (MediaParser.UnrecognizedInputFormatException e) {
             // Expected.
@@ -111,7 +114,8 @@
     @Test
     public void testInvalidHeaderSniff() throws IOException, InterruptedException {
         try {
-            testSniffAsset("ogg/invalid_header", /* expectedExtractorName= */ "exo.OggParser");
+            testSniffAsset(
+                    "ogg/invalid_header", /* expectedExtractorName= */ MediaParser.PARSER_NAME_OGG);
             Assert.fail();
         } catch (MediaParser.UnrecognizedInputFormatException e) {
             // Expected.
@@ -387,8 +391,9 @@
         MockMediaParserInputReader mockInput =
                 new MockMediaParserInputReader(
                         new FakeExtractorInput.Builder().setData(assetBytes).build());
-        MediaParser mediaParser =
-                MediaParser.create(new MockMediaParserOutputConsumer(new FakeExtractorOutput()));
+        MockMediaParserOutputConsumer outputConsumer =
+                new MockMediaParserOutputConsumer(new FakeExtractorOutput());
+        MediaParser mediaParser = MediaParser.create(outputConsumer);
 
         mediaParser.advance(mockInput);
         if (expectedParserName != null) {
@@ -400,5 +405,29 @@
         while (mediaParser.advance(mockInput)) {
             // Do nothing.
         }
+
+        // If the SeekMap is seekable, test seeking in the stream.
+        MediaParser.SeekMap seekMap = outputConsumer.getSeekMap();
+        assertThat(seekMap).isNotNull();
+        if (seekMap.isSeekable()) {
+            long durationUs = seekMap.getDurationMicros();
+            for (int j = 0; j < 4; j++) {
+                outputConsumer.clearTrackOutputs();
+                long timeUs =
+                        durationUs == MediaParser.SeekMap.UNKNOWN_DURATION
+                                ? 0
+                                : (durationUs * j) / 3;
+                MediaParser.SeekPoint seekPoint = seekMap.getSeekPoints(timeUs).first;
+                mockInput.reset();
+                mockInput.setPosition((int) seekPoint.position);
+                mediaParser.seek(seekPoint);
+                while (mediaParser.advance(mockInput)) {
+                    // Do nothing.
+                }
+                if (durationUs == MediaParser.SeekMap.UNKNOWN_DURATION) {
+                    break;
+                }
+            }
+        }
     }
 }
diff --git a/tests/tests/mediaparser/src/android/media/mediaparser/cts/MockMediaParserInputReader.java b/tests/tests/mediaparser/src/android/media/mediaparser/cts/MockMediaParserInputReader.java
index c906020..e9d7d11 100644
--- a/tests/tests/mediaparser/src/android/media/mediaparser/cts/MockMediaParserInputReader.java
+++ b/tests/tests/mediaparser/src/android/media/mediaparser/cts/MockMediaParserInputReader.java
@@ -30,6 +30,16 @@
         mFakeExtractorInput = fakeExtractorInput;
     }
 
+    public void reset() {
+        mFakeExtractorInput.reset();
+    }
+
+    public void setPosition(int position) {
+        mFakeExtractorInput.setPosition(position);
+    }
+
+    // SeekableInputReader implementation.
+
     @Override
     public int read(byte[] buffer, int offset, int readLength) throws IOException {
         return mFakeExtractorInput.read(buffer, offset, readLength);
diff --git a/tests/tests/mediaparser/src/android/media/mediaparser/cts/MockMediaParserOutputConsumer.java b/tests/tests/mediaparser/src/android/media/mediaparser/cts/MockMediaParserOutputConsumer.java
index a8bcf34..a20e327 100644
--- a/tests/tests/mediaparser/src/android/media/mediaparser/cts/MockMediaParserOutputConsumer.java
+++ b/tests/tests/mediaparser/src/android/media/mediaparser/cts/MockMediaParserOutputConsumer.java
@@ -41,13 +41,22 @@
     private final FakeExtractorOutput mFakeExtractorOutput;
     private final ArrayList<TrackOutput> mTrackOutputs;
 
+    private MediaParser.SeekMap mSeekMap;
+
     public MockMediaParserOutputConsumer(FakeExtractorOutput fakeExtractorOutput) {
         mFakeExtractorOutput = fakeExtractorOutput;
         mTrackOutputs = new ArrayList<>();
     }
 
+    public void clearTrackOutputs() {
+        mFakeExtractorOutput.clearTrackOutputs();
+    }
+
+    // OutputConsumer implementation.
+
     @Override
     public void onSeekMapFound(MediaParser.SeekMap seekMap) {
+        mSeekMap = seekMap;
         mFakeExtractorOutput.seekMap(
                 new SeekMap() {
                     @Override
@@ -306,6 +315,10 @@
         }
     }
 
+    public MediaParser.SeekMap getSeekMap() {
+        return mSeekMap;
+    }
+
     // Internal classes.
 
     private class ExtractorInputAdapter implements ExtractorInput {
diff --git a/tests/tests/mediastress/Android.bp b/tests/tests/mediastress/Android.bp
index 8a112df..1c0798c 100644
--- a/tests/tests/mediastress/Android.bp
+++ b/tests/tests/mediastress/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
         "mts",
     ],
diff --git a/tests/tests/midi/Android.bp b/tests/tests/midi/Android.bp
index 1b6246c..1769221 100644
--- a/tests/tests/midi/Android.bp
+++ b/tests/tests/midi/Android.bp
@@ -24,6 +24,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 
diff --git a/tests/tests/mimemap/Android.bp b/tests/tests/mimemap/Android.bp
index 6f8b5ec..1af3639 100644
--- a/tests/tests/mimemap/Android.bp
+++ b/tests/tests/mimemap/Android.bp
@@ -29,6 +29,7 @@
         "cts",
         "mts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/multiuser/Android.bp b/tests/tests/multiuser/Android.bp
index 65c81ac..fd34867 100644
--- a/tests/tests/multiuser/Android.bp
+++ b/tests/tests/multiuser/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     srcs: ["src/**/*.java"],
diff --git a/tests/tests/nativehardware/Android.bp b/tests/tests/nativehardware/Android.bp
index 48ddaf9..e3848c8 100644
--- a/tests/tests/nativehardware/Android.bp
+++ b/tests/tests/nativehardware/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     libs: [
diff --git a/tests/tests/nativemedia/aaudio/Android.mk b/tests/tests/nativemedia/aaudio/Android.mk
index b470ff6..05a3a09 100644
--- a/tests/tests/nativemedia/aaudio/Android.mk
+++ b/tests/tests/nativemedia/aaudio/Android.mk
@@ -25,7 +25,7 @@
 LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
 
 # Tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 LOCAL_STATIC_JAVA_LIBRARIES := ctstestrunner-axt nativetesthelper
 
diff --git a/tests/tests/nativemedia/mediametrics/Android.bp b/tests/tests/nativemedia/mediametrics/Android.bp
index 6e1ecc1..f7d5fd8 100644
--- a/tests/tests/nativemedia/mediametrics/Android.bp
+++ b/tests/tests/nativemedia/mediametrics/Android.bp
@@ -43,6 +43,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 
diff --git a/tests/tests/nativemedia/sl/Android.mk b/tests/tests/nativemedia/sl/Android.mk
index 3e76c88..df7d8b2 100644
--- a/tests/tests/nativemedia/sl/Android.mk
+++ b/tests/tests/nativemedia/sl/Android.mk
@@ -42,7 +42,7 @@
 LOCAL_CTS_TEST_PACKAGE := android.nativemedia.sl
 
 # Tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 LOCAL_CFLAGS := -Werror -Wall -Wno-deprecated-declarations
 
diff --git a/tests/tests/nativemedia/xa/Android.mk b/tests/tests/nativemedia/xa/Android.mk
index 5f8830d..88c06e9 100644
--- a/tests/tests/nativemedia/xa/Android.mk
+++ b/tests/tests/nativemedia/xa/Android.mk
@@ -43,6 +43,6 @@
 LOCAL_CTS_TEST_PACKAGE := android.nativemedia.xa
 
 # Tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 include $(BUILD_CTS_EXECUTABLE)
diff --git a/tests/tests/nativemidi/Android.mk b/tests/tests/nativemidi/Android.mk
index 9fdd203..fa8fb10 100755
--- a/tests/tests/nativemidi/Android.mk
+++ b/tests/tests/nativemidi/Android.mk
@@ -26,7 +26,7 @@
 LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
 
 # Tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 LOCAL_SRC_FILES := $(call all-java-files-under, java)
 
diff --git a/tests/tests/ndef/Android.bp b/tests/tests/ndef/Android.bp
index b69d7a6..be6fc82 100644
--- a/tests/tests/ndef/Android.bp
+++ b/tests/tests/ndef/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/net/Android.bp b/tests/tests/net/Android.bp
index 624d149..d77f416 100644
--- a/tests/tests/net/Android.bp
+++ b/tests/tests/net/Android.bp
@@ -65,6 +65,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     test_config_template: "AndroidTestTemplate.xml",
diff --git a/tests/tests/net/api23Test/Android.bp b/tests/tests/net/api23Test/Android.bp
index ffe854e..614a5a2 100644
--- a/tests/tests/net/api23Test/Android.bp
+++ b/tests/tests/net/api23Test/Android.bp
@@ -46,6 +46,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 
diff --git a/tests/tests/net/appForApi23/Android.bp b/tests/tests/net/appForApi23/Android.bp
index 82e2a08..17cfe38 100644
--- a/tests/tests/net/appForApi23/Android.bp
+++ b/tests/tests/net/appForApi23/Android.bp
@@ -27,6 +27,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 
diff --git a/tests/tests/net/native/qtaguid/Android.bp b/tests/tests/net/native/qtaguid/Android.bp
index c0f0613..054937b 100644
--- a/tests/tests/net/native/qtaguid/Android.bp
+++ b/tests/tests/net/native/qtaguid/Android.bp
@@ -43,6 +43,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
     ],
 
     cflags: [
diff --git a/tests/tests/net/src/android/net/wifi/aware/cts/SingleDeviceTest.java b/tests/tests/net/src/android/net/wifi/aware/cts/SingleDeviceTest.java
index 5eb3e36..29f091b 100644
--- a/tests/tests/net/src/android/net/wifi/aware/cts/SingleDeviceTest.java
+++ b/tests/tests/net/src/android/net/wifi/aware/cts/SingleDeviceTest.java
@@ -64,6 +64,9 @@
 
     // wait for Wi-Fi Aware state changes & network requests callbacks
     static private final int WAIT_FOR_AWARE_CHANGE_SECS = 10; // 10 seconds
+    private static final int MIN_DISTANCE_MM = 1 * 1000;
+    private static final int MAX_DISTANCE_MM = 3 * 1000;
+    private static final byte[] PMK_VALID = "01234567890123456789012345678901".getBytes();
 
     private final Object mLock = new Object();
     private final HandlerThread mHandlerThread = new HandlerThread("SingleDeviceTest");
@@ -615,7 +618,8 @@
 
         // 2. update-subscribe
         subscribeConfig = new SubscribeConfig.Builder().setServiceName(
-                serviceName).setServiceSpecificInfo("extras".getBytes()).build();
+                serviceName).setServiceSpecificInfo("extras".getBytes())
+                .setMinDistanceMm(MIN_DISTANCE_MM).build();
         discoverySession.updateSubscribe(subscribeConfig);
         assertTrue("Subscribe update", discoveryCb.waitForCallback(
                 DiscoverySessionCallbackTest.ON_SESSION_CONFIG_UPDATED));
@@ -741,7 +745,8 @@
     }
 
     /**
-     * Request an Aware data-path (encrypted) as a Responder with an arbitrary peer MAC address.
+     * Request an Aware data-path (encrypted with Passphrase) as a Responder with an arbitrary peer
+     * MAC address.
      * Validate that receive an onUnavailable() callback.
      */
     public void testDataPathPassphraseOutOfBandFail() {
@@ -773,6 +778,40 @@
         session.close();
     }
 
+    /**
+     * Request an Aware data-path (encrypted with PMK) as a Responder with an arbitrary peer MAC
+     * address.
+     * Validate that receive an onUnavailable() callback.
+     */
+    public void testDataPathPmkOutOfBandFail() {
+        if (!TestUtils.shouldTestWifiAware(getContext())) {
+            return;
+        }
+        MacAddress mac = MacAddress.fromString("00:01:02:03:04:05");
+
+        // 1. initialize Aware: only purpose is to make sure it is available for OOB data-path
+        WifiAwareSession session = attachAndGetSession();
+
+        PublishConfig publishConfig = new PublishConfig.Builder().setServiceName(
+                "ValidName").build();
+        DiscoverySessionCallbackTest discoveryCb = new DiscoverySessionCallbackTest();
+        session.publish(publishConfig, discoveryCb, mHandler);
+        assertTrue("Publish started",
+                discoveryCb.waitForCallback(DiscoverySessionCallbackTest.ON_PUBLISH_STARTED));
+
+        // 2. request an AWARE network
+        NetworkCallbackTest networkCb = new NetworkCallbackTest();
+        NetworkRequest nr = new NetworkRequest.Builder().addTransportType(
+                NetworkCapabilities.TRANSPORT_WIFI_AWARE).setNetworkSpecifier(
+                session.createNetworkSpecifierPmk(
+                        WifiAwareManager.WIFI_AWARE_DATA_PATH_ROLE_INITIATOR, mac.toByteArray(),
+                        PMK_VALID)).build();
+        mConnectivityManager.requestNetwork(nr, networkCb);
+        assertTrue("OnUnavailable not received", networkCb.waitForOnUnavailable());
+
+        session.close();
+    }
+
     // local utilities
 
     private WifiAwareSession attachAndGetSession() {
diff --git a/tests/tests/net/src/android/net/wifi/cts/ConnectedNetworkScorerTest.java b/tests/tests/net/src/android/net/wifi/cts/ConnectedNetworkScorerTest.java
new file mode 100644
index 0000000..ce5bb81
--- /dev/null
+++ b/tests/tests/net/src/android/net/wifi/cts/ConnectedNetworkScorerTest.java
@@ -0,0 +1,344 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.net.wifi.cts;
+
+import static android.net.wifi.WifiUsabilityStatsEntry.PROBE_STATUS_FAILURE;
+import static android.net.wifi.WifiUsabilityStatsEntry.PROBE_STATUS_NO_PROBE;
+import static android.net.wifi.WifiUsabilityStatsEntry.PROBE_STATUS_SUCCESS;
+import static android.net.wifi.WifiUsabilityStatsEntry.PROBE_STATUS_UNKNOWN;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.app.UiAutomation;
+import android.net.wifi.WifiConfiguration;
+import android.net.wifi.WifiManager;
+import android.net.wifi.WifiUsabilityStatsEntry;
+import android.support.test.uiautomator.UiDevice;
+import android.telephony.TelephonyManager;
+import android.test.AndroidTestCase;
+
+import androidx.test.platform.app.InstrumentationRegistry;
+
+import com.android.compatibility.common.util.PollingCheck;
+import com.android.compatibility.common.util.ShellIdentityUtils;
+import com.android.compatibility.common.util.SystemUtil;
+
+import java.util.List;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
+
+public class ConnectedNetworkScorerTest extends AndroidTestCase {
+    private WifiManager mWifiManager;
+    private UiDevice mUiDevice;
+    private boolean mWasVerboseLoggingEnabled;
+
+    private static final int DURATION = 10_000;
+    private static final int DURATION_SCREEN_TOGGLE = 2000;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        if (!WifiFeature.isWifiSupported(getContext())) {
+            // skip the test if WiFi is not supported
+            return;
+        }
+        mWifiManager = getContext().getSystemService(WifiManager.class);
+        assertThat(mWifiManager).isNotNull();
+
+        // turn on verbose logging for tests
+        mWasVerboseLoggingEnabled = ShellIdentityUtils.invokeWithShellPermissions(
+                () -> mWifiManager.isVerboseLoggingEnabled());
+        ShellIdentityUtils.invokeWithShellPermissions(
+                () -> mWifiManager.setVerboseLoggingEnabled(true));
+
+        if (!mWifiManager.isWifiEnabled()) setWifiEnabled(true);
+        mUiDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
+        turnScreenOn();
+        PollingCheck.check("Wifi not enabled", DURATION, () -> mWifiManager.isWifiEnabled());
+        List<WifiConfiguration> savedNetworks = ShellIdentityUtils.invokeWithShellPermissions(
+                () -> mWifiManager.getConfiguredNetworks());
+        assertFalse("Need at least one saved network", savedNetworks.isEmpty());
+        // Wait for wifi is to be connected
+        PollingCheck.check(
+                "Wifi not connected",
+                DURATION,
+                () -> mWifiManager.getConnectionInfo().getNetworkId() != -1);
+        assertThat(mWifiManager.getConnectionInfo().getNetworkId()).isNotEqualTo(-1);
+    }
+
+    @Override
+    protected void tearDown() throws Exception {
+        if (!WifiFeature.isWifiSupported(getContext())) {
+            // skip the test if WiFi is not supported
+            super.tearDown();
+            return;
+        }
+        if (!mWifiManager.isWifiEnabled()) setWifiEnabled(true);
+        turnScreenOff();
+        ShellIdentityUtils.invokeWithShellPermissions(
+                () -> mWifiManager.setVerboseLoggingEnabled(mWasVerboseLoggingEnabled));
+        super.tearDown();
+    }
+
+    private void setWifiEnabled(boolean enable) throws Exception {
+        // now trigger the change using shell commands.
+        SystemUtil.runShellCommand("svc wifi " + (enable ? "enable" : "disable"));
+    }
+
+    private void turnScreenOn() throws Exception {
+        mUiDevice.executeShellCommand("input keyevent KEYCODE_WAKEUP");
+        mUiDevice.executeShellCommand("wm dismiss-keyguard");
+        // Since the screen on/off intent is ordered, they will not be sent right now.
+        Thread.sleep(DURATION_SCREEN_TOGGLE);
+    }
+
+    private void turnScreenOff() throws Exception {
+        mUiDevice.executeShellCommand("input keyevent KEYCODE_SLEEP");
+    }
+
+    private static class TestUsabilityStatsListener implements
+            WifiManager.OnWifiUsabilityStatsListener {
+        private final CountDownLatch mCountDownLatch;
+        public int seqNum;
+        public boolean isSameBssidAndFre;
+        public WifiUsabilityStatsEntry statsEntry;
+
+        TestUsabilityStatsListener(CountDownLatch countDownLatch) {
+            mCountDownLatch = countDownLatch;
+        }
+
+        @Override
+        public void onWifiUsabilityStats(int seqNum, boolean isSameBssidAndFreq,
+                WifiUsabilityStatsEntry statsEntry) {
+            this.seqNum = seqNum;
+            this.isSameBssidAndFre = isSameBssidAndFreq;
+            this.statsEntry = statsEntry;
+            mCountDownLatch.countDown();
+        }
+    }
+
+    /**
+     * Tests the {@link android.net.wifi.WifiUsabilityStatsEntry} retrieved from
+     * {@link WifiManager.OnWifiUsabilityStatsListener}.
+     */
+    public void testWifiUsabilityStatsEntry() throws Exception {
+        if (!WifiFeature.isWifiSupported(getContext())) {
+            // skip the test if WiFi is not supported
+            return;
+        }
+        CountDownLatch countDownLatch = new CountDownLatch(1);
+        UiAutomation uiAutomation = InstrumentationRegistry.getInstrumentation().getUiAutomation();
+        TestUsabilityStatsListener usabilityStatsListener =
+                new TestUsabilityStatsListener(countDownLatch);
+        try {
+            uiAutomation.adoptShellPermissionIdentity();
+            mWifiManager.addOnWifiUsabilityStatsListener(
+                    Executors.newSingleThreadExecutor(), usabilityStatsListener);
+            // Wait for new usability stats (while connected & screen on this is triggered
+            // by platform periodically).
+            assertThat(countDownLatch.await(DURATION, TimeUnit.MILLISECONDS)).isTrue();
+
+            assertThat(usabilityStatsListener.statsEntry).isNotNull();
+            WifiUsabilityStatsEntry statsEntry = usabilityStatsListener.statsEntry;
+
+            assertThat(statsEntry.getTimeStampMillis()).isGreaterThan(0L);
+            assertThat(statsEntry.getRssi()).isLessThan(0);
+            assertThat(statsEntry.getLinkSpeedMbps()).isGreaterThan(0);
+            assertThat(statsEntry.getTotalTxSuccess()).isGreaterThan(0L);
+            assertThat(statsEntry.getTotalTxRetries()).isAtLeast(0L);
+            assertThat(statsEntry.getTotalTxBad()).isAtLeast(0L);
+            assertThat(statsEntry.getTotalRxSuccess()).isAtLeast(0L);
+            assertThat(statsEntry.getTotalRadioOnTimeMillis()).isGreaterThan(0L);
+            assertThat(statsEntry.getTotalRadioTxTimeMillis()).isGreaterThan(0L);
+            assertThat(statsEntry.getTotalRadioRxTimeMillis()).isGreaterThan(0L);
+            assertThat(statsEntry.getTotalScanTimeMillis()).isGreaterThan(0L);
+            assertThat(statsEntry.getTotalNanScanTimeMillis()).isAtLeast(0L);
+            assertThat(statsEntry.getTotalBackgroundScanTimeMillis()).isAtLeast(0L);
+            assertThat(statsEntry.getTotalRoamScanTimeMillis()).isAtLeast(0L);
+            assertThat(statsEntry.getTotalPnoScanTimeMillis()).isAtLeast(0L);
+            assertThat(statsEntry.getTotalHotspot2ScanTimeMillis()).isAtLeast(0L);
+            assertThat(statsEntry.getTotalCcaBusyFreqTimeMillis()).isAtLeast(0L);
+            assertThat(statsEntry.getTotalRadioOnTimeMillis()).isGreaterThan(0L);
+            assertThat(statsEntry.getTotalBeaconRx()).isGreaterThan(0L);
+            assertThat(statsEntry.getProbeStatusSinceLastUpdate())
+                    .isAnyOf(PROBE_STATUS_SUCCESS,
+                            PROBE_STATUS_FAILURE,
+                            PROBE_STATUS_NO_PROBE,
+                            PROBE_STATUS_UNKNOWN);
+            // -1 is default value for some of these fields if they're not available.
+            assertThat(statsEntry.getProbeElapsedTimeSinceLastUpdateMillis()).isAtLeast(-1);
+            assertThat(statsEntry.getProbeMcsRateSinceLastUpdate()).isAtLeast(-1);
+            assertThat(statsEntry.getRxLinkSpeedMbps()).isAtLeast(-1);
+            // no longer populated, return default value.
+            assertThat(statsEntry.getCellularDataNetworkType())
+                    .isAnyOf(TelephonyManager.NETWORK_TYPE_UNKNOWN,
+                            TelephonyManager.NETWORK_TYPE_GPRS,
+                            TelephonyManager.NETWORK_TYPE_EDGE,
+                            TelephonyManager.NETWORK_TYPE_UMTS,
+                            TelephonyManager.NETWORK_TYPE_CDMA,
+                            TelephonyManager.NETWORK_TYPE_EVDO_0,
+                            TelephonyManager.NETWORK_TYPE_EVDO_A,
+                            TelephonyManager.NETWORK_TYPE_1xRTT,
+                            TelephonyManager.NETWORK_TYPE_HSDPA,
+                            TelephonyManager.NETWORK_TYPE_HSUPA,
+                            TelephonyManager.NETWORK_TYPE_HSPA,
+                            TelephonyManager.NETWORK_TYPE_IDEN,
+                            TelephonyManager.NETWORK_TYPE_EVDO_B,
+                            TelephonyManager.NETWORK_TYPE_LTE,
+                            TelephonyManager.NETWORK_TYPE_EHRPD,
+                            TelephonyManager.NETWORK_TYPE_HSPAP,
+                            TelephonyManager.NETWORK_TYPE_GSM,
+                            TelephonyManager.NETWORK_TYPE_TD_SCDMA,
+                            TelephonyManager.NETWORK_TYPE_IWLAN,
+                            TelephonyManager.NETWORK_TYPE_NR);
+            assertThat(statsEntry.getCellularSignalStrengthDbm()).isAtMost(0);
+            assertThat(statsEntry.getCellularSignalStrengthDb()).isAtMost(0);
+            assertThat(statsEntry.isSameRegisteredCell()).isFalse();
+        } finally {
+            mWifiManager.removeOnWifiUsabilityStatsListener(usabilityStatsListener);
+            uiAutomation.dropShellPermissionIdentity();
+        }
+    }
+
+    /**
+     * Tests the {@link android.net.wifi.WifiManager#updateWifiUsabilityScore(int, int, int)}
+     */
+    public void testUpdateWifiUsabilityScore() throws Exception {
+        if (!WifiFeature.isWifiSupported(getContext())) {
+            // skip the test if WiFi is not supported
+            return;
+        }
+        UiAutomation uiAutomation = InstrumentationRegistry.getInstrumentation().getUiAutomation();
+        try {
+            uiAutomation.adoptShellPermissionIdentity();
+            // update scoring with dummy values.
+            mWifiManager.updateWifiUsabilityScore(0, 50, 50);
+        } finally {
+            uiAutomation.dropShellPermissionIdentity();
+        }
+    }
+
+    private static class TestConnectedNetworkScorer implements
+            WifiManager.WifiConnectedNetworkScorer {
+        private CountDownLatch mCountDownLatch;
+        public int startSessionId;
+        public int stopSessionId;
+        public WifiManager.ScoreUpdateObserver scoreUpdateObserver;
+
+        TestConnectedNetworkScorer(CountDownLatch countDownLatch) {
+            mCountDownLatch = countDownLatch;
+        }
+
+        @Override
+        public void onStart(int sessionId) {
+            synchronized (mCountDownLatch) {
+                this.startSessionId = sessionId;
+                mCountDownLatch.countDown();
+            }
+        }
+
+        @Override
+        public void onStop(int sessionId) {
+            synchronized (mCountDownLatch) {
+                this.stopSessionId = sessionId;
+                mCountDownLatch.countDown();
+            }
+        }
+
+        @Override
+        public void onSetScoreUpdateObserver(WifiManager.ScoreUpdateObserver observerImpl) {
+            this.scoreUpdateObserver = observerImpl;
+        }
+
+        public void resetCountDownLatch(CountDownLatch countDownLatch) {
+            synchronized (mCountDownLatch) {
+                mCountDownLatch = countDownLatch;
+            }
+        }
+    }
+
+    /**
+     * Tests the {@link android.net.wifi.WifiConnectedNetworkScorer} interface.
+     *
+     * Note: We could write more interesting test cases (if the device has a mobile connection), but
+     * that would make the test flaky. The default network/route selection on the device is not just
+     * controlled by the wifi scorer input, but also based on params which are controlled by
+     * other parts of the platform (likely in connectivity service) and hence will behave
+     * differently on OEM devices.
+     */
+    public void testSetWifiConnectedNetworkScorer() throws Exception {
+        if (!WifiFeature.isWifiSupported(getContext())) {
+            // skip the test if WiFi is not supported
+            return;
+        }
+        CountDownLatch countDownLatchScorer = new CountDownLatch(1);
+        CountDownLatch countDownLatchUsabilityStats = new CountDownLatch(1);
+        UiAutomation uiAutomation = InstrumentationRegistry.getInstrumentation().getUiAutomation();
+        TestConnectedNetworkScorer connectedNetworkScorer =
+                new TestConnectedNetworkScorer(countDownLatchScorer);
+        TestUsabilityStatsListener usabilityStatsListener =
+                new TestUsabilityStatsListener(countDownLatchUsabilityStats);
+        try {
+            uiAutomation.adoptShellPermissionIdentity();
+            mWifiManager.setWifiConnectedNetworkScorer(
+                    Executors.newSingleThreadExecutor(), connectedNetworkScorer);
+            // Since we're already connected, wait for onStart to be invoked.
+            assertThat(countDownLatchScorer.await(DURATION, TimeUnit.MILLISECONDS)).isTrue();
+
+            assertThat(connectedNetworkScorer.startSessionId).isAtLeast(0);
+            assertThat(connectedNetworkScorer.scoreUpdateObserver).isNotNull();
+            WifiManager.ScoreUpdateObserver scoreUpdateObserver =
+                    connectedNetworkScorer.scoreUpdateObserver;
+
+            // Now trigger a dummy score update.
+            scoreUpdateObserver.notifyScoreUpdate(connectedNetworkScorer.startSessionId, 50);
+
+            // Register the usability listener
+            mWifiManager.addOnWifiUsabilityStatsListener(
+                    Executors.newSingleThreadExecutor(), usabilityStatsListener);
+            // Trigger a usability stats update.
+            scoreUpdateObserver.triggerUpdateOfWifiUsabilityStats(
+                    connectedNetworkScorer.startSessionId);
+            // Ensure that we got the stats update callback.
+            assertThat(countDownLatchUsabilityStats.await(DURATION, TimeUnit.MILLISECONDS))
+                    .isTrue();
+            assertThat(usabilityStatsListener.seqNum).isAtLeast(0);
+
+            // Reset the scorer countdown latch for onStop
+            countDownLatchScorer = new CountDownLatch(1);
+            connectedNetworkScorer.resetCountDownLatch(countDownLatchScorer);
+            // Now disconnect from the network.
+            mWifiManager.disconnect();
+            // Wait for it to be disconnected.
+            PollingCheck.check(
+                    "Wifi not disconnected",
+                    DURATION,
+                    () -> mWifiManager.getConnectionInfo().getNetworkId() == -1);
+            assertThat(mWifiManager.getConnectionInfo().getNetworkId()).isEqualTo(-1);
+
+            // Wait for stop to be invoked and ensure that the session id matches.
+            assertThat(countDownLatchScorer.await(DURATION, TimeUnit.MILLISECONDS)).isTrue();
+            assertThat(connectedNetworkScorer.stopSessionId)
+                    .isEqualTo(connectedNetworkScorer.startSessionId);
+        } finally {
+            mWifiManager.removeOnWifiUsabilityStatsListener(usabilityStatsListener);
+            mWifiManager.clearWifiConnectedNetworkScorer();
+            uiAutomation.dropShellPermissionIdentity();
+        }
+    }
+}
diff --git a/tests/tests/net/src/android/net/wifi/cts/WifiManagerTest.java b/tests/tests/net/src/android/net/wifi/cts/WifiManagerTest.java
index ae5ef75..6613ab9 100644
--- a/tests/tests/net/src/android/net/wifi/cts/WifiManagerTest.java
+++ b/tests/tests/net/src/android/net/wifi/cts/WifiManagerTest.java
@@ -1447,11 +1447,11 @@
      */
     public void testSetGetSoftApConfigurationAndSoftApCapabilityCallback() throws Exception {
         UiAutomation uiAutomation = InstrumentationRegistry.getInstrumentation().getUiAutomation();
+        TestExecutor executor = new TestExecutor();
+        TestSoftApCallback callback = new TestSoftApCallback(mLock);
         try {
             uiAutomation.adoptShellPermissionIdentity();
             turnOffWifiAndTetheredHotspotIfEnabled();
-            TestExecutor executor = new TestExecutor();
-            TestSoftApCallback callback = new TestSoftApCallback(mLock);
             verifyRegisterSoftApCallback(executor, callback);
 
             SoftApConfiguration.Builder softApConfigBuilder = new SoftApConfiguration.Builder()
@@ -1490,6 +1490,7 @@
                 verifySetGetSoftApConfig(softApConfigBuilder.build());
             }
         } finally {
+            mWifiManager.unregisterSoftApCallback(callback);
             uiAutomation.dropShellPermissionIdentity();
         }
     }
@@ -1501,11 +1502,11 @@
     public void testStartTetheredHotspotWithChannelConfigAndSoftApStateAndInfoCallback()
             throws Exception {
         UiAutomation uiAutomation = InstrumentationRegistry.getInstrumentation().getUiAutomation();
+        TestExecutor executor = new TestExecutor();
+        TestSoftApCallback callback = new TestSoftApCallback(mLock);
         try {
             uiAutomation.adoptShellPermissionIdentity();
             turnOffWifiAndTetheredHotspotIfEnabled();
-            TestExecutor executor = new TestExecutor();
-            TestSoftApCallback callback = new TestSoftApCallback(mLock);
             verifyRegisterSoftApCallback(executor, callback);
 
             SoftApConfiguration testSoftApConfig = new SoftApConfiguration.Builder()
@@ -1544,6 +1545,7 @@
                     0 == callback.getCurrentSoftApInfo().getFrequency();
                     });
         } finally {
+            mWifiManager.unregisterSoftApCallback(callback);
             uiAutomation.dropShellPermissionIdentity();
         }
     }
@@ -2164,7 +2166,7 @@
             uiAutomation.adoptShellPermissionIdentity();
             // These below API's only work with privileged permissions (obtained via shell identity
             // for test)
-            savedNetworks = mWifiManager.getConfiguredNetworks();
+            savedNetworks = mWifiManager.getPrivilegedConfiguredNetworks();
 
             mWifiManager.factoryReset();
             // Ensure all the saved networks are removed.
diff --git a/tests/tests/net/src/android/net/wifi/cts/WifiMigrationTest.java b/tests/tests/net/src/android/net/wifi/cts/WifiMigrationTest.java
index 7d94ad3..c74c177 100644
--- a/tests/tests/net/src/android/net/wifi/cts/WifiMigrationTest.java
+++ b/tests/tests/net/src/android/net/wifi/cts/WifiMigrationTest.java
@@ -16,7 +16,10 @@
 
 package android.net.wifi.cts;
 
+import android.app.ActivityManager;
 import android.net.wifi.WifiMigration;
+import android.os.UserHandle;
+import android.os.UserManager;
 import android.test.AndroidTestCase;
 
 public class WifiMigrationTest extends AndroidTestCase {
@@ -75,9 +78,61 @@
      */
     public void testWifiMigrationSettings() throws Exception {
         try {
-            // ensure that this does not crash.
             WifiMigration.loadFromSettings(getContext());
         } catch (Exception ignore) {
         }
     }
+
+    /**
+     * Tests {@link WifiMigration#convertAndRetrieveSharedConfigStoreFile(int)},
+     * {@link WifiMigration#convertAndRetrieveUserConfigStoreFile(int, UserHandle)},
+     * {@link WifiMigration#removeSharedConfigStoreFile(int)} and
+     * {@link WifiMigration#removeUserConfigStoreFile(int, UserHandle)}.
+     */
+    public void testWifiMigrationConfigStore() throws Exception {
+        try {
+            WifiMigration.convertAndRetrieveSharedConfigStoreFile(
+                    WifiMigration.STORE_FILE_SHARED_GENERAL);
+        } catch (Exception ignore) {
+        }
+        try {
+            WifiMigration.convertAndRetrieveSharedConfigStoreFile(
+                    WifiMigration.STORE_FILE_SHARED_SOFTAP);
+        } catch (Exception ignore) {
+        }
+        try {
+            WifiMigration.convertAndRetrieveUserConfigStoreFile(
+                    WifiMigration.STORE_FILE_USER_GENERAL,
+                    UserHandle.of(ActivityManager.getCurrentUser()));
+        } catch (Exception ignore) {
+        }
+        try {
+            WifiMigration.convertAndRetrieveUserConfigStoreFile(
+                    WifiMigration.STORE_FILE_USER_NETWORK_SUGGESTIONS,
+                    UserHandle.of(ActivityManager.getCurrentUser()));
+        } catch (Exception ignore) {
+        }
+        try {
+            WifiMigration.removeSharedConfigStoreFile(
+                    WifiMigration.STORE_FILE_SHARED_GENERAL);
+        } catch (Exception ignore) {
+        }
+        try {
+            WifiMigration.removeSharedConfigStoreFile(
+                    WifiMigration.STORE_FILE_SHARED_SOFTAP);
+        } catch (Exception ignore) {
+        }
+        try {
+            WifiMigration.removeUserConfigStoreFile(
+                    WifiMigration.STORE_FILE_USER_GENERAL,
+                    UserHandle.of(ActivityManager.getCurrentUser()));
+        } catch (Exception ignore) {
+        }
+        try {
+            WifiMigration.removeUserConfigStoreFile(
+                    WifiMigration.STORE_FILE_USER_NETWORK_SUGGESTIONS,
+                    UserHandle.of(ActivityManager.getCurrentUser()));
+        } catch (Exception ignore) {
+        }
+    }
 }
diff --git a/tests/tests/net/src/android/net/wifi/rtt/cts/WifiRttTest.java b/tests/tests/net/src/android/net/wifi/rtt/cts/WifiRttTest.java
index d5361d7..25a90b5 100644
--- a/tests/tests/net/src/android/net/wifi/rtt/cts/WifiRttTest.java
+++ b/tests/tests/net/src/android/net/wifi/rtt/cts/WifiRttTest.java
@@ -21,6 +21,7 @@
 import android.net.wifi.ScanResult;
 import android.net.wifi.rtt.RangingRequest;
 import android.net.wifi.rtt.RangingResult;
+import android.net.wifi.rtt.ResponderLocation;
 import android.platform.test.annotations.AppModeFull;
 
 import com.android.compatibility.common.util.DeviceReportLog;
@@ -163,7 +164,8 @@
 
         // Analyze results
         assertTrue("Wi-Fi RTT failure rate exceeds threshold: FAIL=" + numFailures + ", ITERATIONS="
-                        + NUM_OF_RTT_ITERATIONS + ", AP RSSI=" + testAp.level,
+                        + NUM_OF_RTT_ITERATIONS + ", AP RSSI=" + testAp.level
+                        + ", AP SSID=" + testAp.SSID,
                 numFailures <= NUM_OF_RTT_ITERATIONS * MAX_FAILURE_RATE_PERCENT / 100);
         if (numFailures != NUM_OF_RTT_ITERATIONS) {
             double distanceAvg = distanceSum / (NUM_OF_RTT_ITERATIONS - numFailures);
@@ -213,4 +215,157 @@
                         + "many peers",
                 false);
     }
+
+    /**
+     * Verify ResponderLocation API
+     */
+    public void testRangingToTestApWithResponderLocation() throws InterruptedException {
+        if (!shouldTestWifiRtt(getContext())) {
+            return;
+        }
+        // Scan for IEEE 802.11mc supporting APs
+        ScanResult testAp = scanForTestAp(NUM_SCANS_SEARCHING_FOR_IEEE80211MC_AP);
+        assertTrue(
+                "Cannot find any test APs which support RTT / IEEE 802.11mc - please verify that "
+                        + "your test setup includes them!",
+                testAp != null);
+
+        // Perform RTT operations
+        RangingRequest request = new RangingRequest.Builder().addAccessPoint(testAp).build();
+        ResultCallback callback = new ResultCallback();
+        mWifiRttManager.startRanging(request, mExecutor, callback);
+        assertTrue("Wi-Fi RTT results: no callback! ",
+                callback.waitForCallback());
+
+        RangingResult result = callback.getResults().get(0);
+        assertEquals("Ranging request not success",
+                result.getStatus(), RangingResult.STATUS_SUCCESS);
+        ResponderLocation responderLocation = result.getUnverifiedResponderLocation();
+        assertNotNull("ResponderLocation should not be null", responderLocation);
+        assertTrue("ResponderLocation is not valid", responderLocation.isLciSubelementValid());
+
+        // Check LCI related APIs
+        int exceptionCount = 0;
+        int apiCount = 0;
+        try {
+            apiCount++;
+            responderLocation.getLatitudeUncertainty();
+        } catch (IllegalStateException e) {
+            exceptionCount++;
+        }
+        try {
+            apiCount++;
+            responderLocation.getLatitude();
+        } catch (IllegalStateException e) {
+            exceptionCount++;
+        }
+        try {
+            apiCount++;
+            responderLocation.getLongitudeUncertainty();
+        } catch (IllegalStateException e) {
+            exceptionCount++;
+        }
+        try {
+            apiCount++;
+            responderLocation.getLongitude();
+        } catch (IllegalStateException e) {
+            exceptionCount++;
+        }
+        try {
+            apiCount++;
+            responderLocation.getAltitudeType();
+        } catch (IllegalStateException e) {
+            exceptionCount++;
+        }
+        try {
+            apiCount++;
+            responderLocation.getAltitudeUncertainty();
+        } catch (IllegalStateException e) {
+            exceptionCount++;
+        }
+        try {
+            apiCount++;
+            responderLocation.getAltitude();
+        } catch (IllegalStateException e) {
+            exceptionCount++;
+        }
+        try {
+            apiCount++;
+            responderLocation.getDatum();
+        } catch (IllegalStateException e) {
+            exceptionCount++;
+        }
+        try {
+            apiCount++;
+            responderLocation.getRegisteredLocationAgreementIndication();
+        } catch (IllegalStateException e) {
+            exceptionCount++;
+        }
+        try {
+            apiCount++;
+            responderLocation.getLciVersion();
+        } catch (IllegalStateException e) {
+            exceptionCount++;
+        }
+        try {
+            apiCount++;
+            assertNotNull(responderLocation.toLocation());
+        } catch (IllegalStateException e) {
+            exceptionCount++;
+        }
+        // If LCI is not valid, all APIs should throw exception, otherwise no exception.
+        assertEquals("Exception number should equal to API number",
+                responderLocation.isLciSubelementValid()? 0 : apiCount, exceptionCount);
+
+        // Verify ZaxisSubelement APIs
+        apiCount = 0;
+        exceptionCount = 0;
+
+        try {
+            apiCount++;
+            responderLocation.getExpectedToMove();
+        } catch (IllegalStateException e) {
+            exceptionCount++;
+        }
+
+        try {
+            apiCount++;
+            responderLocation.getFloorNumber();
+        } catch (IllegalStateException e) {
+            exceptionCount++;
+        }
+
+        try {
+            apiCount++;
+            responderLocation.getHeightAboveFloorMeters();
+        } catch (IllegalStateException e) {
+            exceptionCount++;
+        }
+
+        try {
+            apiCount++;
+            responderLocation.getHeightAboveFloorUncertaintyMeters();
+        } catch (IllegalStateException e) {
+            exceptionCount++;
+        }
+        // If Zaxis is not valid, all APIs should throw exception, otherwise no exception.
+        assertEquals("Exception number should equal to API number",
+                responderLocation.isZaxisSubelementValid() ? 0 : apiCount, exceptionCount);
+        // Verify civic location
+        if (responderLocation.toCivicLocationAddress() == null) {
+            assertNull(responderLocation.toCivicLocationSparseArray());
+        } else {
+            assertNotNull(responderLocation.toCivicLocationSparseArray());
+        }
+        // Verify map image
+        if (responderLocation.getMapImageUri() == null) {
+            assertNull(responderLocation.getMapImageMimeType());
+        } else {
+            assertNotNull(responderLocation.getMapImageMimeType());
+        }
+        boolean extraInfoOnAssociationIndication =
+                responderLocation.getExtraInfoOnAssociationIndication();
+        assertNotNull("ColocatedBSSID list should be nonNull",
+                responderLocation.getColocatedBssids());
+    }
 }
diff --git a/tests/tests/netpermission/internetpermission/Android.bp b/tests/tests/netpermission/internetpermission/Android.bp
index e5f83c0..526f84c 100644
--- a/tests/tests/netpermission/internetpermission/Android.bp
+++ b/tests/tests/netpermission/internetpermission/Android.bp
@@ -24,6 +24,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 
diff --git a/tests/tests/netpermission/updatestatspermission/Android.bp b/tests/tests/netpermission/updatestatspermission/Android.bp
index db6b3f2..79f51c5 100644
--- a/tests/tests/netpermission/updatestatspermission/Android.bp
+++ b/tests/tests/netpermission/updatestatspermission/Android.bp
@@ -24,6 +24,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 
diff --git a/tests/tests/netsecpolicy/usescleartexttraffic-false/Android.bp b/tests/tests/netsecpolicy/usescleartexttraffic-false/Android.bp
index 65218dd..f59a57d 100644
--- a/tests/tests/netsecpolicy/usescleartexttraffic-false/Android.bp
+++ b/tests/tests/netsecpolicy/usescleartexttraffic-false/Android.bp
@@ -32,6 +32,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/tests/tests/netsecpolicy/usescleartexttraffic-true/Android.bp b/tests/tests/netsecpolicy/usescleartexttraffic-true/Android.bp
index 00d0af8..a82a026 100644
--- a/tests/tests/netsecpolicy/usescleartexttraffic-true/Android.bp
+++ b/tests/tests/netsecpolicy/usescleartexttraffic-true/Android.bp
@@ -32,6 +32,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/tests/tests/netsecpolicy/usescleartexttraffic-unspecified/Android.bp b/tests/tests/netsecpolicy/usescleartexttraffic-unspecified/Android.bp
index 945a2ca..97156b3 100644
--- a/tests/tests/netsecpolicy/usescleartexttraffic-unspecified/Android.bp
+++ b/tests/tests/netsecpolicy/usescleartexttraffic-unspecified/Android.bp
@@ -32,6 +32,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "current",
diff --git a/tests/tests/networksecurityconfig/networksecurityconfig-attributes/Android.bp b/tests/tests/networksecurityconfig/networksecurityconfig-attributes/Android.bp
index 021cc36..611048f 100644
--- a/tests/tests/networksecurityconfig/networksecurityconfig-attributes/Android.bp
+++ b/tests/tests/networksecurityconfig/networksecurityconfig-attributes/Android.bp
@@ -32,6 +32,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/tests/networksecurityconfig/networksecurityconfig-basic-domain/Android.bp b/tests/tests/networksecurityconfig/networksecurityconfig-basic-domain/Android.bp
index a0b4ebe..559d3bf 100644
--- a/tests/tests/networksecurityconfig/networksecurityconfig-basic-domain/Android.bp
+++ b/tests/tests/networksecurityconfig/networksecurityconfig-basic-domain/Android.bp
@@ -32,6 +32,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/tests/networksecurityconfig/networksecurityconfig-cleartext-pre-P/Android.bp b/tests/tests/networksecurityconfig/networksecurityconfig-cleartext-pre-P/Android.bp
index d32ea4d..9ebfc22 100644
--- a/tests/tests/networksecurityconfig/networksecurityconfig-cleartext-pre-P/Android.bp
+++ b/tests/tests/networksecurityconfig/networksecurityconfig-cleartext-pre-P/Android.bp
@@ -32,6 +32,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/tests/networksecurityconfig/networksecurityconfig-cleartext/Android.bp b/tests/tests/networksecurityconfig/networksecurityconfig-cleartext/Android.bp
index 46978c4..e981547 100644
--- a/tests/tests/networksecurityconfig/networksecurityconfig-cleartext/Android.bp
+++ b/tests/tests/networksecurityconfig/networksecurityconfig-cleartext/Android.bp
@@ -32,6 +32,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/tests/networksecurityconfig/networksecurityconfig-debug-basic-disabled/Android.bp b/tests/tests/networksecurityconfig/networksecurityconfig-debug-basic-disabled/Android.bp
index e0e810f..557f32a 100644
--- a/tests/tests/networksecurityconfig/networksecurityconfig-debug-basic-disabled/Android.bp
+++ b/tests/tests/networksecurityconfig/networksecurityconfig-debug-basic-disabled/Android.bp
@@ -32,6 +32,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/tests/networksecurityconfig/networksecurityconfig-debug-basic-enabled/Android.bp b/tests/tests/networksecurityconfig/networksecurityconfig-debug-basic-enabled/Android.bp
index 68744b8..d4b803c 100644
--- a/tests/tests/networksecurityconfig/networksecurityconfig-debug-basic-enabled/Android.bp
+++ b/tests/tests/networksecurityconfig/networksecurityconfig-debug-basic-enabled/Android.bp
@@ -32,6 +32,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/tests/networksecurityconfig/networksecurityconfig-downloadmanager/Android.bp b/tests/tests/networksecurityconfig/networksecurityconfig-downloadmanager/Android.bp
index f00e1cc..3aae0b2 100644
--- a/tests/tests/networksecurityconfig/networksecurityconfig-downloadmanager/Android.bp
+++ b/tests/tests/networksecurityconfig/networksecurityconfig-downloadmanager/Android.bp
@@ -32,6 +32,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/tests/networksecurityconfig/networksecurityconfig-invalid-pin/Android.bp b/tests/tests/networksecurityconfig/networksecurityconfig-invalid-pin/Android.bp
index d920f6a..70c125a 100644
--- a/tests/tests/networksecurityconfig/networksecurityconfig-invalid-pin/Android.bp
+++ b/tests/tests/networksecurityconfig/networksecurityconfig-invalid-pin/Android.bp
@@ -32,6 +32,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/tests/networksecurityconfig/networksecurityconfig-nested-domains/Android.bp b/tests/tests/networksecurityconfig/networksecurityconfig-nested-domains/Android.bp
index abfa355..d6ff010 100644
--- a/tests/tests/networksecurityconfig/networksecurityconfig-nested-domains/Android.bp
+++ b/tests/tests/networksecurityconfig/networksecurityconfig-nested-domains/Android.bp
@@ -32,6 +32,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/tests/networksecurityconfig/networksecurityconfig-resourcesrc/Android.bp b/tests/tests/networksecurityconfig/networksecurityconfig-resourcesrc/Android.bp
index 35b85e8..238c97e 100644
--- a/tests/tests/networksecurityconfig/networksecurityconfig-resourcesrc/Android.bp
+++ b/tests/tests/networksecurityconfig/networksecurityconfig-resourcesrc/Android.bp
@@ -33,6 +33,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/tests/neuralnetworks/Android.mk b/tests/tests/neuralnetworks/Android.mk
index e6efed7..4b15c9c 100644
--- a/tests/tests/neuralnetworks/Android.mk
+++ b/tests/tests/neuralnetworks/Android.mk
@@ -32,7 +32,7 @@
 LOCAL_CTS_TEST_PACKAGE := android.neuralnetworks
 
 # Tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts mts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 mts general-tests
 
 LOCAL_SDK_VERSION := current
 LOCAL_NDK_STL_VARIANT := c++_static
diff --git a/tests/tests/neuralnetworks/benchmark/Android.mk b/tests/tests/neuralnetworks/benchmark/Android.mk
index d076683..62a9968 100644
--- a/tests/tests/neuralnetworks/benchmark/Android.mk
+++ b/tests/tests/neuralnetworks/benchmark/Android.mk
@@ -27,7 +27,7 @@
 LOCAL_MULTILIB := both
 
 # Tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts mts
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 mts
 
 LOCAL_STATIC_JAVA_LIBRARIES := androidx.test.rules \
     compatibility-device-util-axt ctstestrunner-axt junit NeuralNetworksApiBenchmark_Lib
diff --git a/tests/tests/neuralnetworks/tflite_delegate/Android.mk b/tests/tests/neuralnetworks/tflite_delegate/Android.mk
index 1b6e7b3..dfeb03b 100644
--- a/tests/tests/neuralnetworks/tflite_delegate/Android.mk
+++ b/tests/tests/neuralnetworks/tflite_delegate/Android.mk
@@ -66,7 +66,7 @@
 LOCAL_CTS_TEST_PACKAGE := android.neuralnetworks
 
 # Tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts mts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 mts general-tests
 
 LOCAL_SDK_VERSION := current
 LOCAL_NDK_STL_VARIANT := c++_static
diff --git a/tests/tests/notificationlegacy/notificationlegacy20/Android.bp b/tests/tests/notificationlegacy/notificationlegacy20/Android.bp
index ca611b1..61ed54e 100644
--- a/tests/tests/notificationlegacy/notificationlegacy20/Android.bp
+++ b/tests/tests/notificationlegacy/notificationlegacy20/Android.bp
@@ -31,6 +31,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     min_sdk_version: "20",
diff --git a/tests/tests/notificationlegacy/notificationlegacy27/Android.bp b/tests/tests/notificationlegacy/notificationlegacy27/Android.bp
index 1b1af07..85a5e12 100644
--- a/tests/tests/notificationlegacy/notificationlegacy27/Android.bp
+++ b/tests/tests/notificationlegacy/notificationlegacy27/Android.bp
@@ -31,6 +31,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     min_sdk_version: "27",
diff --git a/tests/tests/notificationlegacy/notificationlegacy28/Android.bp b/tests/tests/notificationlegacy/notificationlegacy28/Android.bp
index 8d4fa9c..bc947fc 100644
--- a/tests/tests/notificationlegacy/notificationlegacy28/Android.bp
+++ b/tests/tests/notificationlegacy/notificationlegacy28/Android.bp
@@ -31,6 +31,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     min_sdk_version: "28",
diff --git a/tests/tests/notificationlegacy/notificationlegacy29/Android.bp b/tests/tests/notificationlegacy/notificationlegacy29/Android.bp
index 72cf122..127f866 100644
--- a/tests/tests/notificationlegacy/notificationlegacy29/Android.bp
+++ b/tests/tests/notificationlegacy/notificationlegacy29/Android.bp
@@ -30,6 +30,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/tests/opengl/Android.bp b/tests/tests/opengl/Android.bp
index e6fee72..bf016fa 100644
--- a/tests/tests/opengl/Android.bp
+++ b/tests/tests/opengl/Android.bp
@@ -49,6 +49,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/openglperf/Android.bp b/tests/tests/openglperf/Android.bp
index 8960491..5bfdd2d 100644
--- a/tests/tests/openglperf/Android.bp
+++ b/tests/tests/openglperf/Android.bp
@@ -36,6 +36,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/os/Android.bp b/tests/tests/os/Android.bp
index 846aa5a..06a78cd 100644
--- a/tests/tests/os/Android.bp
+++ b/tests/tests/os/Android.bp
@@ -46,6 +46,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/tests/os/Android.mk b/tests/tests/os/Android.mk
index 8d3faaf..991db22 100644
--- a/tests/tests/os/Android.mk
+++ b/tests/tests/os/Android.mk
@@ -21,7 +21,7 @@
 LOCAL_MODULE_TAGS := optional
 LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
 # Tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 cts_platform_version_path := cts/tests/tests/os/assets/platform_versions.txt
 cts_platform_version_string := $(shell cat $(cts_platform_version_path))
diff --git a/tests/tests/packageinstaller/adminpackageinstaller/Android.bp b/tests/tests/packageinstaller/adminpackageinstaller/Android.bp
index a3fcdc6..1b55e14 100644
--- a/tests/tests/packageinstaller/adminpackageinstaller/Android.bp
+++ b/tests/tests/packageinstaller/adminpackageinstaller/Android.bp
@@ -28,6 +28,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/packageinstaller/atomicinstall/Android.bp b/tests/tests/packageinstaller/atomicinstall/Android.bp
index 8b24ee5..06f730e 100644
--- a/tests/tests/packageinstaller/atomicinstall/Android.bp
+++ b/tests/tests/packageinstaller/atomicinstall/Android.bp
@@ -29,6 +29,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
         "mts",
     ],
diff --git a/tests/tests/packageinstaller/emptytestapp/Android.bp b/tests/tests/packageinstaller/emptytestapp/Android.bp
index 02168e5..e7511af 100644
--- a/tests/tests/packageinstaller/emptytestapp/Android.bp
+++ b/tests/tests/packageinstaller/emptytestapp/Android.bp
@@ -22,6 +22,7 @@
         "arcts",
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/packageinstaller/install/Android.bp b/tests/tests/packageinstaller/install/Android.bp
index e0d5869..8a5433c 100644
--- a/tests/tests/packageinstaller/install/Android.bp
+++ b/tests/tests/packageinstaller/install/Android.bp
@@ -29,6 +29,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/packageinstaller/nopermission/Android.bp b/tests/tests/packageinstaller/nopermission/Android.bp
index 3755b04..966b349 100644
--- a/tests/tests/packageinstaller/nopermission/Android.bp
+++ b/tests/tests/packageinstaller/nopermission/Android.bp
@@ -38,6 +38,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/packageinstaller/nopermission25/Android.bp b/tests/tests/packageinstaller/nopermission25/Android.bp
index bf397e0..519088c 100644
--- a/tests/tests/packageinstaller/nopermission25/Android.bp
+++ b/tests/tests/packageinstaller/nopermission25/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/packageinstaller/tapjacking/Android.bp b/tests/tests/packageinstaller/tapjacking/Android.bp
index aa286de..a670f7d 100644
--- a/tests/tests/packageinstaller/tapjacking/Android.bp
+++ b/tests/tests/packageinstaller/tapjacking/Android.bp
@@ -28,6 +28,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/packageinstaller/uninstall/Android.bp b/tests/tests/packageinstaller/uninstall/Android.bp
index 5c70bb7..77d0fbc 100644
--- a/tests/tests/packageinstaller/uninstall/Android.bp
+++ b/tests/tests/packageinstaller/uninstall/Android.bp
@@ -27,6 +27,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/permission/Android.bp b/tests/tests/permission/Android.bp
index 06834e5..42cb7c5 100644
--- a/tests/tests/permission/Android.bp
+++ b/tests/tests/permission/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     // Include both the 32 and 64 bit versions
diff --git a/tests/tests/permission/AppThatAccessesCalendarContactsBodySensorCustomPermission/Android.bp b/tests/tests/permission/AppThatAccessesCalendarContactsBodySensorCustomPermission/Android.bp
index 85d952e..8f85889 100644
--- a/tests/tests/permission/AppThatAccessesCalendarContactsBodySensorCustomPermission/Android.bp
+++ b/tests/tests/permission/AppThatAccessesCalendarContactsBodySensorCustomPermission/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/permission/AppThatAccessesLocationOnCommand/Android.bp b/tests/tests/permission/AppThatAccessesLocationOnCommand/Android.bp
index d13442b..821434f 100644
--- a/tests/tests/permission/AppThatAccessesLocationOnCommand/Android.bp
+++ b/tests/tests/permission/AppThatAccessesLocationOnCommand/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     srcs: ["src/**/*.java"],
diff --git a/tests/tests/permission/AppThatDoesNotHaveBgLocationAccess/Android.bp b/tests/tests/permission/AppThatDoesNotHaveBgLocationAccess/Android.bp
index 29f16c0..d2a874b 100644
--- a/tests/tests/permission/AppThatDoesNotHaveBgLocationAccess/Android.bp
+++ b/tests/tests/permission/AppThatDoesNotHaveBgLocationAccess/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/permission/AppThatRequestContactsAndCallLogPermission16/Android.bp b/tests/tests/permission/AppThatRequestContactsAndCallLogPermission16/Android.bp
index 4e661aa..41a8cd8 100644
--- a/tests/tests/permission/AppThatRequestContactsAndCallLogPermission16/Android.bp
+++ b/tests/tests/permission/AppThatRequestContactsAndCallLogPermission16/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/permission/AppThatRequestContactsPermission15/Android.bp b/tests/tests/permission/AppThatRequestContactsPermission15/Android.bp
index 10b3dbf..d0ca719 100644
--- a/tests/tests/permission/AppThatRequestContactsPermission15/Android.bp
+++ b/tests/tests/permission/AppThatRequestContactsPermission15/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/permission/AppThatRequestContactsPermission16/Android.bp b/tests/tests/permission/AppThatRequestContactsPermission16/Android.bp
index df5a1ba..a834f03 100644
--- a/tests/tests/permission/AppThatRequestContactsPermission16/Android.bp
+++ b/tests/tests/permission/AppThatRequestContactsPermission16/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/permission/AppThatRequestLocationAndBackgroundPermission29/Android.bp b/tests/tests/permission/AppThatRequestLocationAndBackgroundPermission29/Android.bp
index cb55252..3413e35 100644
--- a/tests/tests/permission/AppThatRequestLocationAndBackgroundPermission29/Android.bp
+++ b/tests/tests/permission/AppThatRequestLocationAndBackgroundPermission29/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/permission/AppThatRequestLocationPermission22/Android.bp b/tests/tests/permission/AppThatRequestLocationPermission22/Android.bp
index aa9f698..34fb0cc 100644
--- a/tests/tests/permission/AppThatRequestLocationPermission22/Android.bp
+++ b/tests/tests/permission/AppThatRequestLocationPermission22/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/permission/AppThatRequestLocationPermission28/Android.bp b/tests/tests/permission/AppThatRequestLocationPermission28/Android.bp
index 0571e06..2ebb866 100644
--- a/tests/tests/permission/AppThatRequestLocationPermission28/Android.bp
+++ b/tests/tests/permission/AppThatRequestLocationPermission28/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/permission/AppThatRequestLocationPermission29/Android.bp b/tests/tests/permission/AppThatRequestLocationPermission29/Android.bp
index 202e610..3d2cb9b 100644
--- a/tests/tests/permission/AppThatRequestLocationPermission29/Android.bp
+++ b/tests/tests/permission/AppThatRequestLocationPermission29/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/permission/AppThatRequestLocationPermission29v4/Android.bp b/tests/tests/permission/AppThatRequestLocationPermission29v4/Android.bp
index f1a95b7..f11dcdc 100644
--- a/tests/tests/permission/AppThatRequestLocationPermission29v4/Android.bp
+++ b/tests/tests/permission/AppThatRequestLocationPermission29v4/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/permission/AppThatRequestOneTimePermission/Android.bp b/tests/tests/permission/AppThatRequestOneTimePermission/Android.bp
index 8072d47..7674f7a 100644
--- a/tests/tests/permission/AppThatRequestOneTimePermission/Android.bp
+++ b/tests/tests/permission/AppThatRequestOneTimePermission/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "mts",
         "general-tests",
     ],
diff --git a/tests/tests/permission/AppThatRequestPermissionAandB/Android.bp b/tests/tests/permission/AppThatRequestPermissionAandB/Android.bp
index 4e15bf8..19b7dd0 100644
--- a/tests/tests/permission/AppThatRequestPermissionAandB/Android.bp
+++ b/tests/tests/permission/AppThatRequestPermissionAandB/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     srcs: ["src/**/*.java"],
diff --git a/tests/tests/permission/AppThatRequestPermissionAandC/Android.bp b/tests/tests/permission/AppThatRequestPermissionAandC/Android.bp
index aad4101..97af65c 100644
--- a/tests/tests/permission/AppThatRequestPermissionAandC/Android.bp
+++ b/tests/tests/permission/AppThatRequestPermissionAandC/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     srcs: ["src/**/*.java"],
diff --git a/tests/tests/permission/AppThatRequestStoragePermission28/Android.bp b/tests/tests/permission/AppThatRequestStoragePermission28/Android.bp
index 91fcec3..d0b4992 100644
--- a/tests/tests/permission/AppThatRequestStoragePermission28/Android.bp
+++ b/tests/tests/permission/AppThatRequestStoragePermission28/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/permission/AppThatRequestStoragePermission29/Android.bp b/tests/tests/permission/AppThatRequestStoragePermission29/Android.bp
index 343de69..9c2bf0d 100644
--- a/tests/tests/permission/AppThatRequestStoragePermission29/Android.bp
+++ b/tests/tests/permission/AppThatRequestStoragePermission29/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/permission/AppThatRunsRationaleTests/Android.bp b/tests/tests/permission/AppThatRunsRationaleTests/Android.bp
index 7251822..802cd64 100644
--- a/tests/tests/permission/AppThatRunsRationaleTests/Android.bp
+++ b/tests/tests/permission/AppThatRunsRationaleTests/Android.bp
@@ -24,6 +24,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 
diff --git a/tests/tests/permission/AppWithSharedUidThatRequestLocationPermission28/Android.bp b/tests/tests/permission/AppWithSharedUidThatRequestLocationPermission28/Android.bp
index 425c06b..42c698c 100644
--- a/tests/tests/permission/AppWithSharedUidThatRequestLocationPermission28/Android.bp
+++ b/tests/tests/permission/AppWithSharedUidThatRequestLocationPermission28/Android.bp
@@ -24,6 +24,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/permission/AppWithSharedUidThatRequestLocationPermission29/Android.bp b/tests/tests/permission/AppWithSharedUidThatRequestLocationPermission29/Android.bp
index 54bc02b..1d0a640 100644
--- a/tests/tests/permission/AppWithSharedUidThatRequestLocationPermission29/Android.bp
+++ b/tests/tests/permission/AppWithSharedUidThatRequestLocationPermission29/Android.bp
@@ -24,6 +24,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/permission/AppWithSharedUidThatRequestsNoPermissions/Android.bp b/tests/tests/permission/AppWithSharedUidThatRequestsNoPermissions/Android.bp
index 87354b8..16d446a 100644
--- a/tests/tests/permission/AppWithSharedUidThatRequestsNoPermissions/Android.bp
+++ b/tests/tests/permission/AppWithSharedUidThatRequestsNoPermissions/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/permission/AppWithSharedUidThatRequestsPermissions/Android.bp b/tests/tests/permission/AppWithSharedUidThatRequestsPermissions/Android.bp
index e3a47a7..ace7aa8 100644
--- a/tests/tests/permission/AppWithSharedUidThatRequestsPermissions/Android.bp
+++ b/tests/tests/permission/AppWithSharedUidThatRequestsPermissions/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/permission/sdk28/Android.bp b/tests/tests/permission/sdk28/Android.bp
index d6460fc..c5fe5cb 100644
--- a/tests/tests/permission/sdk28/Android.bp
+++ b/tests/tests/permission/sdk28/Android.bp
@@ -24,6 +24,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/permission/telephony/Android.bp b/tests/tests/permission/telephony/Android.bp
index 370e44f..eb8eff1 100644
--- a/tests/tests/permission/telephony/Android.bp
+++ b/tests/tests/permission/telephony/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     // Include both the 32 and 64 bit versions
diff --git a/tests/tests/permission/testapps/RevokePermissionWhenRemoved/AdversarialPermissionDefinerApp/Android.bp b/tests/tests/permission/testapps/RevokePermissionWhenRemoved/AdversarialPermissionDefinerApp/Android.bp
index 3710ad3..25183be 100644
--- a/tests/tests/permission/testapps/RevokePermissionWhenRemoved/AdversarialPermissionDefinerApp/Android.bp
+++ b/tests/tests/permission/testapps/RevokePermissionWhenRemoved/AdversarialPermissionDefinerApp/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     certificate: ":cts-testkey1",
diff --git a/tests/tests/permission/testapps/RevokePermissionWhenRemoved/AdversarialPermissionUserApp/Android.bp b/tests/tests/permission/testapps/RevokePermissionWhenRemoved/AdversarialPermissionUserApp/Android.bp
index 6c996b4..4e07973 100644
--- a/tests/tests/permission/testapps/RevokePermissionWhenRemoved/AdversarialPermissionUserApp/Android.bp
+++ b/tests/tests/permission/testapps/RevokePermissionWhenRemoved/AdversarialPermissionUserApp/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     certificate: ":cts-testkey2",
diff --git a/tests/tests/permission/testapps/RevokePermissionWhenRemoved/RuntimePermissionDefinerApp/Android.bp b/tests/tests/permission/testapps/RevokePermissionWhenRemoved/RuntimePermissionDefinerApp/Android.bp
index 42c25e6..4329a64 100644
--- a/tests/tests/permission/testapps/RevokePermissionWhenRemoved/RuntimePermissionDefinerApp/Android.bp
+++ b/tests/tests/permission/testapps/RevokePermissionWhenRemoved/RuntimePermissionDefinerApp/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     certificate: ":cts-testkey1",
diff --git a/tests/tests/permission/testapps/RevokePermissionWhenRemoved/RuntimePermissionUserApp/Android.bp b/tests/tests/permission/testapps/RevokePermissionWhenRemoved/RuntimePermissionUserApp/Android.bp
index cb77194..c089206 100644
--- a/tests/tests/permission/testapps/RevokePermissionWhenRemoved/RuntimePermissionUserApp/Android.bp
+++ b/tests/tests/permission/testapps/RevokePermissionWhenRemoved/RuntimePermissionUserApp/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     certificate: ":cts-testkey2",
diff --git a/tests/tests/permission/testapps/RevokePermissionWhenRemoved/VictimPermissionDefinerApp/Android.bp b/tests/tests/permission/testapps/RevokePermissionWhenRemoved/VictimPermissionDefinerApp/Android.bp
index 8c87819..f06fa0a 100644
--- a/tests/tests/permission/testapps/RevokePermissionWhenRemoved/VictimPermissionDefinerApp/Android.bp
+++ b/tests/tests/permission/testapps/RevokePermissionWhenRemoved/VictimPermissionDefinerApp/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     certificate: ":cts-testkey1",
diff --git a/tests/tests/permission2/Android.bp b/tests/tests/permission2/Android.bp
index cb92e53..d4cd9f5 100644
--- a/tests/tests/permission2/Android.bp
+++ b/tests/tests/permission2/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     libs: ["android.test.base.stubs"],
diff --git a/tests/tests/permission2/res/raw/android_manifest.xml b/tests/tests/permission2/res/raw/android_manifest.xml
index 7dcf97b..6faec22 100644
--- a/tests/tests/permission2/res/raw/android_manifest.xml
+++ b/tests/tests/permission2/res/raw/android_manifest.xml
@@ -727,7 +727,7 @@
     <!-- ====================================================================== -->
     <eat-comment />
 
-    <!-- @SystemApi Allows accessing the messages on ICC
+    <!-- Allows accessing the messages on ICC
          @hide Used internally. -->
     <permission android:name="android.permission.ACCESS_MESSAGES_ON_ICC"
         android:protectionLevel="signature" />
@@ -3433,11 +3433,24 @@
     <permission android:name="android.permission.BIND_AUGMENTED_AUTOFILL_SERVICE"
                 android:protectionLevel="signature" />
 
-    <!-- Must be required by hotword enrollment application,
-         to ensure that only the system can interact with it.
-         @hide <p>Not for use by third-party applications.</p> -->
+    <!-- Must be required by a {@link android.service.voice.VoiceInteractionService} implementation
+      to enroll its own sound models. This is a more restrictive permission than the higher-level
+      permission KEYPHRASE_ENROLLMENT_APPLICATION. For the caller to enroll sound models with
+      this permission, it must hold the permission and be the active VoiceInteractionService in
+      the system.
+      {@see Settings.Secure.VOICE_INTERACTION_SERVICE}
+      @hide -->
     <permission android:name="android.permission.MANAGE_VOICE_KEYPHRASES"
-        android:protectionLevel="signature|privileged" />
+                android:protectionLevel="signature|privileged" />
+
+    <!-- Must be required by a keyphrase enrollment application, to enroll sound models. This is
+         treated as a higher-level permission to MANAGE_VOICE_KEYPHRASES as a caller can enroll
+         sound models at any time. This permission should be reserved for system enrollment
+         applications detected by {@link android.hardware.soundtrigger.KeyphraseEnrollmentInfo}
+         only.
+         @hide <p>Not for use by third-party applications.</p> -->
+    <permission android:name="android.permission.KEYPHRASE_ENROLLMENT_APPLICATION"
+                android:protectionLevel="signature|privileged" />
 
     <!-- Must be required by a {@link com.android.media.remotedisplay.RemoteDisplayProvider},
          to ensure that only the system can bind to it.
diff --git a/tests/tests/permission3/Android.bp b/tests/tests/permission3/Android.bp
index 96b8370..a9d56b7 100644
--- a/tests/tests/permission3/Android.bp
+++ b/tests/tests/permission3/Android.bp
@@ -42,6 +42,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
         "mts",
     ],
diff --git a/tests/tests/preference/Android.bp b/tests/tests/preference/Android.bp
index ec71dee..b20a965 100644
--- a/tests/tests/preference/Android.bp
+++ b/tests/tests/preference/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 
diff --git a/tests/tests/print/Android.bp b/tests/tests/print/Android.bp
index a1919a7..5bcc08b 100644
--- a/tests/tests/print/Android.bp
+++ b/tests/tests/print/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     srcs: ["src/**/*.java"],
diff --git a/tests/tests/print/ExternalPrintService/Android.bp b/tests/tests/print/ExternalPrintService/Android.bp
index c610d00..44825fa 100644
--- a/tests/tests/print/ExternalPrintService/Android.bp
+++ b/tests/tests/print/ExternalPrintService/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     srcs: ["src/**/*.java"],
diff --git a/tests/tests/proto/Android.bp b/tests/tests/proto/Android.bp
index cd57f37..d8a7ad5 100644
--- a/tests/tests/proto/Android.bp
+++ b/tests/tests/proto/Android.bp
@@ -26,6 +26,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     //sdl_version: "current",
diff --git a/tests/tests/provider/Android.bp b/tests/tests/provider/Android.bp
index 4ac3f91..7c94cba 100644
--- a/tests/tests/provider/Android.bp
+++ b/tests/tests/provider/Android.bp
@@ -8,6 +8,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 
diff --git a/tests/tests/provider/preconditions/Android.bp b/tests/tests/provider/preconditions/Android.bp
index 78b7457..88875ef 100644
--- a/tests/tests/provider/preconditions/Android.bp
+++ b/tests/tests/provider/preconditions/Android.bp
@@ -10,6 +10,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     host_supported: true,
diff --git a/tests/tests/renderscript/Android.mk b/tests/tests/renderscript/Android.mk
index 4fdfcc4..1a732cd 100644
--- a/tests/tests/renderscript/Android.mk
+++ b/tests/tests/renderscript/Android.mk
@@ -41,7 +41,7 @@
 LOCAL_SDK_VERSION := current
 
 # Tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 include $(BUILD_CTS_PACKAGE)
 include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/tests/tests/renderscriptlegacy/Android.mk b/tests/tests/renderscriptlegacy/Android.mk
index f18a04d..3ed5cec 100644
--- a/tests/tests/renderscriptlegacy/Android.mk
+++ b/tests/tests/renderscriptlegacy/Android.mk
@@ -31,6 +31,6 @@
 LOCAL_SDK_VERSION := 19
 
 # Tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 include $(BUILD_CTS_PACKAGE)
diff --git a/tests/tests/resolverservice/Android.bp b/tests/tests/resolverservice/Android.bp
index 36bac13..41b16dc 100644
--- a/tests/tests/resolverservice/Android.bp
+++ b/tests/tests/resolverservice/Android.bp
@@ -29,6 +29,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ]
 }
diff --git a/tests/tests/role/Android.bp b/tests/tests/role/Android.bp
index 7a97ed0..c90b468 100644
--- a/tests/tests/role/Android.bp
+++ b/tests/tests/role/Android.bp
@@ -30,6 +30,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
         "mts",
     ],
diff --git a/tests/tests/rsblas/Android.mk b/tests/tests/rsblas/Android.mk
index df16f46..afceea5 100644
--- a/tests/tests/rsblas/Android.mk
+++ b/tests/tests/rsblas/Android.mk
@@ -36,7 +36,7 @@
 LOCAL_RENDERSCRIPT_FLAGS := -Wno-error=deprecated-declarations
 
 # Tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 LOCAL_SDK_VERSION := current
 
diff --git a/tests/tests/rscpp/Android.mk b/tests/tests/rscpp/Android.mk
index bb6dddc..d849f19 100644
--- a/tests/tests/rscpp/Android.mk
+++ b/tests/tests/rscpp/Android.mk
@@ -37,7 +37,7 @@
 LOCAL_SDK_VERSION := current
 
 # Tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 include $(BUILD_CTS_PACKAGE)
 include $(LOCAL_PATH)/librscpptest/Android.mk
diff --git a/tests/tests/sax/Android.bp b/tests/tests/sax/Android.bp
index 37e9357..e614b7d 100644
--- a/tests/tests/sax/Android.bp
+++ b/tests/tests/sax/Android.bp
@@ -23,6 +23,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/secure_element/access_control/AccessControlApp1/Android.bp b/tests/tests/secure_element/access_control/AccessControlApp1/Android.bp
index 41da980..7cad561 100644
--- a/tests/tests/secure_element/access_control/AccessControlApp1/Android.bp
+++ b/tests/tests/secure_element/access_control/AccessControlApp1/Android.bp
@@ -8,6 +8,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
         "cts-instant",
     ],
@@ -37,6 +38,10 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
+    dist: {
+        targets: ["cts"],
+    },
 }
diff --git a/tests/tests/secure_element/access_control/AccessControlApp2/Android.bp b/tests/tests/secure_element/access_control/AccessControlApp2/Android.bp
index d8b0df3..670cd95 100644
--- a/tests/tests/secure_element/access_control/AccessControlApp2/Android.bp
+++ b/tests/tests/secure_element/access_control/AccessControlApp2/Android.bp
@@ -8,6 +8,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
         "cts-instant",
     ],
@@ -37,6 +38,10 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
+    dist: {
+        targets: ["cts"],
+    },
 }
diff --git a/tests/tests/secure_element/access_control/AccessControlApp3/Android.bp b/tests/tests/secure_element/access_control/AccessControlApp3/Android.bp
index 2ab7b5b..c76a479 100644
--- a/tests/tests/secure_element/access_control/AccessControlApp3/Android.bp
+++ b/tests/tests/secure_element/access_control/AccessControlApp3/Android.bp
@@ -8,6 +8,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
         "cts-instant",
     ],
@@ -37,6 +38,10 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
+    dist: {
+        targets: ["cts"],
+    },
 }
diff --git a/tests/tests/secure_element/omapi/Android.bp b/tests/tests/secure_element/omapi/Android.bp
index a18aba1..1a4b322 100644
--- a/tests/tests/secure_element/omapi/Android.bp
+++ b/tests/tests/secure_element/omapi/Android.bp
@@ -29,6 +29,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/security/Android.bp b/tests/tests/security/Android.bp
index ad92d02..24cae6c 100644
--- a/tests/tests/security/Android.bp
+++ b/tests/tests/security/Android.bp
@@ -60,6 +60,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
         "sts",
     ],
diff --git a/tests/tests/selinux/selinuxEphemeral/Android.bp b/tests/tests/selinux/selinuxEphemeral/Android.bp
index c3e6459..c0586eb 100644
--- a/tests/tests/selinux/selinuxEphemeral/Android.bp
+++ b/tests/tests/selinux/selinuxEphemeral/Android.bp
@@ -45,6 +45,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     min_sdk_version: "21",
diff --git a/tests/tests/selinux/selinuxTargetSdk25/Android.bp b/tests/tests/selinux/selinuxTargetSdk25/Android.bp
index f48a8a0..50f505e 100644
--- a/tests/tests/selinux/selinuxTargetSdk25/Android.bp
+++ b/tests/tests/selinux/selinuxTargetSdk25/Android.bp
@@ -45,6 +45,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     min_sdk_version: "21",
diff --git a/tests/tests/selinux/selinuxTargetSdk27/Android.bp b/tests/tests/selinux/selinuxTargetSdk27/Android.bp
index 0187bbd..5a33427 100644
--- a/tests/tests/selinux/selinuxTargetSdk27/Android.bp
+++ b/tests/tests/selinux/selinuxTargetSdk27/Android.bp
@@ -45,6 +45,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     min_sdk_version: "21",
diff --git a/tests/tests/selinux/selinuxTargetSdk28/Android.bp b/tests/tests/selinux/selinuxTargetSdk28/Android.bp
index f4af775..d8176f0 100644
--- a/tests/tests/selinux/selinuxTargetSdk28/Android.bp
+++ b/tests/tests/selinux/selinuxTargetSdk28/Android.bp
@@ -45,6 +45,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     min_sdk_version: "21",
diff --git a/tests/tests/selinux/selinuxTargetSdk29/Android.bp b/tests/tests/selinux/selinuxTargetSdk29/Android.bp
index bd62d00..7cfd635 100644
--- a/tests/tests/selinux/selinuxTargetSdk29/Android.bp
+++ b/tests/tests/selinux/selinuxTargetSdk29/Android.bp
@@ -45,6 +45,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     min_sdk_version: "21",
diff --git a/tests/tests/selinux/selinuxTargetSdkCurrent/Android.bp b/tests/tests/selinux/selinuxTargetSdkCurrent/Android.bp
index cbe4b8b..7f2560e 100644
--- a/tests/tests/selinux/selinuxTargetSdkCurrent/Android.bp
+++ b/tests/tests/selinux/selinuxTargetSdkCurrent/Android.bp
@@ -45,6 +45,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     min_sdk_version: "21",
diff --git a/tests/tests/sharesheet/Android.bp b/tests/tests/sharesheet/Android.bp
index 5d1f060..4c3c8d8 100644
--- a/tests/tests/sharesheet/Android.bp
+++ b/tests/tests/sharesheet/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 
diff --git a/tests/tests/sharesheet/packages/Android.bp b/tests/tests/sharesheet/packages/Android.bp
index 12a6838..2693b62 100644
--- a/tests/tests/sharesheet/packages/Android.bp
+++ b/tests/tests/sharesheet/packages/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     aaptflags: [
@@ -37,6 +38,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     aaptflags: [
@@ -54,6 +56,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     aaptflags: [
diff --git a/tests/tests/shortcutmanager/Android.bp b/tests/tests/shortcutmanager/Android.bp
index 6b45de3..eebaabb 100644
--- a/tests/tests/shortcutmanager/Android.bp
+++ b/tests/tests/shortcutmanager/Android.bp
@@ -26,6 +26,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
@@ -42,6 +43,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     aaptflags: [
@@ -63,6 +65,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     aaptflags: [
@@ -84,6 +87,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     aaptflags: [
@@ -104,6 +108,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     aaptflags: [
@@ -124,6 +129,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     aaptflags: [
@@ -146,6 +152,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     aaptflags: [
@@ -168,6 +175,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     aaptflags: [
@@ -189,6 +197,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     aaptflags: [
@@ -208,6 +217,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     srcs: ["throttling/src/**/*.java"],
diff --git a/tests/tests/simpleperf/Android.mk b/tests/tests/simpleperf/Android.mk
index 3798883..0443bcc 100644
--- a/tests/tests/simpleperf/Android.mk
+++ b/tests/tests/simpleperf/Android.mk
@@ -44,7 +44,7 @@
 LOCAL_COMPATIBILITY_SUPPORT_FILES := \
   $(foreach file, $(simpleperf_testdata_files), $(simpleperf_src_path)/$(file):CtsSimpleperfTestCases_$(file))
 
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 LOCAL_CTS_TEST_PACKAGE := android.simpleperf
 include $(LLVM_DEVICE_BUILD_MK)
diff --git a/tests/tests/simpleperf/CtsSimpleperfDebuggableApp/Android.bp b/tests/tests/simpleperf/CtsSimpleperfDebuggableApp/Android.bp
index 9513ecd..1ab0642 100644
--- a/tests/tests/simpleperf/CtsSimpleperfDebuggableApp/Android.bp
+++ b/tests/tests/simpleperf/CtsSimpleperfDebuggableApp/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/simpleperf/CtsSimpleperfProfileableApp/Android.bp b/tests/tests/simpleperf/CtsSimpleperfProfileableApp/Android.bp
index fef633c..2a39b80 100644
--- a/tests/tests/simpleperf/CtsSimpleperfProfileableApp/Android.bp
+++ b/tests/tests/simpleperf/CtsSimpleperfProfileableApp/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/slice/Android.bp b/tests/tests/slice/Android.bp
index d3b8083..5280acb 100644
--- a/tests/tests/slice/Android.bp
+++ b/tests/tests/slice/Android.bp
@@ -20,6 +20,7 @@
         "cts",
         "sts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     libs: ["android.test.runner.stubs"],
diff --git a/tests/tests/speech/Android.bp b/tests/tests/speech/Android.bp
index ee5d124..2f1bb24 100644
--- a/tests/tests/speech/Android.bp
+++ b/tests/tests/speech/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     // Needed for testing O API
diff --git a/tests/tests/syncmanager/Android.bp b/tests/tests/syncmanager/Android.bp
index e14b629..75b108b 100644
--- a/tests/tests/syncmanager/Android.bp
+++ b/tests/tests/syncmanager/Android.bp
@@ -32,6 +32,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/tests/syncmanager/apps/Android.bp b/tests/tests/syncmanager/apps/Android.bp
index 9dfe862..a18cdd3 100644
--- a/tests/tests/syncmanager/apps/Android.bp
+++ b/tests/tests/syncmanager/apps/Android.bp
@@ -29,6 +29,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     manifest: "app1/AndroidManifest.xml",
@@ -52,6 +53,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     manifest: "app2/AndroidManifest.xml",
diff --git a/tests/tests/systemintents/Android.bp b/tests/tests/systemintents/Android.bp
index c9aaf72..3e3ee17 100644
--- a/tests/tests/systemintents/Android.bp
+++ b/tests/tests/systemintents/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     srcs: ["src/**/*.java"],
diff --git a/tests/tests/systemui/Android.bp b/tests/tests/systemui/Android.bp
index b9ab2ac..95ea45b 100644
--- a/tests/tests/systemui/Android.bp
+++ b/tests/tests/systemui/Android.bp
@@ -18,6 +18,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     libs: ["android.test.runner.stubs"],
diff --git a/tests/tests/tagging/disabled/Android.bp b/tests/tests/tagging/disabled/Android.bp
index 078261b..32fae32 100644
--- a/tests/tests/tagging/disabled/Android.bp
+++ b/tests/tests/tagging/disabled/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     static_libs: [
diff --git a/tests/tests/tagging/enabled/Android.bp b/tests/tests/tagging/enabled/Android.bp
index 0571e42..a00ebd5 100644
--- a/tests/tests/tagging/enabled/Android.bp
+++ b/tests/tests/tagging/enabled/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     static_libs: [
diff --git a/tests/tests/telecom/Android.bp b/tests/tests/telecom/Android.bp
index b574332..cdb9f58 100644
--- a/tests/tests/telecom/Android.bp
+++ b/tests/tests/telecom/Android.bp
@@ -74,6 +74,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/telecom/Api29InCallServiceTestApp/Android.bp b/tests/tests/telecom/Api29InCallServiceTestApp/Android.bp
index 5bd3351..e14b35d 100644
--- a/tests/tests/telecom/Api29InCallServiceTestApp/Android.bp
+++ b/tests/tests/telecom/Api29InCallServiceTestApp/Android.bp
@@ -29,5 +29,6 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
     ],
 }
diff --git a/tests/tests/telecom/CallRedirectionServiceTestApp/Android.bp b/tests/tests/telecom/CallRedirectionServiceTestApp/Android.bp
index 822534f..7f88c99 100644
--- a/tests/tests/telecom/CallRedirectionServiceTestApp/Android.bp
+++ b/tests/tests/telecom/CallRedirectionServiceTestApp/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
     ],
     optimize: {
         enabled: false,
diff --git a/tests/tests/telecom/CallScreeningServiceTestApp/Android.bp b/tests/tests/telecom/CallScreeningServiceTestApp/Android.bp
index a8ff58c..21e9e02 100644
--- a/tests/tests/telecom/CallScreeningServiceTestApp/Android.bp
+++ b/tests/tests/telecom/CallScreeningServiceTestApp/Android.bp
@@ -27,6 +27,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
     ],
     optimize: {
         enabled: false,
diff --git a/tests/tests/telecom/CarModeTestApp/Android.bp b/tests/tests/telecom/CarModeTestApp/Android.bp
index 84afa03..51c19be 100644
--- a/tests/tests/telecom/CarModeTestApp/Android.bp
+++ b/tests/tests/telecom/CarModeTestApp/Android.bp
@@ -29,5 +29,6 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
     ],
 }
diff --git a/tests/tests/telecom/CarModeTestAppTwo/Android.bp b/tests/tests/telecom/CarModeTestAppTwo/Android.bp
index fee7641..74dd1f6 100644
--- a/tests/tests/telecom/CarModeTestAppTwo/Android.bp
+++ b/tests/tests/telecom/CarModeTestAppTwo/Android.bp
@@ -30,5 +30,6 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
     ],
 }
diff --git a/tests/tests/telecom/ThirdPtyInCallServiceTestApp/Android.bp b/tests/tests/telecom/ThirdPtyInCallServiceTestApp/Android.bp
index 92a3c42..496818d 100644
--- a/tests/tests/telecom/ThirdPtyInCallServiceTestApp/Android.bp
+++ b/tests/tests/telecom/ThirdPtyInCallServiceTestApp/Android.bp
@@ -29,5 +29,6 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
     ],
 }
diff --git a/tests/tests/telecom/src/android/telecom/cts/BaseTelecomTestWithMockServices.java b/tests/tests/telecom/src/android/telecom/cts/BaseTelecomTestWithMockServices.java
index 7371b09..f191473 100644
--- a/tests/tests/telecom/src/android/telecom/cts/BaseTelecomTestWithMockServices.java
+++ b/tests/tests/telecom/src/android/telecom/cts/BaseTelecomTestWithMockServices.java
@@ -1519,6 +1519,42 @@
         );
     }
 
+    void assertIsOutgoingCallPermitted(boolean isPermitted, PhoneAccountHandle handle) {
+        waitUntilConditionIsTrueOrTimeout(
+                new Condition() {
+                    @Override
+                    public Object expected() {
+                        return isPermitted;
+                    }
+
+                    @Override
+                    public Object actual() {
+                        return mTelecomManager.isOutgoingCallPermitted(handle);
+                    }
+                },
+                WAIT_FOR_STATE_CHANGE_TIMEOUT_MS,
+                "Expected isOutgoingCallPermitted to be " + isPermitted
+        );
+    }
+
+    void assertIsIncomingCallPermitted(boolean isPermitted, PhoneAccountHandle handle) {
+        waitUntilConditionIsTrueOrTimeout(
+                new Condition() {
+                    @Override
+                    public Object expected() {
+                        return isPermitted;
+                    }
+
+                    @Override
+                    public Object actual() {
+                        return mTelecomManager.isIncomingCallPermitted(handle);
+                    }
+                },
+                WAIT_FOR_STATE_CHANGE_TIMEOUT_MS,
+                "Expected isIncomingCallPermitted to be " + isPermitted
+        );
+    }
+
     void assertIsInCall(boolean isIncall) {
         waitUntilConditionIsTrueOrTimeout(
                 new Condition() {
diff --git a/tests/tests/telecom/src/android/telecom/cts/SelfManagedConnectionServiceTest.java b/tests/tests/telecom/src/android/telecom/cts/SelfManagedConnectionServiceTest.java
index 24135ce..875122b 100644
--- a/tests/tests/telecom/src/android/telecom/cts/SelfManagedConnectionServiceTest.java
+++ b/tests/tests/telecom/src/android/telecom/cts/SelfManagedConnectionServiceTest.java
@@ -291,7 +291,7 @@
         assertTrue(CtsSelfManagedConnectionService.getConnectionService().waitForUpdate(
                 CtsSelfManagedConnectionService.CREATE_OUTGOING_CONNECTION_FAILED_LOCK));
 
-        assertFalse(mTelecomManager.isOutgoingCallPermitted(TestUtils.TEST_SELF_MANAGED_HANDLE_1));
+        assertIsOutgoingCallPermitted(false, TestUtils.TEST_SELF_MANAGED_HANDLE_1);
     }
 
     /**
@@ -304,13 +304,13 @@
         if (!mShouldTestTelecom) {
             return;
         }
-        assertTrue(mTelecomManager.isOutgoingCallPermitted(TestUtils.TEST_SELF_MANAGED_HANDLE_1));
+        assertIsOutgoingCallPermitted(true, TestUtils.TEST_SELF_MANAGED_HANDLE_1);
         placeAndVerifyOutgoingCall(TestUtils.TEST_SELF_MANAGED_HANDLE_1, TEST_ADDRESS_1);
 
-        assertTrue(mTelecomManager.isOutgoingCallPermitted(TestUtils.TEST_SELF_MANAGED_HANDLE_2));
+        assertIsOutgoingCallPermitted(true, TestUtils.TEST_SELF_MANAGED_HANDLE_2);
         placeAndVerifyOutgoingCall(TestUtils.TEST_SELF_MANAGED_HANDLE_2, TEST_ADDRESS_3);
 
-        assertTrue(mTelecomManager.isOutgoingCallPermitted(TestUtils.TEST_SELF_MANAGED_HANDLE_3));
+        assertIsOutgoingCallPermitted(true, TestUtils.TEST_SELF_MANAGED_HANDLE_3);
         placeAndVerifyOutgoingCall(TestUtils.TEST_SELF_MANAGED_HANDLE_3, TEST_ADDRESS_4);
     }
 
@@ -482,7 +482,7 @@
         // Setup content observer to notify us when we call log entry is added.
         CountDownLatch callLogEntryLatch = getCallLogEntryLatch();
 
-        assertTrue(mTelecomManager.isIncomingCallPermitted(TestUtils.TEST_SELF_MANAGED_HANDLE_2));
+        assertIsIncomingCallPermitted(true, TestUtils.TEST_SELF_MANAGED_HANDLE_2);
         // Attempt to create a new incoming call for the other PhoneAccount; it should succeed.
         TestUtils.addIncomingCall(getInstrumentation(), mTelecomManager,
                 TestUtils.TEST_SELF_MANAGED_HANDLE_2, TEST_ADDRESS_2);
@@ -501,7 +501,7 @@
             return;
         }
 
-        assertTrue(mTelecomManager.isIncomingCallPermitted(TestUtils.TEST_SELF_MANAGED_HANDLE_1));
+        assertIsIncomingCallPermitted(true, TestUtils.TEST_SELF_MANAGED_HANDLE_1);
         // Attempt to create a new Incoming self-managed call
         TestUtils.addIncomingCall(getInstrumentation(), mTelecomManager,
                 TestUtils.TEST_SELF_MANAGED_HANDLE_1, TEST_ADDRESS_1);
@@ -560,7 +560,7 @@
         SelfManagedConnection connection = TestUtils.waitForAndGetConnection(TEST_ADDRESS_1);
         connection.setRinging();
 
-        assertFalse(mTelecomManager.isIncomingCallPermitted(TestUtils.TEST_SELF_MANAGED_HANDLE_1));
+        assertIsIncomingCallPermitted(false, TestUtils.TEST_SELF_MANAGED_HANDLE_1);
         // WHEN create a new incoming call for the the same PhoneAccount
         TestUtils.addIncomingCall(getInstrumentation(), mTelecomManager,
                 TestUtils.TEST_SELF_MANAGED_HANDLE_1, TEST_ADDRESS_1);
@@ -585,8 +585,7 @@
         for (int ix = 0; ix < 10; ix++) {
             Uri address = Uri.fromParts("sip", "test" + ix + "@test.com", null);
             // Create an ongoing call in the first self-managed PhoneAccount.
-            assertTrue(mTelecomManager.isOutgoingCallPermitted(
-                    TestUtils.TEST_SELF_MANAGED_HANDLE_1));
+            assertIsOutgoingCallPermitted(true, TestUtils.TEST_SELF_MANAGED_HANDLE_1);
             TestUtils.placeOutgoingCall(getInstrumentation(), mTelecomManager,
                     TestUtils.TEST_SELF_MANAGED_HANDLE_1, address);
             SelfManagedConnection connection = TestUtils.waitForAndGetConnection(address);
@@ -595,7 +594,7 @@
         }
 
         // Try adding an 11th.  It should fail to be created.
-        assertFalse(mTelecomManager.isIncomingCallPermitted(TestUtils.TEST_SELF_MANAGED_HANDLE_1));
+        assertIsIncomingCallPermitted(false, TestUtils.TEST_SELF_MANAGED_HANDLE_1);
         TestUtils.addIncomingCall(getInstrumentation(), mTelecomManager,
                 TestUtils.TEST_SELF_MANAGED_HANDLE_1, TEST_ADDRESS_2);
         assertTrue("Expected onCreateIncomingConnectionFailed callback",
diff --git a/tests/tests/telecom2/Android.bp b/tests/tests/telecom2/Android.bp
index b80bb47..833e1b3 100644
--- a/tests/tests/telecom2/Android.bp
+++ b/tests/tests/telecom2/Android.bp
@@ -36,6 +36,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/telecom3/Android.bp b/tests/tests/telecom3/Android.bp
index bfc580f..d190d9f 100644
--- a/tests/tests/telecom3/Android.bp
+++ b/tests/tests/telecom3/Android.bp
@@ -33,6 +33,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/telephony/current/Android.bp b/tests/tests/telephony/current/Android.bp
index 4b542bb..dc95b2d 100644
--- a/tests/tests/telephony/current/Android.bp
+++ b/tests/tests/telephony/current/Android.bp
@@ -61,6 +61,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "mts",
         "general-tests",
     ],
diff --git a/tests/tests/telephony/current/EmbmsMiddlewareTestApp/Android.bp b/tests/tests/telephony/current/EmbmsMiddlewareTestApp/Android.bp
index 000b499..64b82f7 100644
--- a/tests/tests/telephony/current/EmbmsMiddlewareTestApp/Android.bp
+++ b/tests/tests/telephony/current/EmbmsMiddlewareTestApp/Android.bp
@@ -29,5 +29,6 @@
         "cts",
         "mts",
         "vts",
+        "vts10",
     ],
 }
diff --git a/tests/tests/telephony/current/LocationAccessingApp/Android.bp b/tests/tests/telephony/current/LocationAccessingApp/Android.bp
index da9ffce..d6290f3 100644
--- a/tests/tests/telephony/current/LocationAccessingApp/Android.bp
+++ b/tests/tests/telephony/current/LocationAccessingApp/Android.bp
@@ -11,6 +11,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "mts",
     ],
 }
diff --git a/tests/tests/telephony/current/LocationAccessingApp/sdk28/Android.bp b/tests/tests/telephony/current/LocationAccessingApp/sdk28/Android.bp
index ed6d2a6..3e6ba9d 100644
--- a/tests/tests/telephony/current/LocationAccessingApp/sdk28/Android.bp
+++ b/tests/tests/telephony/current/LocationAccessingApp/sdk28/Android.bp
@@ -8,6 +8,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "mts",
     ],
 }
diff --git a/tests/tests/telephony/current/TestExternalImsServiceApp/Android.bp b/tests/tests/telephony/current/TestExternalImsServiceApp/Android.bp
index 50c7e92..189b69b 100644
--- a/tests/tests/telephony/current/TestExternalImsServiceApp/Android.bp
+++ b/tests/tests/telephony/current/TestExternalImsServiceApp/Android.bp
@@ -16,6 +16,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "mts",
     ]
 }
diff --git a/tests/tests/telephony/current/preconditions/Android.bp b/tests/tests/telephony/current/preconditions/Android.bp
index b9119dd..dd1f702 100644
--- a/tests/tests/telephony/current/preconditions/Android.bp
+++ b/tests/tests/telephony/current/preconditions/Android.bp
@@ -27,6 +27,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "mts",
         "general-tests",
     ],
diff --git a/tests/tests/telephony/current/preconditions/app/Android.bp b/tests/tests/telephony/current/preconditions/app/Android.bp
index b0943d9..95eb61e 100644
--- a/tests/tests/telephony/current/preconditions/app/Android.bp
+++ b/tests/tests/telephony/current/preconditions/app/Android.bp
@@ -27,6 +27,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "mts",
         "general-tests",
     ],
diff --git a/tests/tests/telephony/current/src/android/telephony/cts/SmsManagerTest.java b/tests/tests/telephony/current/src/android/telephony/cts/SmsManagerTest.java
index 256e133..ac55221 100755
--- a/tests/tests/telephony/current/src/android/telephony/cts/SmsManagerTest.java
+++ b/tests/tests/telephony/current/src/android/telephony/cts/SmsManagerTest.java
@@ -684,7 +684,7 @@
                     deliveryIntents, fakeMessageId);
         } else if (mContext.getOpPackageName() != null) {
             getSmsManager().sendMultipartTextMessage(destAddr, null, parts, sentIntents,
-                    deliveryIntents, mContext.getOpPackageName());
+                    deliveryIntents, mContext.getOpPackageName(), mContext.getAttributionTag());
         } else {
             getSmsManager().sendMultipartTextMessage(destAddr, null, parts, sentIntents,
                     deliveryIntents);
diff --git a/tests/tests/telephony/sdk28/Android.bp b/tests/tests/telephony/sdk28/Android.bp
index b4c27d1..380deef 100644
--- a/tests/tests/telephony/sdk28/Android.bp
+++ b/tests/tests/telephony/sdk28/Android.bp
@@ -27,6 +27,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "mts",
         "general-tests",
     ],
diff --git a/tests/tests/telephony2/Android.bp b/tests/tests/telephony2/Android.bp
index df50f48..9ec2ebb 100644
--- a/tests/tests/telephony2/Android.bp
+++ b/tests/tests/telephony2/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "mts",
         "general-tests",
     ],
diff --git a/tests/tests/telephony3/Android.bp b/tests/tests/telephony3/Android.bp
index 9b11dbd..8a7a57d 100644
--- a/tests/tests/telephony3/Android.bp
+++ b/tests/tests/telephony3/Android.bp
@@ -24,6 +24,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "mts",
         "general-tests",
     ],
diff --git a/tests/tests/telephony4/Android.bp b/tests/tests/telephony4/Android.bp
index 79fad95..1d5bc6d 100644
--- a/tests/tests/telephony4/Android.bp
+++ b/tests/tests/telephony4/Android.bp
@@ -31,6 +31,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "mts",
         "general-tests",
     ],
diff --git a/tests/tests/telephonyprovider/Android.bp b/tests/tests/telephonyprovider/Android.bp
index 0f1c728..5a92200 100644
--- a/tests/tests/telephonyprovider/Android.bp
+++ b/tests/tests/telephonyprovider/Android.bp
@@ -36,6 +36,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/tests/text/Android.bp b/tests/tests/text/Android.bp
index 2909777..d0f7d07 100644
--- a/tests/tests/text/Android.bp
+++ b/tests/tests/text/Android.bp
@@ -48,6 +48,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
         "mts",
     ],
diff --git a/tests/tests/textclassifier/Android.bp b/tests/tests/textclassifier/Android.bp
index 4dca90d..7d30018 100644
--- a/tests/tests/textclassifier/Android.bp
+++ b/tests/tests/textclassifier/Android.bp
@@ -21,6 +21,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
         "mts"
     ],
diff --git a/tests/tests/textclassifier/QueryTextClassifierServiceActivity/Android.bp b/tests/tests/textclassifier/QueryTextClassifierServiceActivity/Android.bp
index 0260db4..999e66e 100644
--- a/tests/tests/textclassifier/QueryTextClassifierServiceActivity/Android.bp
+++ b/tests/tests/textclassifier/QueryTextClassifierServiceActivity/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
         "mts"
     ],
diff --git a/tests/tests/theme/Android.bp b/tests/tests/theme/Android.bp
index cb18ee9..f6f1d8e 100644
--- a/tests/tests/theme/Android.bp
+++ b/tests/tests/theme/Android.bp
@@ -28,6 +28,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 
diff --git a/tests/tests/toast/Android.bp b/tests/tests/toast/Android.bp
index 69dcf15..45dfb4d 100644
--- a/tests/tests/toast/Android.bp
+++ b/tests/tests/toast/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     static_libs: [
diff --git a/tests/tests/toastlegacy/Android.bp b/tests/tests/toastlegacy/Android.bp
index f2fac30..5f45400 100644
--- a/tests/tests/toastlegacy/Android.bp
+++ b/tests/tests/toastlegacy/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     static_libs: [
diff --git a/tests/tests/tools/processors/view_inspector/Android.bp b/tests/tests/tools/processors/view_inspector/Android.bp
index 65c78cc..ab6bc84 100644
--- a/tests/tests/tools/processors/view_inspector/Android.bp
+++ b/tests/tests/tools/processors/view_inspector/Android.bp
@@ -29,6 +29,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ]
 }
diff --git a/tests/tests/transition/Android.bp b/tests/tests/transition/Android.bp
index 569cb17..9ad3efd 100644
--- a/tests/tests/transition/Android.bp
+++ b/tests/tests/transition/Android.bp
@@ -33,6 +33,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 
diff --git a/tests/tests/tv/Android.bp b/tests/tests/tv/Android.bp
index f24cd1e..9dbf53f 100644
--- a/tests/tests/tv/Android.bp
+++ b/tests/tests/tv/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     srcs: ["src/**/*.java"],
diff --git a/tests/tests/tv/AndroidManifest.xml b/tests/tests/tv/AndroidManifest.xml
index ce93d9a..8cb2b79 100644
--- a/tests/tests/tv/AndroidManifest.xml
+++ b/tests/tests/tv/AndroidManifest.xml
@@ -21,9 +21,6 @@
 
     <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
     <uses-permission android:name="android.permission.INJECT_EVENTS" />
-    <uses-permission android:name="android.permission.ACCESS_TV_DESCRAMBLER" />
-    <uses-permission android:name="android.permission.ACCESS_TV_TUNER" />
-    <uses-permission android:name="android.permission.TUNER_RESOURCE_ACCESS" />
 
     <uses-permission android:name="com.android.providers.tv.permission.WRITE_EPG_DATA" />
 
diff --git a/tests/tests/tv/src/android/media/tv/tuner/cts/TunerTest.java b/tests/tests/tv/src/android/media/tv/tuner/cts/TunerTest.java
index 4eaafe3..de1c04c 100644
--- a/tests/tests/tv/src/android/media/tv/tuner/cts/TunerTest.java
+++ b/tests/tests/tv/src/android/media/tv/tuner/cts/TunerTest.java
@@ -41,6 +41,8 @@
     @Before
     public void setUp() throws Exception {
         mContext = InstrumentationRegistry.getTargetContext();
+        InstrumentationRegistry
+                .getInstrumentation().getUiAutomation().adoptShellPermissionIdentity();
     }
 
     @After
@@ -50,7 +52,7 @@
     @Test
     public void testTunerConstructor() throws Exception {
         if (!hasTuner()) return;
-        Tuner tuner = new Tuner(mContext, "123", 1);
+        Tuner tuner = new Tuner(mContext, null, 100);
         assertNotNull(tuner);
     }
 
diff --git a/tests/tests/uiautomation/Android.bp b/tests/tests/uiautomation/Android.bp
index 6a0ba7c..9a63d86 100644
--- a/tests/tests/uiautomation/Android.bp
+++ b/tests/tests/uiautomation/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     static_libs: [
diff --git a/tests/tests/uidisolation/Android.bp b/tests/tests/uidisolation/Android.bp
index f202038..376656a 100644
--- a/tests/tests/uidisolation/Android.bp
+++ b/tests/tests/uidisolation/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     static_libs: [
diff --git a/tests/tests/uirendering/Android.bp b/tests/tests/uirendering/Android.bp
index fcfe440..b2c2d02 100644
--- a/tests/tests/uirendering/Android.bp
+++ b/tests/tests/uirendering/Android.bp
@@ -34,6 +34,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/uirendering27/Android.bp b/tests/tests/uirendering27/Android.bp
index c0e84f9..c94a3bd 100644
--- a/tests/tests/uirendering27/Android.bp
+++ b/tests/tests/uirendering27/Android.bp
@@ -35,6 +35,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tests/tests/util/Android.bp b/tests/tests/util/Android.bp
index f84238d..75f0abf 100644
--- a/tests/tests/util/Android.bp
+++ b/tests/tests/util/Android.bp
@@ -19,6 +19,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     libs: ["android.test.runner.stubs"],
diff --git a/tests/tests/view/Android.mk b/tests/tests/view/Android.mk
index bb4a657..62cdfc5 100644
--- a/tests/tests/view/Android.mk
+++ b/tests/tests/view/Android.mk
@@ -22,7 +22,7 @@
 LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS)
 
 # Tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 LOCAL_MULTILIB := both
 
diff --git a/tests/tests/view/sdk28/Android.bp b/tests/tests/view/sdk28/Android.bp
index 1056390..67414c3 100644
--- a/tests/tests/view/sdk28/Android.bp
+++ b/tests/tests/view/sdk28/Android.bp
@@ -20,6 +20,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 
diff --git a/tests/tests/view/surfacevalidator/Android.mk b/tests/tests/view/surfacevalidator/Android.mk
index fbb6894..973d374 100644
--- a/tests/tests/view/surfacevalidator/Android.mk
+++ b/tests/tests/view/surfacevalidator/Android.mk
@@ -25,6 +25,7 @@
 
 LOCAL_STATIC_JAVA_LIBRARIES := \
     androidx.test.rules \
+    cts-wm-util \
     ub-uiautomator
 
 include $(BUILD_STATIC_JAVA_LIBRARY)
diff --git a/tests/tests/view/surfacevalidator/src/android/view/cts/surfacevalidator/CapturedActivity.java b/tests/tests/view/surfacevalidator/src/android/view/cts/surfacevalidator/CapturedActivity.java
index 4d6bab5..de47fbf 100644
--- a/tests/tests/view/surfacevalidator/src/android/view/cts/surfacevalidator/CapturedActivity.java
+++ b/tests/tests/view/surfacevalidator/src/android/view/cts/surfacevalidator/CapturedActivity.java
@@ -36,6 +36,8 @@
 import android.os.Handler;
 import android.os.IBinder;
 import android.os.Looper;
+import android.provider.Settings;
+import android.server.wm.settings.SettingsSession;
 import android.support.test.uiautomator.By;
 import android.support.test.uiautomator.UiDevice;
 import android.support.test.uiautomator.UiObject2;
@@ -66,6 +68,16 @@
         public final SparseArray<Bitmap> failures = new SparseArray<>();
     }
 
+    private static class ImmersiveConfirmationSetting extends SettingsSession<String> {
+        ImmersiveConfirmationSetting() {
+            super(Settings.Secure.getUriFor(
+                Settings.Secure.IMMERSIVE_MODE_CONFIRMATIONS),
+                Settings.Secure::getString, Settings.Secure::putString);
+        }
+    }
+
+    private ImmersiveConfirmationSetting mSettingsSession;
+
     private static final String TAG = "CapturedActivity";
     private static final int PERMISSION_CODE = 1;
     private MediaProjectionManager mProjectionManager;
@@ -100,6 +112,9 @@
         // longer duration to capture the expected number of frames
         mOnEmbedded = packageManager.hasSystemFeature(PackageManager.FEATURE_EMBEDDED);
 
+        mSettingsSession = new ImmersiveConfirmationSetting();
+        mSettingsSession.set("confirmed");
+
         getWindow().getDecorView().setSystemUiVisibility(
                 View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN);
         // Set the NULL pointer icon so that it won't obstruct the captured image.
@@ -115,6 +130,12 @@
         bindMediaProjectionService();
     }
 
+    @Override
+    public void onStop() {
+        super.onStop();
+        mSettingsSession.close();
+    }
+
     public void dismissPermissionDialog() {
         // The permission dialog will be auto-opened by the activity - find it and accept
         UiDevice uiDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
diff --git a/tests/tests/voiceinteraction/Android.bp b/tests/tests/voiceinteraction/Android.bp
index bd04cce..f4befdf 100644
--- a/tests/tests/voiceinteraction/Android.bp
+++ b/tests/tests/voiceinteraction/Android.bp
@@ -26,6 +26,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/tests/voiceinteraction/service/Android.bp b/tests/tests/voiceinteraction/service/Android.bp
index 2ceeef8..d7b52c6 100644
--- a/tests/tests/voiceinteraction/service/Android.bp
+++ b/tests/tests/voiceinteraction/service/Android.bp
@@ -25,6 +25,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/tests/voiceinteraction/testapp/Android.bp b/tests/tests/voiceinteraction/testapp/Android.bp
index a7123f2..16a1043 100644
--- a/tests/tests/voiceinteraction/testapp/Android.bp
+++ b/tests/tests/voiceinteraction/testapp/Android.bp
@@ -22,6 +22,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
\ No newline at end of file
diff --git a/tests/tests/voicesettings/Android.bp b/tests/tests/voicesettings/Android.bp
index cf3daad..d55ad5a 100644
--- a/tests/tests/voicesettings/Android.bp
+++ b/tests/tests/voicesettings/Android.bp
@@ -28,6 +28,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/tests/voicesettings/service/Android.bp b/tests/tests/voicesettings/service/Android.bp
index 8550417..6faabc7 100644
--- a/tests/tests/voicesettings/service/Android.bp
+++ b/tests/tests/voicesettings/service/Android.bp
@@ -24,6 +24,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/tests/webkit/Android.bp b/tests/tests/webkit/Android.bp
index afe9f2b..17b6ce6 100644
--- a/tests/tests/webkit/Android.bp
+++ b/tests/tests/webkit/Android.bp
@@ -32,6 +32,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     // uncomment when dalvik.annotation.Test* are removed or part of SDK
diff --git a/tests/tests/widget/Android.bp b/tests/tests/widget/Android.bp
index 30d6516..c451103 100644
--- a/tests/tests/widget/Android.bp
+++ b/tests/tests/widget/Android.bp
@@ -41,6 +41,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 
diff --git a/tests/tests/widget/AndroidTest.xml b/tests/tests/widget/AndroidTest.xml
index 47b120b..9bdb58f 100644
--- a/tests/tests/widget/AndroidTest.xml
+++ b/tests/tests/widget/AndroidTest.xml
@@ -22,6 +22,7 @@
     <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
         <option name="cleanup-apks" value="true" />
         <option name="test-file-name" value="CtsWidgetTestCases.apk" />
+        <option name="test-file-name" value="CtsWidgetApp.apk" />
     </target_preparer>
     <test class="com.android.tradefed.testtype.AndroidJUnitTest" >
         <option name="package" value="android.widget.cts" />
diff --git a/tests/tests/widget/app/Android.bp b/tests/tests/widget/app/Android.bp
new file mode 100644
index 0000000..819e4a0
--- /dev/null
+++ b/tests/tests/widget/app/Android.bp
@@ -0,0 +1,30 @@
+// Copyright (C) 2020 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+android_test {
+    name: "CtsWidgetApp",
+    defaults: ["cts_support_defaults"],
+    sdk_version: "test_current",
+    srcs: [
+        "src/**/*.java",
+    ],
+    static_libs: [
+        "androidx.appcompat_appcompat",
+    ],
+    test_suites: [
+        "cts",
+        "vts",
+        "general-tests",
+    ],
+}
diff --git a/tests/tests/widget/app/AndroidManifest.xml b/tests/tests/widget/app/AndroidManifest.xml
new file mode 100755
index 0000000..9c19ce1
--- /dev/null
+++ b/tests/tests/widget/app/AndroidManifest.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="android.widget.cts.app">
+
+    <application>
+        <activity
+            android:name=".TranslucentActivity"
+            android:exported="true"
+            android:theme="@style/TranslucentTheme" />
+    </application>
+</manifest>
diff --git a/tests/tests/widget/app/res/values/styles.xml b/tests/tests/widget/app/res/values/styles.xml
new file mode 100644
index 0000000..a38f6b2
--- /dev/null
+++ b/tests/tests/widget/app/res/values/styles.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<resources>
+    <style name="TranslucentTheme" parent="Theme.AppCompat.Light.NoActionBar">
+        <item name="android:windowIsTranslucent">true</item>
+        <item name="android:windowBackground">@android:color/transparent</item>
+    </style>
+</resources>
diff --git a/tests/tests/widget/app/src/android/widget/cts/app/TranslucentActivity.java b/tests/tests/widget/app/src/android/widget/cts/app/TranslucentActivity.java
new file mode 100644
index 0000000..c9b79b3
--- /dev/null
+++ b/tests/tests/widget/app/src/android/widget/cts/app/TranslucentActivity.java
@@ -0,0 +1,87 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.widget.cts.app;
+
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.os.Bundle;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.fragment.app.DialogFragment;
+import androidx.fragment.app.FragmentManager;
+
+public class TranslucentActivity extends AppCompatActivity {
+    private static final String ACTION_TRANSLUCENT_ACTIVITY_RESUMED =
+            "android.widget.cts.app.TRANSLUCENT_ACTIVITY_RESUMED";
+    private static final String ACTION_TRANSLUCENT_ACTIVITY_FINISH =
+            "android.widget.cts.app.TRANSLUCENT_ACTIVITY_FINISH";
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        FragmentManager fragmentManager = getSupportFragmentManager();
+        if (fragmentManager.findFragmentByTag("dialog") == null) {
+            DialogFragment fragment = new SampleFragment();
+            fragment.show(fragmentManager, "dialog");
+        }
+    }
+
+    @Override
+    protected void onStart() {
+        super.onStart();
+        IntentFilter filter = new IntentFilter();
+        filter.addAction(ACTION_TRANSLUCENT_ACTIVITY_FINISH);
+        registerReceiver(mFinishActivityReceiver, filter);
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        sendBroadcast(new Intent(ACTION_TRANSLUCENT_ACTIVITY_RESUMED));
+    }
+
+    @Override
+    protected void onStop() {
+        super.onStop();
+        unregisterReceiver(mFinishActivityReceiver);
+    }
+
+    private final BroadcastReceiver mFinishActivityReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            finish();
+        }
+    };
+
+    public static class SampleFragment extends DialogFragment {
+        @NonNull
+        @Override
+        public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
+            return new AlertDialog.Builder(getActivity())
+                    .setTitle("Title")
+                    .setMessage("Message")
+                    .setOnDismissListener(dialog -> getActivity().finish())
+                    .create();
+        }
+    }
+}
diff --git a/tests/tests/widget/src/android/widget/cts/PopupWindowTest.java b/tests/tests/widget/src/android/widget/cts/PopupWindowTest.java
index 50ed338..eadd4d7 100644
--- a/tests/tests/widget/src/android/widget/cts/PopupWindowTest.java
+++ b/tests/tests/widget/src/android/widget/cts/PopupWindowTest.java
@@ -53,6 +53,7 @@
 import android.view.ViewGroup;
 import android.view.ViewGroup.LayoutParams;
 import android.view.ViewTreeObserver;
+import android.view.Window;
 import android.view.WindowInsets;
 import android.view.WindowManager;
 import android.widget.ImageView;
@@ -494,6 +495,43 @@
     }
 
     @Test
+    public void testShowAsDropDown_ClipToScreen_Overlap_OutOfScreen() throws Throwable {
+        final PopupWindow popup = createPopupWindow(createPopupContent(CONTENT_SIZE_DP,
+                CONTENT_SIZE_DP));
+        final View upperLeftAnchor = mActivity.findViewById(R.id.anchor_upper_left);
+
+        popup.setIsClippedToScreen(true);
+        popup.setOverlapAnchor(true);
+        popup.setAnimationStyle(0);
+        popup.setExitTransition(null);
+        popup.setEnterTransition(null);
+
+        final int appBarHeight = mActivity.getActionBar().getHeight();
+        Rect appFrame = new Rect();
+        Window window = mActivity.getWindow();
+        window.getDecorView().getWindowVisibleDisplayFrame(appFrame);
+        final int appFrameTop = appFrame.top;
+        final int appFrameLeft = appFrame.left;
+        final int offsetX = -1 * (mActivity.findViewById(R.id.anchor_upper_left).getWidth());
+        final int offsetY = -1 * (appBarHeight + appFrameTop);
+        final int gravity = Gravity.TOP | Gravity.START;
+
+        int[] viewOnScreenXY = new int[2];
+
+        mActivityRule.runOnUiThread(() -> popup.showAsDropDown(
+                upperLeftAnchor, offsetX, offsetY, gravity));
+        mInstrumentation.waitForIdleSync();
+
+        assertTrue(popup.isShowing());
+
+        popup.getContentView().getLocationOnScreen(viewOnScreenXY);
+        assertEquals(appFrameLeft, viewOnScreenXY[0]);
+        assertEquals(appFrameTop, viewOnScreenXY[1]);
+
+        dismissPopup();
+    }
+
+    @Test
     public void testShowAsDropDown_ClipToScreen_TooBig() throws Throwable {
         final View rootView = mActivity.findViewById(R.id.anchor_upper_left).getRootView();
         final int width = rootView.getWidth() * 2;
diff --git a/tests/tests/widget/src/android/widget/cts/ToastTest.java b/tests/tests/widget/src/android/widget/cts/ToastTest.java
index dc9f732..896eade 100644
--- a/tests/tests/widget/src/android/widget/cts/ToastTest.java
+++ b/tests/tests/widget/src/android/widget/cts/ToastTest.java
@@ -16,6 +16,8 @@
 
 package android.widget.cts;
 
+import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
+
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
@@ -24,7 +26,11 @@
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assume.assumeFalse;
 
+import android.content.BroadcastReceiver;
+import android.content.ComponentName;
 import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
 import android.content.pm.PackageManager;
 import android.graphics.drawable.Drawable;
 import android.os.ConditionVariable;
@@ -71,6 +77,13 @@
     private static final int ACCESSIBILITY_STATE_WAIT_TIMEOUT_MS = 3000;
     private static final long TIME_FOR_UI_OPERATION  = 1000L;
     private static final long TIME_OUT = 5000L;
+    private static final String ACTION_TRANSLUCENT_ACTIVITY_RESUMED =
+            "android.widget.cts.app.TRANSLUCENT_ACTIVITY_RESUMED";
+    private static final String ACTION_TRANSLUCENT_ACTIVITY_FINISH =
+            "android.widget.cts.app.TRANSLUCENT_ACTIVITY_FINISH";
+    private static final ComponentName COMPONENT_TRANSLUCENT_ACTIVITY =
+            ComponentName.unflattenFromString("android.widget.cts.app/.TranslucentActivity");
+
     private Toast mToast;
     private Context mContext;
     private boolean mLayoutDone;
@@ -650,6 +663,24 @@
         assertNotShowCustomToast(view);
     }
 
+    @Test
+    public void testCustomToastBlocked_whenBehindTranslucentActivity() throws Throwable {
+        ConditionVariable activityStarted = registerBlockingReceiver(
+                ACTION_TRANSLUCENT_ACTIVITY_RESUMED);
+        Intent intent = new Intent();
+        intent.setComponent(COMPONENT_TRANSLUCENT_ACTIVITY);
+        intent.setFlags(FLAG_ACTIVITY_NEW_TASK);
+        mContext.startActivity(intent);
+        activityStarted.block();
+        makeCustomToast();
+        View view = mToast.getView();
+
+        mActivityRule.runOnUiThread(mToast::show);
+
+        assertNotShowCustomToast(view);
+        mContext.sendBroadcast(new Intent(ACTION_TRANSLUCENT_ACTIVITY_FINISH));
+    }
+
     @UiThreadTest
     @Test
     public void testGetWindowParams_whenTextToast_returnsNull() {
@@ -665,6 +696,18 @@
         assertNotNull(toast.getWindowParams());
     }
 
+    private ConditionVariable registerBlockingReceiver(String action) {
+        ConditionVariable broadcastReceived = new ConditionVariable(false);
+        IntentFilter filter = new IntentFilter(action);
+        mContext.registerReceiver(new BroadcastReceiver() {
+            @Override
+            public void onReceive(Context context, Intent intent) {
+                broadcastReceived.open();
+            }
+        }, filter);
+        return broadcastReceived;
+    }
+
     private void runOnMainAndDrawSync(@NonNull final View toastView,
             @Nullable final Runnable runner) {
         final CountDownLatch latch = new CountDownLatch(1);
diff --git a/tests/tests/widget29/Android.bp b/tests/tests/widget29/Android.bp
index 6e4ae1d..b71c4c88 100644
--- a/tests/tests/widget29/Android.bp
+++ b/tests/tests/widget29/Android.bp
@@ -42,6 +42,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 
diff --git a/tests/tests/wrap/nowrap/Android.mk b/tests/tests/wrap/nowrap/Android.mk
index 9ef027d..9eabdf3 100644
--- a/tests/tests/wrap/nowrap/Android.mk
+++ b/tests/tests/wrap/nowrap/Android.mk
@@ -26,7 +26,7 @@
 	androidx.test.rules
 LOCAL_JAVA_LIBRARIES := android.test.runner.stubs android.test.base.stubs
 LOCAL_SRC_FILES := $(call all-java-files-under, ../src)
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 LOCAL_SDK_VERSION := current
 
 LOCAL_PACKAGE_NAME := CtsWrapNoWrapTestCases
diff --git a/tests/tests/wrap/wrap_debug/Android.mk b/tests/tests/wrap/wrap_debug/Android.mk
index 2b150bb..39e637d 100644
--- a/tests/tests/wrap/wrap_debug/Android.mk
+++ b/tests/tests/wrap/wrap_debug/Android.mk
@@ -26,7 +26,7 @@
 	androidx.test.rules
 LOCAL_JAVA_LIBRARIES := android.test.runner.stubs android.test.base.stubs
 LOCAL_SRC_FILES := $(call all-java-files-under, ../src)
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 LOCAL_SDK_VERSION := current
 
 LOCAL_PREBUILT_JNI_LIBS_arm := ../wrap.sh
diff --git a/tests/tests/wrap/wrap_debug_malloc_debug/Android.mk b/tests/tests/wrap/wrap_debug_malloc_debug/Android.mk
index bdbbe25..d83cb09 100644
--- a/tests/tests/wrap/wrap_debug_malloc_debug/Android.mk
+++ b/tests/tests/wrap/wrap_debug_malloc_debug/Android.mk
@@ -26,7 +26,7 @@
 	androidx.test.rules
 LOCAL_JAVA_LIBRARIES := android.test.runner.stubs android.test.base.stubs
 LOCAL_SRC_FILES := $(call all-java-files-under, ../src)
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 LOCAL_SDK_VERSION := current
 
 LOCAL_PREBUILT_JNI_LIBS_arm := wrap.sh
diff --git a/tests/tests/wrap/wrap_nodebug/Android.mk b/tests/tests/wrap/wrap_nodebug/Android.mk
index 3aefa35..e015a43 100644
--- a/tests/tests/wrap/wrap_nodebug/Android.mk
+++ b/tests/tests/wrap/wrap_nodebug/Android.mk
@@ -26,7 +26,7 @@
 	androidx.test.rules
 LOCAL_JAVA_LIBRARIES := android.test.runner.stubs android.test.base.stubs
 LOCAL_SRC_FILES := $(call all-java-files-under, ../src)
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 LOCAL_SDK_VERSION := current
 
 LOCAL_PREBUILT_JNI_LIBS_arm := ../wrap.sh
diff --git a/tests/tvprovider/Android.bp b/tests/tvprovider/Android.bp
index ad5fc22..1530049 100644
--- a/tests/tvprovider/Android.bp
+++ b/tests/tvprovider/Android.bp
@@ -28,6 +28,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/video/Android.bp b/tests/video/Android.bp
index aeb08cf..25a6ca2 100644
--- a/tests/video/Android.bp
+++ b/tests/video/Android.bp
@@ -34,6 +34,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
     sdk_version: "test_current",
diff --git a/tests/vr/Android.bp b/tests/vr/Android.bp
index 4ba27ad..6a9c69c 100644
--- a/tests/vr/Android.bp
+++ b/tests/vr/Android.bp
@@ -38,6 +38,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 }
diff --git a/tools/cts-device-info/Android.mk b/tools/cts-device-info/Android.mk
index acaaef6..9857cbc 100644
--- a/tools/cts-device-info/Android.mk
+++ b/tools/cts-device-info/Android.mk
@@ -40,7 +40,7 @@
 LOCAL_PACKAGE_NAME := CtsDeviceInfo
 
 # Tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests sts mts vts-core
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests sts mts vts-core
 
 include $(BUILD_CTS_DEVICE_INFO_PACKAGE)
 
diff --git a/tools/cts-device-info/src/com/android/cts/deviceinfo/CameraDeviceInfo.java b/tools/cts-device-info/src/com/android/cts/deviceinfo/CameraDeviceInfo.java
index 4e2a441..698990f 100644
--- a/tools/cts-device-info/src/com/android/cts/deviceinfo/CameraDeviceInfo.java
+++ b/tools/cts-device-info/src/com/android/cts/deviceinfo/CameraDeviceInfo.java
@@ -463,7 +463,7 @@
         charsKeyNames.add(CameraCharacteristics.CONTROL_AWB_LOCK_AVAILABLE.getName());
         charsKeyNames.add(CameraCharacteristics.CONTROL_AVAILABLE_MODES.getName());
         charsKeyNames.add(CameraCharacteristics.CONTROL_POST_RAW_SENSITIVITY_BOOST_RANGE.getName());
-        charsKeyNames.add(CameraCharacteristics.CONTROL_AVAILABLE_BOKEH_CAPABILITIES.getName());
+        charsKeyNames.add(CameraCharacteristics.CONTROL_AVAILABLE_EXTENDED_SCENE_MODE_CAPABILITIES.getName());
         charsKeyNames.add(CameraCharacteristics.CONTROL_ZOOM_RATIO_RANGE.getName());
         charsKeyNames.add(CameraCharacteristics.EDGE_AVAILABLE_EDGE_MODES.getName());
         charsKeyNames.add(CameraCharacteristics.FLASH_INFO_AVAILABLE.getName());
@@ -491,7 +491,6 @@
         charsKeyNames.add(CameraCharacteristics.SCALER_CROPPING_TYPE.getName());
         charsKeyNames.add(CameraCharacteristics.SCALER_MANDATORY_STREAM_COMBINATIONS.getName());
         charsKeyNames.add(CameraCharacteristics.SCALER_MANDATORY_CONCURRENT_STREAM_COMBINATIONS.getName());
-        charsKeyNames.add(CameraCharacteristics.SCALER_AVAILABLE_ROTATE_AND_CROP_MODES.getName());
         charsKeyNames.add(CameraCharacteristics.SENSOR_REFERENCE_ILLUMINANT1.getName());
         charsKeyNames.add(CameraCharacteristics.SENSOR_REFERENCE_ILLUMINANT2.getName());
         charsKeyNames.add(CameraCharacteristics.SENSOR_CALIBRATION_TRANSFORM1.getName());
diff --git a/tools/cts-dynamic-config/Android.mk b/tools/cts-dynamic-config/Android.mk
index dc53d6b..772a11a 100644
--- a/tools/cts-dynamic-config/Android.mk
+++ b/tools/cts-dynamic-config/Android.mk
@@ -20,7 +20,7 @@
 LOCAL_MODULE_CLASS := FAKE
 LOCAL_IS_HOST_MODULE := true
 
-LOCAL_COMPATIBILITY_SUITE := cts general-tests vts mts
+LOCAL_COMPATIBILITY_SUITE := cts general-tests vts vts10 mts
 
 # my_test_config_file := DynamicConfig.xml
 # TODO (sbasi): Update to use BUILD_HOST_TEST_CONFIG when it's primary install
diff --git a/tools/cts-media-preparer-app/Android.bp b/tools/cts-media-preparer-app/Android.bp
index 5991f8b..0646f40 100644
--- a/tools/cts-media-preparer-app/Android.bp
+++ b/tools/cts-media-preparer-app/Android.bp
@@ -30,6 +30,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
         "mts",
     ],
diff --git a/tools/cts-preconditions/Android.bp b/tools/cts-preconditions/Android.bp
index c2e49bd..f3c7426 100644
--- a/tools/cts-preconditions/Android.bp
+++ b/tools/cts-preconditions/Android.bp
@@ -28,6 +28,7 @@
     test_suites: [
         "cts",
         "vts",
+        "vts10",
         "general-tests",
     ],
 
diff --git a/tools/vm-tests-tf/Android.mk b/tools/vm-tests-tf/Android.mk
index 49ed4ed..3ecb78a 100644
--- a/tools/vm-tests-tf/Android.mk
+++ b/tools/vm-tests-tf/Android.mk
@@ -65,7 +65,7 @@
 LOCAL_MODULE_PATH := $(intermediates)
 
 # Tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 include $(BUILD_SYSTEM)/base_rules.mk
 
diff --git a/tools/vm-tests-tf/targetprep/Android.mk b/tools/vm-tests-tf/targetprep/Android.mk
index 32300b2..3e9cfc3 100644
--- a/tools/vm-tests-tf/targetprep/Android.mk
+++ b/tools/vm-tests-tf/targetprep/Android.mk
@@ -25,7 +25,7 @@
 LOCAL_MODULE := compatibility-host-vm-targetprep
 
 # Tag this module as a cts test artifact
-LOCAL_COMPATIBILITY_SUITE := cts vts general-tests
+LOCAL_COMPATIBILITY_SUITE := cts vts vts10 general-tests
 
 include $(BUILD_HOST_JAVA_LIBRARY)