Snap for 6981242 from c7db2350c1ef15565289d56ffc24c492ba32f488 to mainline-release

Change-Id: Ica3b92c3dbdaafa3cecd3da76a3fbc4c527b74e2
diff --git a/build/Android.common.mk b/build/Android.common.mk
index 4d702e4..9ca4d0f 100644
--- a/build/Android.common.mk
+++ b/build/Android.common.mk
@@ -19,7 +19,8 @@
 
 ART_TARGET_SUPPORTED_ARCH := arm arm64 x86 x86_64
 ART_HOST_SUPPORTED_ARCH := x86 x86_64
-ART_DEXPREOPT_BOOT_JAR_DIR := system/framework
+ART_DEXPREOPT_BOOT_JAR_DIR := apex/com.android.art/javalib
+CONSCRYPT_DEXPREOPT_BOOT_JAR_DIR := apex/com.android.conscrypt/javalib
 
 ifneq ($(HOST_OS),darwin)
   ART_HOST_SUPPORTED_ARCH := x86 x86_64
diff --git a/build/Android.common_path.mk b/build/Android.common_path.mk
index 3403f2d..42d64b4 100644
--- a/build/Android.common_path.mk
+++ b/build/Android.common_path.mk
@@ -76,7 +76,7 @@
 # Modules to compile for core.art.
 CORE_IMG_JARS := core-oj core-libart core-icu4j okhttp bouncycastle apache-xml
 HOST_CORE_IMG_JARS   := $(addsuffix -hostdex,$(CORE_IMG_JARS))
-TARGET_CORE_IMG_JARS := $(addsuffix -testdex,$(CORE_IMG_JARS))
+TARGET_CORE_IMG_JARS := $(CORE_IMG_JARS)
 HOST_CORE_IMG_DEX_LOCATIONS   := $(foreach jar,$(HOST_CORE_IMG_JARS),  $(HOST_OUT_JAVA_LIBRARIES)/$(jar).jar)
 ifeq ($(ART_TEST_ANDROID_ROOT),)
 TARGET_CORE_IMG_DEX_LOCATIONS := $(foreach jar,$(TARGET_CORE_IMG_JARS),/$(ART_DEXPREOPT_BOOT_JAR_DIR)/$(jar).jar)
@@ -84,23 +84,23 @@
 TARGET_CORE_IMG_DEX_LOCATIONS := $(foreach jar,$(TARGET_CORE_IMG_JARS),$(ART_TEST_ANDROID_ROOT)/$(jar).jar)
 endif
 HOST_CORE_IMG_DEX_FILES   := $(foreach jar,$(HOST_CORE_IMG_JARS),  $(call intermediates-dir-for,JAVA_LIBRARIES,$(jar),t,COMMON)/javalib.jar)
-TARGET_CORE_IMG_DEX_FILES := $(foreach jar,$(TARGET_CORE_IMG_JARS),$(call intermediates-dir-for,JAVA_LIBRARIES,$(jar), ,COMMON)/javalib.jar)
+TARGET_CORE_IMG_DEX_FILES := $(foreach jar,$(TARGET_CORE_IMG_JARS),$(call intermediates-dir-for,JAVA_LIBRARIES,$(jar).com.android.art.testing, ,COMMON)/javalib.jar)
 
 # Jar files for the boot class path for testing. Must start with CORE_IMG_JARS.
-TEST_CORE_JARS := $(CORE_IMG_JARS) conscrypt
-HOST_TEST_CORE_JARS   := $(addsuffix -hostdex,$(TEST_CORE_JARS))
-TARGET_TEST_CORE_JARS := $(addsuffix -testdex,$(TEST_CORE_JARS))
+HOST_TEST_CORE_JARS   := $(addsuffix -hostdex,$(CORE_IMG_JARS)) conscrypt-hostdex
 HOST_CORE_DEX_LOCATIONS   := $(foreach jar,$(HOST_TEST_CORE_JARS),  $(HOST_OUT_JAVA_LIBRARIES)/$(jar).jar)
 ifeq ($(ART_TEST_ANDROID_ROOT),)
-TARGET_CORE_DEX_LOCATIONS := $(foreach jar,$(TARGET_TEST_CORE_JARS),/$(ART_DEXPREOPT_BOOT_JAR_DIR)/$(jar).jar)
+TARGET_CORE_DEX_LOCATIONS := $(foreach jar,$(TARGET_CORE_IMG_JARS),/$(ART_DEXPREOPT_BOOT_JAR_DIR)/$(jar).jar)
+TARGET_CORE_DEX_LOCATIONS += /$(CONSCRYPT_DEXPREOPT_BOOT_JAR_DIR)/conscrypt.jar
 else
-TARGET_CORE_DEX_LOCATIONS := $(foreach jar,$(TARGET_TEST_CORE_JARS),$(ART_TEST_ANDROID_ROOT)/framework/$(jar).jar)
+TARGET_CORE_DEX_LOCATIONS := $(foreach jar,$(TARGET_CORE_IMG_JARS),$(ART_TEST_ANDROID_ROOT)/framework/$(jar).jar)
+TARGET_CORE_DEX_LOCATIONS += $(ART_TEST_ANDROID_ROOT)/framework/conscrypt.jar
 endif
 HOST_CORE_DEX_FILES   := $(foreach jar,$(HOST_TEST_CORE_JARS),  $(call intermediates-dir-for,JAVA_LIBRARIES,$(jar),t,COMMON)/javalib.jar)
-TARGET_CORE_DEX_FILES := $(foreach jar,$(TARGET_TEST_CORE_JARS),$(call intermediates-dir-for,JAVA_LIBRARIES,$(jar), ,COMMON)/javalib.jar)
-
+TARGET_CORE_DEX_FILES := $(foreach jar,$(TARGET_CORE_IMG_JARS), $(call intermediates-dir-for,JAVA_LIBRARIES,$(jar).com.android.art.testing, ,COMMON)/javalib.jar)
+TARGET_CORE_DEX_FILES += $(call intermediates-dir-for,JAVA_LIBRARIES,conscrypt.com.android.conscrypt, ,COMMON)/javalib.jar
 ART_HOST_DEX_DEPENDENCIES := $(foreach jar,$(HOST_TEST_CORE_JARS),$(HOST_OUT_JAVA_LIBRARIES)/$(jar).jar)
-ART_TARGET_DEX_DEPENDENCIES := $(foreach jar,$(TARGET_TEST_CORE_JARS),$(TARGET_OUT_JAVA_LIBRARIES)/$(jar).jar)
+ART_TARGET_DEX_DEPENDENCIES := com.android.art.testing com.android.conscrypt
 
 ART_CORE_SHARED_LIBRARIES := libicu_jni libjavacore libopenjdk libopenjdkjvm libopenjdkjvmti
 ART_CORE_SHARED_DEBUG_LIBRARIES := libopenjdkd libopenjdkjvmd libopenjdkjvmtid
diff --git a/build/Android.common_test.mk b/build/Android.common_test.mk
index 55b8ae2..7341d3e 100644
--- a/build/Android.common_test.mk
+++ b/build/Android.common_test.mk
@@ -125,7 +125,6 @@
     LOCAL_DEX_PREOPT := false
     LOCAL_ADDITIONAL_DEPENDENCIES := art/build/Android.common_test.mk $(4)
     LOCAL_MODULE_TAGS := tests
-    LOCAL_JAVA_LIBRARIES := $(TARGET_TEST_CORE_JARS)
     LOCAL_MODULE_PATH := $(3)
     ifneq ($(wildcard $(LOCAL_PATH)/$(2)/main.list),)
       LOCAL_MIN_SDK_VERSION := 19
diff --git a/build/Android.gtest.mk b/build/Android.gtest.mk
index a9855cd..d0804a3 100644
--- a/build/Android.gtest.mk
+++ b/build/Android.gtest.mk
@@ -602,7 +602,8 @@
     libicu_jni.com.android.art.debug \
     libjavacore.com.android.art.debug \
     libopenjdkd.com.android.art.debug \
-    $(foreach jar,$(TARGET_TEST_CORE_JARS),$(TARGET_OUT_JAVA_LIBRARIES)/$(jar).jar)
+    com.android.art.testing \
+    com.android.conscrypt
 endif
 ifeq ($(ART_BUILD_HOST),true)
   $(foreach file,$(ART_HOST_GTEST_FILES), $(eval $(call define-art-gtest-host,$(file),)))
diff --git a/test/Android.run-test.mk b/test/Android.run-test.mk
index c4e07d3..550ba30 100644
--- a/test/Android.run-test.mk
+++ b/test/Android.run-test.mk
@@ -49,9 +49,6 @@
 # Also need signal_dumper.
 ART_TEST_TARGET_RUN_TEST_DEPENDENCIES += signal_dumper-target
 
-ART_TEST_TARGET_RUN_TEST_DEPENDENCIES += \
-  $(foreach jar,$(TARGET_TEST_CORE_JARS),$(TARGET_OUT_JAVA_LIBRARIES)/$(jar).jar)
-
 # All tests require the host executables. The tests also depend on the core images, but on
 # specific version depending on the compiler.
 ART_TEST_HOST_RUN_TEST_DEPENDENCIES := \
diff --git a/test/etc/run-test-jar b/test/etc/run-test-jar
index 101fa52..687d79b 100755
--- a/test/etc/run-test-jar
+++ b/test/etc/run-test-jar
@@ -692,6 +692,9 @@
 # because that's what we use for compiling the core.art image.
 # It may contain additional modules from TEST_CORE_JARS.
 bpath_modules="core-oj core-libart core-icu4j okhttp bouncycastle apache-xml conscrypt"
+bpath=""
+bpath_locations=""
+bpath_separator=""
 if [ "${HOST}" = "y" ]; then
     framework="${ANDROID_HOST_OUT}/framework"
     if [ "${ANDROID_HOST_OUT:0:${#ANDROID_BUILD_TOP}+1}" = "${ANDROID_BUILD_TOP}/" ]; then
@@ -703,19 +706,22 @@
       exit
     fi
     bpath_suffix="-hostdex"
+    for bpath_module in ${bpath_modules}; do
+      bpath+="${bpath_separator}${framework}/${bpath_module}${bpath_suffix}.jar"
+      bpath_locations+="${bpath_separator}${framework_location}/${bpath_module}${bpath_suffix}.jar"
+      bpath_separator=":"
+    done
 else
-    framework="${ANDROID_ROOT}/framework"
-    framework_location="${ANDROID_ROOT}/framework"
-    bpath_suffix="-testdex"
+    for bpath_module in ${bpath_modules}; do
+      apex_module="com.android.art"
+      if [ "${bpath_module}" = "conscrypt" ]; then
+        apex_module="com.android.conscrypt"
+      fi
+      bpath+="${bpath_separator}/apex/${apex_module}/javalib/${bpath_module}.jar"
+      bpath_locations+="${bpath_separator}/apex/${apex_module}/javalib/${bpath_module}.jar"
+      bpath_separator=":"
+    done
 fi
-bpath=""
-bpath_locations=""
-bpath_separator=""
-for bpath_module in ${bpath_modules}; do
-  bpath+="${bpath_separator}${framework}/${bpath_module}${bpath_suffix}.jar"
-  bpath_locations+="${bpath_separator}${framework_location}/${bpath_module}${bpath_suffix}.jar"
-  bpath_separator=":"
-done
 # Pass down the bootclasspath
 FLAGS="${FLAGS} -Xbootclasspath:${bpath}"
 FLAGS="${FLAGS} -Xbootclasspath-locations:${bpath_locations}"
diff --git a/tools/art b/tools/art
index d44737c..a4fe480 100644
--- a/tools/art
+++ b/tools/art
@@ -540,11 +540,6 @@
     if [[ ${core_locations_dir:0:${#prefix}} = $prefix ]]; then
       core_locations_dir="${core_locations_dir##$prefix}"
     fi
-  elif [[ -e $ANDROID_ROOT/framework/core-oj-testdex.jar ]]; then
-    core_jars_suffix=-testdex
-    core_locations_dir=/system/framework
-  fi
-  if [[ $core_jars_suffix != "" ]]; then
     boot_separator=""
     for boot_module in ${core_jars_list}; do
       DEX_FILENAME="$boot_module$core_jars_suffix.jar"
diff --git a/tools/bootjars.sh b/tools/bootjars.sh
index f7abf27..008e7ed 100755
--- a/tools/bootjars.sh
+++ b/tools/bootjars.sh
@@ -77,9 +77,7 @@
   # It may contain additional modules from TEST_CORE_JARS.
   core_jars_list="core-oj core-libart core-icu4j okhttp bouncycastle apache-xml conscrypt"
   core_jars_suffix=
-  if [[ $mode == target ]]; then
-    core_jars_suffix=-testdex
-  elif [[ $mode == host ]]; then
+  if [[ $mode == host ]]; then
     core_jars_suffix=-hostdex
   fi
   boot_jars_list=""
@@ -106,6 +104,16 @@
 intermediates_dir=$(readlink -m "$intermediates_dir")
 popd >/dev/null
 
-for jar in $boot_jars_list; do
-  echo "$intermediates_dir/JAVA_LIBRARIES/${jar}_intermediates/classes.jar"
-done
+if [[ $mode == target ]]; then
+  for jar in $boot_jars_list; do
+    if [[ $jar == "conscrypt" ]]; then
+      echo "$intermediates_dir/JAVA_LIBRARIES/${jar}.com.android.conscrypt_intermediates/classes.jar"
+    else
+      echo "$intermediates_dir/JAVA_LIBRARIES/${jar}.com.android.art.testing_intermediates/classes.jar"
+    fi
+  done
+else
+  for jar in $boot_jars_list; do
+    echo "$intermediates_dir/JAVA_LIBRARIES/${jar}_intermediates/classes.jar"
+  done
+fi
diff --git a/tools/libcore_failures.txt b/tools/libcore_failures.txt
index 336de1a..4fe2f0e 100644
--- a/tools/libcore_failures.txt
+++ b/tools/libcore_failures.txt
@@ -25,13 +25,13 @@
 {
   description: "Differences between vogar and cts in user directory",
   result: EXEC_FAILED,
-  modes: [device_testdex],
+  modes: [device],
   name: "libcore.java.lang.SystemTest#testSystemProperties_mutable"
 },
 {
   description: "Differences between vogar and cts. Passes with --mode activity",
   result: EXEC_FAILED,
-  modes: [device_testdex],
+  modes: [device],
   names: ["libcore.java.lang.OldSystemTest#test_getProperties"]
 },
 {
@@ -40,7 +40,7 @@
                 (--invoke-with \"su root\"). Does not pass after setting chmod
                 777 all directories on path to socket (on device without su).",
   result: EXEC_FAILED,
-  modes: [device_testdex],
+  modes: [device],
   names: ["libcore.libcore.io.OsTest#testUnixDomainSockets_in_file_system"]
 },
 {
@@ -55,7 +55,7 @@
 {
   description: "Issue with incorrect device time (1970)",
   result: EXEC_FAILED,
-  modes: [device_testdex],
+  modes: [device],
   names: ["libcore.java.util.TimeZoneTest#testDisplayNames",
           "libcore.java.util.TimeZoneTest#test_useDaylightTime_Taiwan",
           "org.apache.harmony.tests.java.util.TimeZoneTest#test_hasSameRules_Ljava_util_TimeZone"],
@@ -65,13 +65,13 @@
   description: "Issue with incorrect device time (1970). Test assumes that DateTime.now()
                 is greater then a date in 1998.",
   result: EXEC_FAILED,
-  modes: [device_testdex],
+  modes: [device],
   names: ["org.apache.harmony.tests.java.util.DateTest#test_Constructor"]
 },
 {
   description: "Failing due to a locale problem on hammerhead.",
   result: EXEC_FAILED,
-  modes: [device_testdex],
+  modes: [device],
   names: ["libcore.icu.DateIntervalFormatTest#test10089890",
           "libcore.icu.DateIntervalFormatTest#test10209343_when_not_this_year",
           "libcore.icu.DateIntervalFormatTest#test10560853_for_single_day_events",
@@ -88,7 +88,7 @@
 {
   description: "Failing due to missing localhost on hammerhead and volantis.",
   result: EXEC_FAILED,
-  modes: [device_testdex],
+  modes: [device],
   names: ["libcore.javax.crypto.CipherTest#testCipherInitWithCertificate",
           "libcore.net.NetworkSecurityPolicyTest#testCleartextTrafficPolicyWithFtpURLConnection",
           "libcore.net.NetworkSecurityPolicyTest#testCleartextTrafficPolicyWithJarFtpURLConnection",
@@ -103,13 +103,13 @@
 {
   description: "Test timeouts",
   result: EXEC_TIMEOUT,
-  modes: [device_testdex],
+  modes: [device],
   names: ["org.apache.harmony.tests.java.util.ScannerTest#testPerformance"]
 },
 {
   description: "Needs the newest cat version on the device",
   result: EXEC_FAILED,
-  modes: [device_testdex],
+  modes: [device],
   names: ["org.apache.harmony.tests.java.lang.ProcessTest#test_getErrorStream"]
 },
 {
@@ -119,7 +119,7 @@
 },
 {
   description: "Linker issues in chrooted environment",
-  modes: [device_testdex],
+  modes: [device],
   result: EXEC_FAILED,
   names: ["org.apache.harmony.tests.java.lang.ProcessManagerTest#testEnvironment"]
 },
@@ -132,14 +132,14 @@
 {
   description: "test_xattr fails on arm64 on the buildbots only: needs investigation",
   result: EXEC_FAILED,
-  modes: [device_testdex],
+  modes: [device],
   names: ["libcore.libcore.io.OsTest#test_xattr"],
   bug: 22258911
 },
 {
   description: "fails on L builds: needs investigation",
   result: EXEC_FAILED,
-  modes: [device_testdex],
+  modes: [device],
   names: ["org.apache.harmony.tests.java.lang.ClassTest#test_forNameLjava_lang_String"]
 },
 {
@@ -165,7 +165,7 @@
   description: "Flaky test",
   result: EXEC_FAILED,
   bug: 30107038,
-  modes: [device_testdex],
+  modes: [device],
   names: ["org.apache.harmony.tests.java.lang.ProcessTest#test_destroyForcibly"]
 },
 {
@@ -173,7 +173,7 @@
                 Unclear if this relates to the tests running sh as a child process.",
   result: EXEC_FAILED,
   bug: 30657148,
-  modes: [device_testdex],
+  modes: [device],
   names: ["libcore.java.lang.ProcessBuilderTest#testRedirectInherit",
           "libcore.java.lang.ProcessBuilderTest#testRedirect_nullStreams"]
 },
@@ -197,7 +197,7 @@
 {
   description: "Timeout on heap-poisoning target builds",
   result: EXEC_FAILED,
-  modes: [device_testdex],
+  modes: [device],
   bug: 116446372,
   names: ["libcore.libcore.io.FdsanTest#testSocket"]
 },
@@ -229,7 +229,7 @@
 {
   description: "Apex related",
   result: EXEC_FAILED,
-  modes: [device_testdex],
+  modes: [device],
   bug: 122642227,
   names: [
     "libcore.libcore.icu.TimeZoneIntegrationTest#testTimeZoneDataVersion",
@@ -240,7 +240,7 @@
 {
   description: "Timeout on walleye bots, currenlty on OPM1.171019.019. But test passes on Q, so just mark it fail here.",
   result: EXEC_FAILED,
-  modes: [device_testdex],
+  modes: [device],
   names: [
     "libcore.libcore.io.OsTest#testCrossFamilyBindConnectSendto"
   ]
@@ -264,7 +264,7 @@
 {
   description: "Fails on device",
   result: EXEC_FAILED,
-  modes: [device_testdex],
+  modes: [device],
   bug: 145348591,
   names: ["libcore.android.system.OsTest#test_if_nametoindex_if_indextoname"]
 },
diff --git a/tools/libcore_fugu_failures.txt b/tools/libcore_fugu_failures.txt
index 11183bb..0fff814 100644
--- a/tools/libcore_fugu_failures.txt
+++ b/tools/libcore_fugu_failures.txt
@@ -10,7 +10,7 @@
   description: "Test using memfd_create() syscall, only available from Linux 3.17.",
   result: EXEC_FAILED,
   bug: 146113753,
-  modes: [device_testdex],
+  modes: [device],
   names: [
     "libcore.android.system.OsTest#testMemfdCreate",
     "libcore.android.system.OsTest#testMemfdCreateErrno",
@@ -21,7 +21,7 @@
   description: "Test using the getrandom() syscall, only available from Linux 3.17.",
   result: EXEC_FAILED,
   bug: 141230711,
-  modes: [device_testdex],
+  modes: [device],
   names: [
     "libcore.java.math.BigIntegerTest#test_Constructor_IILjava_util_Random",
     "libcore.java.math.BigIntegerTest#test_probablePrime",
diff --git a/tools/libcore_gcstress_debug_failures.txt b/tools/libcore_gcstress_debug_failures.txt
index 0112644..a4c6b3e 100644
--- a/tools/libcore_gcstress_debug_failures.txt
+++ b/tools/libcore_gcstress_debug_failures.txt
@@ -7,7 +7,7 @@
 {
   description: "Timeouts on target with gcstress and debug.",
   result: EXEC_FAILED,
-  modes: [device_testdex],
+  modes: [device],
   names: ["jsr166.CompletableFutureTest#testCompleteOnTimeout_completed",
           "jsr166.CompletableFutureTest#testDelayedExecutor",
           "jsr166.ExecutorsTest#testTimedCallable",
diff --git a/tools/libcore_gcstress_failures.txt b/tools/libcore_gcstress_failures.txt
index 9af2f64..e11f486 100644
--- a/tools/libcore_gcstress_failures.txt
+++ b/tools/libcore_gcstress_failures.txt
@@ -7,7 +7,7 @@
 {
   description: "Timeouts on target with gcstress.",
   result: EXEC_FAILED,
-  modes: [device_testdex],
+  modes: [device],
   names: ["libcore.javax.crypto.CipherBasicsTest#testGcmEncryption"]
 },
 {
@@ -26,7 +26,7 @@
 {
   description: "Timeouts.",
   result: EXEC_FAILED,
-  modes: [device_testdex],
+  modes: [device],
   names: ["jsr166.TimeUnitTest#testConvert",
           "libcore.java.lang.StringTest#testFastPathString_wellFormedUtf8Sequence",
           "libcore.java.text.DecimalFormatTest#testCurrencySymbolSpacing",
diff --git a/tools/run-jdwp-tests.sh b/tools/run-jdwp-tests.sh
index 9ad9d66..f67e46d 100755
--- a/tools/run-jdwp-tests.sh
+++ b/tools/run-jdwp-tests.sh
@@ -40,7 +40,11 @@
   local separator=""
   for var
   do
-    printf -- "${separator}${dir}/${var}${suffix}.jar";
+    if [ "$var" = "conscrypt" ] && [ "$mode" = "target" ]; then
+      printf -- "${separator}/apex/com.android.conscrypt/javalib/conscrypt.jar";
+    else
+      printf -- "${separator}${dir}/${var}${suffix}.jar";
+    fi
     separator=":"
   done
 }
@@ -52,6 +56,7 @@
 
 vm_args=""
 art="$android_root/bin/art"
+mode="target"
 art_debugee="sh $android_root/bin/art"
 args=$@
 chroot_option=
@@ -66,7 +71,7 @@
 explicit_debug="no"
 verbose="no"
 image="-Ximage:/data/art-test/core.art"
-boot_classpath="$(boot_classpath_arg /system/framework -testdex $BOOT_CLASSPATH_JARS)"
+boot_classpath="$(boot_classpath_arg /apex/com.android.art/javalib "" $BOOT_CLASSPATH_JARS)"
 boot_classpath_locations=""
 with_jdwp_path=""
 agent_wrapper=""
@@ -74,7 +79,6 @@
 # By default, we run the whole JDWP test suite.
 has_specific_test="no"
 test="org.apache.harmony.jpda.tests.share.AllTests"
-mode="target"
 # Use JIT compiling by default.
 use_jit=true
 instant_jit=false
@@ -122,11 +126,6 @@
     # Vogar knows which VM to use on host.
     vm_command=""
     shift
-  elif [[ "$1" == "--mode=device" ]]; then
-    # Remove the --mode=device from the arguments and replace it with --mode=device_testdex
-    args=${args/$1}
-    args="$args --mode=device_testdex"
-    shift
   elif [[ "$1" == "--mode=jvm" ]]; then
     mode="ri"
     make_target_name="apache-harmony-jdwp-tests"
diff --git a/tools/run-libcore-tests.sh b/tools/run-libcore-tests.sh
index 726b12d..7140b13 100755
--- a/tools/run-libcore-tests.sh
+++ b/tools/run-libcore-tests.sh
@@ -46,13 +46,13 @@
 
 function boot_classpath_arg {
   local dir="$1"
-  local suffix="$2"
-  shift 2
+  shift 1
   printf -- "--vm-arg -Xbootclasspath"
   for var
   do
-    printf -- ":${dir}/${var}${suffix}.jar";
+    printf -- ":${dir}/${var}.jar";
   done
+  printf -- ":/apex/com.android.conscrypt/javalib/conscrypt.jar";
 }
 
 function usage {
@@ -147,7 +147,7 @@
 # Note: This must start with the CORE_IMG_JARS in Android.common_path.mk
 # because that's what we use for compiling the core.art image.
 # It may contain additional modules from TEST_CORE_JARS.
-BOOT_CLASSPATH_JARS="core-oj core-libart core-icu4j okhttp bouncycastle apache-xml conscrypt"
+BOOT_CLASSPATH_JARS="core-oj core-libart core-icu4j okhttp bouncycastle apache-xml"
 
 DEPS="core-tests jsr166-tests mockito-target"
 
@@ -183,11 +183,9 @@
 while [ -n "$1" ]; do
   case "$1" in
     --mode=device)
-      # Use --mode=device_testdex not --mode=device for buildbot-build.sh.
-      # See commit 191cae33c7c24e for more details.
-      vogar_args="$vogar_args --mode=device_testdex"
+      vogar_args="$vogar_args --mode=device"
       vogar_args="$vogar_args --vm-arg -Ximage:/data/art-test/core.art"
-      vogar_args="$vogar_args $(boot_classpath_arg /system/framework -testdex $BOOT_CLASSPATH_JARS)"
+      vogar_args="$vogar_args $(boot_classpath_arg /apex/com.android.art/javalib $BOOT_CLASSPATH_JARS)"
       execution_mode="device"
       ;;
     --mode=host)