diff --git a/Android.bp b/Android.bp
index 0ce86d8..cb72082 100644
--- a/Android.bp
+++ b/Android.bp
@@ -31,6 +31,7 @@
     "disassembler",
     "imgdiag",
     "oatdump",
+    "openjdkjvm",
     "patchoat",
     "profman",
     "runtime",
diff --git a/runtime/openjdkjvm/Android.bp b/openjdkjvm/Android.bp
similarity index 96%
rename from runtime/openjdkjvm/Android.bp
rename to openjdkjvm/Android.bp
index 37112b6..071b434 100644
--- a/runtime/openjdkjvm/Android.bp
+++ b/openjdkjvm/Android.bp
@@ -18,7 +18,6 @@
     defaults: ["art_defaults"],
     host_supported: true,
     srcs: ["OpenjdkJvm.cc"],
-    include_dirs: ["art/runtime"],
     shared_libs: [
         "libbase",
         "libnativehelper"
diff --git a/runtime/openjdkjvm/MODULE_LICENSE_GPL_WITH_CLASSPATH_EXCEPTION b/openjdkjvm/MODULE_LICENSE_GPL_WITH_CLASSPATH_EXCEPTION
similarity index 100%
rename from runtime/openjdkjvm/MODULE_LICENSE_GPL_WITH_CLASSPATH_EXCEPTION
rename to openjdkjvm/MODULE_LICENSE_GPL_WITH_CLASSPATH_EXCEPTION
diff --git a/runtime/openjdkjvm/NOTICE b/openjdkjvm/NOTICE
similarity index 100%
rename from runtime/openjdkjvm/NOTICE
rename to openjdkjvm/NOTICE
diff --git a/runtime/openjdkjvm/OpenjdkJvm.cc b/openjdkjvm/OpenjdkJvm.cc
similarity index 100%
rename from runtime/openjdkjvm/OpenjdkJvm.cc
rename to openjdkjvm/OpenjdkJvm.cc
diff --git a/runtime/Android.bp b/runtime/Android.bp
index 18a4c8c..ff803eb 100644
--- a/runtime/Android.bp
+++ b/runtime/Android.bp
@@ -626,6 +626,5 @@
 }
 
 subdirs = [
-    "openjdkjvm",
     "openjdkjvmti",
 ]
diff --git a/runtime/class_linker.cc b/runtime/class_linker.cc
index e5ed8ae..25000e5 100644
--- a/runtime/class_linker.cc
+++ b/runtime/class_linker.cc
@@ -8587,7 +8587,7 @@
   if (!method->IsNative()) {
     method->SetEntryPointFromQuickCompiledCode(GetQuickToInterpreterBridge());
   } else {
-    SetEntryPointsToCompiledCode(method, GetQuickGenericJniStub());
+    method->SetEntryPointFromQuickCompiledCode(GetQuickGenericJniStub());
   }
 }
 
diff --git a/test/run-test b/test/run-test
index 5fb3e4d..486b465 100755
--- a/test/run-test
+++ b/test/run-test
@@ -45,7 +45,7 @@
 export RUN="${progdir}/etc/run-test-jar"
 export DEX_LOCATION=/data/run-test/${test_dir}
 export NEED_DEX="true"
-export USE_JACK="false"
+export USE_JACK="true"
 export USE_DESUGAR="true"
 export SMALI_ARGS=""
 
diff --git a/test/testrunner/env.py b/test/testrunner/env.py
index d45d009..b996b04 100644
--- a/test/testrunner/env.py
+++ b/test/testrunner/env.py
@@ -33,8 +33,7 @@
                         'TARGET_ARCH',
                         'HOST_PREFER_32_BIT',
                         'HOST_OUT_EXECUTABLES',
-                        'ANDROID_JAVA_TOOLCHAIN',
-                        'ANDROID_COMPILE_WITH_JACK']
+                        'ANDROID_JAVA_TOOLCHAIN']
 _DUMP_MANY_VARS = None  # To be set to a dictionary with above list being the keys,
                         # and the build variable being the value.
 def _dump_many_vars(var_name):
@@ -79,15 +78,6 @@
 def _get_build_var(var_name):
   return _dump_many_vars(var_name)
 
-def _get_build_var_boolean(var, default):
-  val = _get_build_var(var)
-  if val:
-    if val == "True" or val == "true":
-      return True
-    if val == "False" or val == "false":
-      return False
-  return default
-
 def get_env(key):
   return _env.get(key)
 
@@ -107,7 +97,7 @@
 ANDROID_BUILD_TOP = _get_android_build_top()
 
 # Compiling with jack? Possible values in (True, False, 'default')
-ANDROID_COMPILE_WITH_JACK = _get_build_var_boolean('ANDROID_COMPILE_WITH_JACK', 'default')
+ANDROID_COMPILE_WITH_JACK = _getEnvBoolean('ANDROID_COMPILE_WITH_JACK', 'default')
 
 # Directory used for temporary test files on the host.
 ART_HOST_TEST_DIR = tempfile.mkdtemp(prefix = 'test-art-')
diff --git a/tools/buildbot-build.sh b/tools/buildbot-build.sh
index 4f99ac3..75694c3 100755
--- a/tools/buildbot-build.sh
+++ b/tools/buildbot-build.sh
@@ -19,8 +19,6 @@
   exit 1
 fi
 
-source build/envsetup.sh >&/dev/null # for get_build_var
-
 # Logic for setting out_dir from build/make/core/envsetup.mk:
 if [[ -z $OUT_DIR ]]; then
   if [[ -z $OUT_DIR_COMMON_BASE ]]; then
@@ -32,7 +30,10 @@
   out_dir=${OUT_DIR}
 fi
 
-using_jack=$(get_build_var ANDROID_COMPILE_WITH_JACK)
+using_jack=true
+if [[ $ANDROID_COMPILE_WITH_JACK == false ]]; then
+  using_jack=false
+fi
 
 java_libraries_dir=${out_dir}/target/common/obj/JAVA_LIBRARIES
 common_targets="vogar core-tests apache-harmony-jdwp-tests-hostdex jsr166-tests mockito-target"
@@ -62,7 +63,7 @@
   fi
 done
 
-if [[ $using_jack == "true" ]]; then
+if $using_jack; then
   common_targets="$common_targets ${out_dir}/host/linux-x86/bin/jack"
 fi
 
diff --git a/tools/run-jdwp-tests.sh b/tools/run-jdwp-tests.sh
index d2322bb..17c84b4 100755
--- a/tools/run-jdwp-tests.sh
+++ b/tools/run-jdwp-tests.sh
@@ -19,19 +19,24 @@
   exit 1
 fi
 
-source build/envsetup.sh >&/dev/null # for get_build_var, setpaths
-setpaths # include platform prebuilt java, javac, etc in $PATH.
+if [ -z "$ANDROID_JAVA_TOOLCHAIN" ] ; then
+  source build/envsetup.sh
+  setpaths # include platform prebuilt java, javac, etc in $PATH.
+fi
 
 if [ -z "$ANDROID_HOST_OUT" ] ; then
   ANDROID_HOST_OUT=${OUT_DIR-$ANDROID_BUILD_TOP/out}/host/linux-x86
 fi
 
-using_jack=$(get_build_var ANDROID_COMPILE_WITH_JACK)
+using_jack=true
+if [[ $ANDROID_COMPILE_WITH_JACK == false ]]; then
+  using_jack=false
+fi
 
 function jlib_suffix {
   local str=$1
   local suffix="jar"
-  if [[ $using_jack == "true" ]]; then
+  if $using_jack; then
     suffix="jack"
   fi
   echo "$str.$suffix"
@@ -161,7 +166,7 @@
   art_debugee="$art_debugee -verbose:jdwp"
 fi
 
-if [[ $using_jack == "true" ]]; then
+if $using_jack; then
   toolchain_args="--toolchain jack --language JN --jack-arg -g"
 else
   toolchain_args="--toolchain jdk --language CUR"
diff --git a/tools/run-libcore-tests.sh b/tools/run-libcore-tests.sh
index eecdd2f..d549098 100755
--- a/tools/run-libcore-tests.sh
+++ b/tools/run-libcore-tests.sh
@@ -19,8 +19,10 @@
   exit 1
 fi
 
-source build/envsetup.sh >&/dev/null # for get_build_var, setpaths
-setpaths # include platform prebuilt java, javac, etc in $PATH.
+if [ -z "$ANDROID_JAVA_TOOLCHAIN" ] ; then
+  source build/envsetup.sh
+  setpaths # include platform prebuilt java, javac, etc in $PATH.
+fi
 
 if [ -z "$ANDROID_PRODUCT_OUT" ] ; then
   JAVA_LIBRARIES=out/target/common/obj/JAVA_LIBRARIES
@@ -28,13 +30,16 @@
   JAVA_LIBRARIES=${ANDROID_PRODUCT_OUT}/../../common/obj/JAVA_LIBRARIES
 fi
 
-using_jack=$(get_build_var ANDROID_COMPILE_WITH_JACK)
+using_jack=true
+if [[ $ANDROID_COMPILE_WITH_JACK == false ]]; then
+  using_jack=false
+fi
 
 function classes_jar_path {
   local var="$1"
   local suffix="jar"
 
-  if [[ $using_jack == "true" ]]; then
+  if $using_jack; then
     suffix="jack"
   fi
 
@@ -146,7 +151,7 @@
 vogar_args="$vogar_args --timeout 480"
 
 # Switch between using jack or javac+desugar+dx
-if [[ $using_jack == "true" ]]; then
+if $using_jack; then
   vogar_args="$vogar_args --toolchain jack --language JO"
 else
   vogar_args="$vogar_args --toolchain jdk --language CUR"
