Snap for 11397440 from 656acc260dc6615c3fc61f38aa682e9944caa01b to mainline-healthfitness-release

Change-Id: I80c8f7215c0d5b5111c1650374a76348944b9531
diff --git a/tests/gpu_test/src/com/android/gpu/vts/VulkanTest.java b/tests/gpu_test/src/com/android/gpu/vts/VulkanTest.java
index 5bf00a3..c88edd7 100644
--- a/tests/gpu_test/src/com/android/gpu/vts/VulkanTest.java
+++ b/tests/gpu_test/src/com/android/gpu/vts/VulkanTest.java
@@ -22,6 +22,7 @@
 
 import android.platform.test.annotations.RequiresDevice;
 import com.android.compatibility.common.util.ApiLevelUtil;
+import com.android.compatibility.common.util.FeatureUtil;
 import com.android.compatibility.common.util.PropertyUtil;
 import com.android.compatibility.common.util.VsrTest;
 import com.android.tradefed.testtype.DeviceJUnit4ClassRunner;
@@ -113,6 +114,9 @@
         // Only test for new 64-bits devices that is U and above.
         assumeTrue("Test does not apply for devices released before U",
                 PropertyUtil.getVsrApiLevel(getDevice()) >= Build.UDC);
+        assumeTrue("Test does not apply for automotive devices released before V",
+                !FeatureUtil.isAutomotive(getDevice())
+                        || PropertyUtil.getVsrApiLevel(getDevice()) > Build.UDC);
         assumeTrue("Test does not apply for 32-bits devices",
                 getDevice().getProperty("ro.product.cpu.abi").contains("64"));
 
diff --git a/tools/vts-core-tradefed/Android.bp b/tools/vts-core-tradefed/Android.bp
index 6ee9e69..99af4e2 100644
--- a/tools/vts-core-tradefed/Android.bp
+++ b/tools/vts-core-tradefed/Android.bp
@@ -35,7 +35,7 @@
     wrapper: "etc/vts-tradefed",
     short_name: "VTS",
     full_name: "Vendor Test Suite",
-    version: "14_r3",
+    version: "14_r4",
     static_libs: [
         "cts-tradefed-harness",
         "vts-core-tradefed-harness",
diff --git a/vndk_utils/vndk/vndk_utils.py b/vndk_utils/vndk/vndk_utils.py
index 570fff6..b50ebbb 100644
--- a/vndk_utils/vndk/vndk_utils.py
+++ b/vndk_utils/vndk/vndk_utils.py
@@ -44,6 +44,24 @@
     return True
 
 
+def IsVndkInstalledInVendor(dut):
+    """Returns whether the device's VNDK should be installed in vendor.
+
+    VNDK libraries are moved from system to vendor partition in V version.
+    VNDK 35 should be installed in vendor partiton.
+
+    Args:
+        dut: The AndroidDevice under test.
+
+    Returns:
+        A boolean, whether VNDK should be installed in vendor partition.
+    """
+    try:
+        return int(dut.GetVndkVersion()) > 34
+    except ValueError:
+        return False
+
+
 def FormatVndkPath(pattern, bitness, version=""):
     """Formats a VNDK path.