Split Bionic and ART/libcore into separate APEXes.

Bionic keeps com.android.runtime and hence the "Runtime" APEX, while ART and
libcore move to com.android.art. This is for app compat reasons - some apps
check /proc/self/maps for the absolute path of the loaded libc.so.

Moving the Bionic APEX to a more suitable location to be addressed later.
Test updates and more renaming from "Runtime" to "ART" also to come in
follow-up CLs.

Test: Build & boot
Test: atest CtsJniTestCases CtsCompilationTestCases CtsSimpleperfTestCases CtsBionicTestCases
Bug: 135753770
Change-Id: Ic55015ec0a15702731081aaede727a57cfade944
Merged-In: Ic55015ec0a15702731081aaede727a57cfade944
diff --git a/Android.mk b/Android.mk
index 3efffb0..aeeca54 100644
--- a/Android.mk
+++ b/Android.mk
@@ -312,25 +312,24 @@
 
 
 #######################
-# Android Runtime APEX.
+# ART APEX.
 
 include $(CLEAR_VARS)
 
-# The Android Runtime APEX comes in three flavors:
-# - the release module (`com.android.runtime.release`), containing
+# The ART APEX comes in three flavors:
+# - the release module (`com.android.art.release`), containing
 #   only "release" artifacts;
-# - the debug module (`com.android.runtime.debug`), containing both
+# - the debug module (`com.android.art.debug`), containing both
 #   "release" and "debug" artifacts, as well as additional tools;
-# - the testing module (`com.android.runtime.testing`), containing
+# - the testing module (`com.android.art.testing`), containing
 #   both "release" and "debug" artifacts, as well as additional tools
 #   and ART gtests).
 #
-# The Android Runtime APEX module (`com.android.runtime`) is an
-# "alias" for either the release or the debug module. By default,
-# "user" build variants contain the release module, while "userdebug"
-# and "eng" build variants contain the debug module. However, if
-# `PRODUCT_ART_TARGET_INCLUDE_DEBUG_BUILD` is defined, it overrides
-# the previous logic:
+# The ART APEX module (`com.android.art`) is an "alias" for either the
+# release or the debug module. By default, "user" build variants contain
+# the release module, while "userdebug" and "eng" build variants contain
+# the debug module. However, if `PRODUCT_ART_TARGET_INCLUDE_DEBUG_BUILD`
+# is defined, it overrides the previous logic:
 # - if `PRODUCT_ART_TARGET_INCLUDE_DEBUG_BUILD` is set to `false`, the
 #   build will include the release module (whatever the build
 #   variant);
@@ -354,7 +353,7 @@
   APEX_TEST_MODULE := art-check-release-apex-gen-fakebin
 endif
 
-LOCAL_MODULE := com.android.runtime
+LOCAL_MODULE := com.android.art
 LOCAL_REQUIRED_MODULES := $(TARGET_RUNTIME_APEX)
 LOCAL_REQUIRED_MODULES += art_apex_boot_integrity
 
@@ -364,7 +363,7 @@
 include $(BUILD_PHONY_PACKAGE)
 
 include $(CLEAR_VARS)
-LOCAL_MODULE := com.android.runtime
+LOCAL_MODULE := com.android.art
 LOCAL_IS_HOST_MODULE := true
 ifneq ($(HOST_OS),darwin)
   LOCAL_REQUIRED_MODULES += $(APEX_TEST_MODULE)
@@ -374,34 +373,34 @@
 # Create canonical name -> file name symlink in the symbol directory
 # The symbol files for the debug or release variant are installed to
 # $(TARGET_OUT_UNSTRIPPED)/$(TARGET_RUNTIME_APEX) directory. However,
-# since they are available via /apex/com.android.runtime at runtime
+# since they are available via /apex/com.android.art at runtime
 # regardless of which variant is installed, create a symlink so that
-# $(TARGET_OUT_UNSTRIPPED)/apex/com.android.runtime is linked to
+# $(TARGET_OUT_UNSTRIPPED)/apex/com.android.art is linked to
 # $(TARGET_OUT_UNSTRIPPED)/apex/$(TARGET_RUNTIME_APEX).
 # Note that installation of the symlink is triggered by the apex_manifest.json
 # file which is the file that is guaranteed to be created regardless of the
 # value of TARGET_FLATTEN_APEX.
 #
 # b/132413565: Also, when TARGET_FLATTEN_APEX, an empty directory
-# /system/apex/com.android.runtime is created. After the entire
-# /system/apex is mounted on /apex, the flattened runtime APEX
-# (either com.android.runtime.debug or *.release) is mounted on the empty
+# /system/apex/com.android.art is created. After the entire
+# /system/apex is mounted on /apex, the flattened ART APEX
+# (either com.android.art.debug or *.release) is mounted on the empty
 # directory so that the APEX is accessible via the canonical path
-# /apex/com.android.runtime
+# /apex/com.android.art
 ifeq ($(TARGET_FLATTEN_APEX),true)
 runtime_apex_manifest_file := $(PRODUCT_OUT)/system/apex/$(TARGET_RUNTIME_APEX)/apex_manifest.json
 else
 runtime_apex_manifest_file := $(PRODUCT_OUT)/apex/$(TARGET_RUNTIME_APEX)/apex_manifest.json
 endif
 
-runtime_apex_symlink_timestamp := $(call intermediates-dir-for,FAKE,com.android.runtime)/symlink.timestamp
+runtime_apex_symlink_timestamp := $(call intermediates-dir-for,FAKE,com.android.art)/symlink.timestamp
 $(runtime_apex_manifest_file): $(runtime_apex_symlink_timestamp)
-$(runtime_apex_manifest_file): PRIVATE_LINK_NAME := $(TARGET_OUT_UNSTRIPPED)/apex/com.android.runtime
+$(runtime_apex_manifest_file): PRIVATE_LINK_NAME := $(TARGET_OUT_UNSTRIPPED)/apex/com.android.art
 $(runtime_apex_symlink_timestamp):
 	$(hide) mkdir -p $(dir $(PRIVATE_LINK_NAME))
 	$(hide) ln -sf $(TARGET_RUNTIME_APEX) $(PRIVATE_LINK_NAME)
 ifeq ($(TARGET_FLATTEN_APEX),true)
-	$(hide) mkdir -p $(TARGET_OUT)/apex/com.android.runtime
+	$(hide) mkdir -p $(TARGET_OUT)/apex/com.android.art
 endif
 	$(hide) touch $@
 
@@ -548,7 +547,7 @@
   lib/libandroidio.so \
   lib64/libandroidio.so \
 
-# Generate copies of Bionic bootstrap artifacts and Runtime APEX
+# Generate copies of Bionic bootstrap artifacts and ART APEX
 # libraries in the `system` (TARGET_OUT) directory. This is dangerous
 # as these files could inadvertently stay in this directory and be
 # included in a system image.
@@ -559,19 +558,19 @@
 # - Bionic bootstrap libraries, copied from
 #   `$(TARGET_OUT)/lib(64)/bootstrap` (the `/system/lib(64)/bootstrap`
 #   directory to be sync'd to the target);
-# - Some libraries which are part of the Runtime APEX; if the product
+# - Some libraries which are part of the ART APEX; if the product
 #   to build uses flattened APEXes, these libraries are copied from
-#   `$(TARGET_OUT)/apex/com.android.runtime.debug` (the flattened
-#   (Debug) Runtime APEX directory to be sync'd to the target);
+#   `$(TARGET_OUT)/apex/com.android.art.debug` (the flattened
+#   (Debug) ART APEX directory to be sync'd to the target);
 #   otherwise, they are copied from
-#   `$(TARGET_OUT)/../apex/com.android.runtime.debug` (the local
-#   directory under the build tree containing the (Debug) Runtime APEX
+#   `$(TARGET_OUT)/../apex/com.android.art.debug` (the local
+#   directory under the build tree containing the (Debug) ART APEX
 #   artifacts, which is not sync'd to the target).
 #
 # This target is only used by Golem now.
 #
 # TODO(b/129332183): Remove this when Golem has full support for the
-# Runtime APEX.
+# ART APEX.
 .PHONY: standalone-apex-files
 standalone-apex-files: libc.bootstrap libdl.bootstrap libm.bootstrap linker $(DEBUG_RUNTIME_APEX)
 	for f in $(PRIVATE_BIONIC_FILES); do \
@@ -597,22 +596,22 @@
 
 # Also include the bootstrap Bionic libraries (libc, libdl, libm).
 # These are required as the "main" libc, libdl, and libm have moved to
-# the Runtime APEX. This is a temporary change needed until Golem
-# fully supports the Runtime APEX.
+# the ART APEX. This is a temporary change needed until Golem
+# fully supports the ART APEX.
 #
 # TODO(b/129332183): Remove this when Golem has full support for the
-# Runtime APEX.
+# ART APEX.
 
 # Also include:
 # - a copy of the ICU prebuilt .dat file in /system/etc/icu on target
 #   (see module `icu-data-art-test-i18n`); and
-# so that it can be found even if the Runtime APEX is not available,
+# so that it can be found even if the ART APEX is not available,
 # by setting the environment variable `ART_TEST_ANDROID_RUNTIME_ROOT`
 # to "/system" on device. This is a temporary change needed
-# until Golem fully supports the Runtime APEX.
+# until Golem fully supports the ART APEX.
 #
 # TODO(b/129332183): Remove this when Golem has full support for the
-# Runtime APEX.
+# ART APEX.
 
 # Also include:
 # - a copy of the time zone data prebuilt files in
@@ -626,7 +625,7 @@
 # until Golem fully supports the Time Zone Data APEX.
 #
 # TODO(b/129332183): Remove this when Golem has full support for the
-# Runtime APEX (and TZ Data APEX).
+# ART APEX (and TZ Data APEX).
 
 ART_TARGET_SHARED_LIBRARY_BENCHMARK := $(TARGET_OUT_SHARED_LIBRARIES)/libartbenchmark.so
 build-art-target-golem: dex2oat dalvikvm linker libstdc++ \
diff --git a/CleanSpec.mk b/CleanSpec.mk
index a3f9279..0ba486a 100644
--- a/CleanSpec.mk
+++ b/CleanSpec.mk
@@ -90,6 +90,11 @@
 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/apex)
 $(call add-clean-step, rm -rf $(HOST_OUT)/com.android.runtime/etc/icu/*)
 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/etc/icu)
+
+# Remove all APEX artifacts for the Runtime/ART APEX split.
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/apex)
+$(call add-clean-step, rm -rf $(HOST_OUT)/apex)
+
 # ************************************************
 # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
 # ************************************************
diff --git a/build/Android.common_path.mk b/build/Android.common_path.mk
index e797e3c..4251a2e 100644
--- a/build/Android.common_path.mk
+++ b/build/Android.common_path.mk
@@ -148,11 +148,11 @@
 endif
 
 # Release Runtime APEX, included by default in "user" builds.
-RELEASE_RUNTIME_APEX := com.android.runtime.release
+RELEASE_RUNTIME_APEX := com.android.art.release
 # Debug Runtime APEX, included by default in "userdebug" and "eng"
 # builds and used in ART device benchmarking.
-DEBUG_RUNTIME_APEX := com.android.runtime.debug
+DEBUG_RUNTIME_APEX := com.android.art.debug
 # Testing Runtime APEX, used in ART device testing.
-TESTING_RUNTIME_APEX := com.android.runtime.testing
+TESTING_RUNTIME_APEX := com.android.art.testing
 
 endif # ART_ANDROID_COMMON_PATH_MK
diff --git a/build/apex/Android.bp b/build/apex/Android.bp
index 37824f3..6b806a0 100644
--- a/build/apex/Android.bp
+++ b/build/apex/Android.bp
@@ -1,5 +1,3 @@
-// Android Runtime APEX module.
-
 // Modules listed in LOCAL_REQUIRED_MODULES for module art-runtime in art/Android.mk.
 // - Base requirements (binaries for which both 32- and 64-bit versions are built, if relevant).
 art_runtime_base_binaries_both = [
@@ -14,14 +12,14 @@
 // - Base requirements (libraries).
 //
 // Note: ART on-device chroot-based testing and benchmarking is not yet using
-// the Runtime APEX, meaning that copies of some of these libraries have to be
+// the ART APEX, meaning that copies of some of these libraries have to be
 // installed in `/system` for the ART Buildbot set-up to work properly. This is
 // done by the `standalone-apex-files` Make phony target, used by the ART
 // Buildbot and Golem (see `art/Android.mk`). If you add libraries to this list,
 // you may have to also add them to `PRIVATE_RUNTIME_DEPENDENCY_LIBS` in
 // `art/Android.mk`.
 // TODO(b/121117762): Remove this note when both the ART Buildbot and Golem use
-// the Runtime APEX.
+// the ART APEX.
 art_runtime_base_native_shared_libs = [
     // External API (having APEX stubs).
     "libdexfile_external",
@@ -59,6 +57,7 @@
 bionic_binaries_both = [
     "linker",
 ]
+
 // - Debug variants (binaries for which a 32-bit version is preferred).
 art_runtime_debug_binaries_prefer32 = [
     "dexoptanalyzerd",
@@ -67,6 +66,7 @@
 art_runtime_debug_binaries_prefer32_device = [
     "dex2oatd",
 ]
+
 art_runtime_debug_binaries_both_host = [
     "dex2oatd",
 ]
@@ -121,7 +121,7 @@
     "hprof-conv",
 ]
 
-// Libraries needed to use com.android.runtime.host for zipapex run-tests
+// Libraries needed to use com.android.art.host for zipapex run-tests
 art_runtime_host_run_test_libs = [
     "libartd-disassembler",
 ]
@@ -139,14 +139,14 @@
 // Native libraries that support the core Java libraries.
 //
 // Note: ART on-device chroot-based testing and benchmarking is not yet using
-// the Runtime APEX, meaning that copies of some of these libraries have to be
+// the ART APEX, meaning that copies of some of these libraries have to be
 // installed in `/system` for the ART Buildbot set-up to work properly. This is
 // done by the `standalone-apex-files` Make phony target, used by the ART
 // Buildbot and Golem (see `art/Android.mk`). If you add libraries to this list,
 // you may have to also add them to `PRIVATE_RUNTIME_DEPENDENCY_LIBS` in
 // `art/Android.mk`.
 // TODO(b/121117762): Remove this note when both the ART Buildbot and Golem use
-// the Runtime APEX.
+// the ART APEX.
 libcore_native_shared_libs = [
     // External API (having APEX stubs).
     "libandroidicu",
@@ -177,49 +177,92 @@
     "libcutils",
 ]
 
+// Runtime (Bionic) APEX module
+//
+// This used to consist of Bionic, ART and Libcore. Now it contains Bionic only,
+// but keeps /apex/com.android.runtime for app compat reasons.
+//
+// TODO(b/139176024): Move this to the Bionic tree.
+
+android_app_certificate {
+    name: "com.android.runtime.certificate",
+    certificate: "com.android.runtime",
+}
+
 apex_key {
     name: "com.android.runtime.key",
     public_key: "com.android.runtime.avbpubkey",
     private_key: "com.android.runtime.pem",
 }
 
+prebuilt_etc {
+    name: "com.android.runtime.ld.config.txt",
+    src: "runtime-ld.config.txt",
+    filename: "ld.config.txt",
+    installable: false,
+}
+
+apex {
+    name: "com.android.runtime",
+    compile_multilib: "both",
+    manifest: "manifest-runtime.json",
+    native_shared_libs: bionic_native_shared_libs +
+        bionic_native_device_only_shared_libs,
+    multilib: {
+        both: {
+            binaries: bionic_binaries_both,
+        },
+    },
+    prebuilts: ["com.android.runtime.ld.config.txt"],
+    key: "com.android.runtime.key",
+    certificate: ":com.android.runtime.certificate",
+}
+
+// ART APEX module
+//
+// Contains both the Android Managed Runtime (ART) and the Android Core Library
+// (Libcore).
+
 android_app_certificate {
-    name: "com.android.runtime.release.certificate",
-    certificate: "com.android.runtime.release",
+    name: "com.android.art.release.certificate",
+    certificate: "com.android.art.release",
 }
 
 android_app_certificate {
-    name: "com.android.runtime.debug.certificate",
-    certificate: "com.android.runtime.debug",
+    name: "com.android.art.debug.certificate",
+    certificate: "com.android.art.debug",
 }
 
 android_app_certificate {
-    name: "com.android.runtime.testing.certificate",
-    certificate: "com.android.runtime.testing",
+    name: "com.android.art.testing.certificate",
+    certificate: "com.android.art.testing",
+}
+
+apex_key {
+    name: "com.android.art.key",
+    public_key: "com.android.art.avbpubkey",
+    private_key: "com.android.art.pem",
 }
 
 prebuilt_etc {
-    name: "com.android.runtime.ld.config.txt",
+    name: "com.android.art.ld.config.txt",
     src: "ld.config.txt",
     filename: "ld.config.txt",
     installable: false,
 }
 
-// Default values shared by device Runtime APEXes.
+// Default values shared by device ART APEXes.
 apex_defaults {
-    name: "com.android.runtime-defaults",
+    name: "com.android.art-defaults",
     compile_multilib: "both",
-    manifest: "manifest.json",
+    manifest: "manifest-art.json",
     java_libs: libcore_java_libs,
     native_shared_libs: art_runtime_base_native_shared_libs +
-        bionic_native_shared_libs +
-        bionic_native_device_only_shared_libs +
         libcore_native_device_only_shared_libs +
         libcore_native_shared_libs,
     multilib: {
         both: {
-            binaries: art_runtime_base_binaries_both +
-                bionic_binaries_both,
+            binaries: art_runtime_base_binaries_both,
         },
         prefer32: {
             binaries: art_runtime_base_binaries_prefer32,
@@ -236,18 +279,18 @@
         "art_preinstall_hook_system_server",
         "art_prepostinstall_utils",
     ],
-    prebuilts: ["com.android.runtime.ld.config.txt"],
-    key: "com.android.runtime.key",
+    prebuilts: ["com.android.art.ld.config.txt"],
+    key: "com.android.art.key",
     required: [
         "art_apex_boot_integrity",
         "com.android.i18n",
     ],
 }
 
-// Default values shared by (device) Debug and Testing Runtime APEXes.
+// Default values shared by (device) Debug and Testing ART APEXes.
 apex_defaults {
-    name: "com.android.runtime-dev-defaults",
-    defaults: ["com.android.runtime-defaults"],
+    name: "com.android.art-dev-defaults",
+    defaults: ["com.android.art-defaults"],
     native_shared_libs: art_runtime_debug_native_shared_libs +
         libcore_debug_native_shared_libs,
     multilib: {
@@ -265,25 +308,25 @@
     },
 }
 
-// Release version of the Runtime APEX module (not containing debug
+// Release version of the ART APEX module (not containing debug
 // variants nor tools), included in user builds. Also used for
 // storage-constrained devices in userdebug and eng builds.
 apex {
-    name: "com.android.runtime.release",
-    defaults: ["com.android.runtime-defaults"],
-    certificate: ":com.android.runtime.release.certificate",
+    name: "com.android.art.release",
+    defaults: ["com.android.art-defaults"],
+    certificate: ":com.android.art.release.certificate",
 }
 
-// "Debug" version of the Runtime APEX module (containing both release and
+// "Debug" version of the ART APEX module (containing both release and
 // debug variants, as well as additional tools), included in userdebug and
 // eng build.
 apex {
-    name: "com.android.runtime.debug",
-    defaults: ["com.android.runtime-dev-defaults"],
-    certificate: ":com.android.runtime.debug.certificate",
+    name: "com.android.art.debug",
+    defaults: ["com.android.art-dev-defaults"],
+    certificate: ":com.android.art.debug.certificate",
 }
 
-// ART gtests with dependencies on internal Runtime APEX libraries.
+// ART gtests with dependencies on internal ART APEX libraries.
 art_gtests = [
     "art_cmdline_tests",
     "art_compiler_tests",
@@ -307,29 +350,29 @@
     "art_sigchain_tests",
 ]
 
-// "Testing" version of the Runtime APEX module (containing both release
+// "Testing" version of the ART APEX module (containing both release
 // and debug variants, additional tools, and ART gtests), for testing
 // purposes only.
 apex_test {
-    name: "com.android.runtime.testing",
-    defaults: ["com.android.runtime-dev-defaults"],
-    file_contexts: "com.android.runtime.debug",
-    certificate: ":com.android.runtime.testing.certificate",
+    name: "com.android.art.testing",
+    defaults: ["com.android.art-dev-defaults"],
+    file_contexts: "com.android.art.debug",
+    certificate: ":com.android.art.testing.certificate",
     tests: art_gtests,
 }
 
 // TODO: Do this better. art_apex_test_host will disable host builds when
-// HOST_PREFER_32_BIT is set. We cannot simply use com.android.runtime.debug
+// HOST_PREFER_32_BIT is set. We cannot simply use com.android.art.debug
 // because binaries have different multilib classes and 'multilib: {}' isn't
 // supported by target: { ... }.
 // See b/120617876 for more information.
 art_apex_test_host {
-    name: "com.android.runtime.host",
+    name: "com.android.art.host",
     compile_multilib: "both",
     payload_type: "zip",
     host_supported: true,
     device_supported: false,
-    manifest: "manifest.json",
+    manifest: "manifest-art.json",
     java_libs: libcore_java_libs,
     ignore_system_library_special_case: true,
     native_shared_libs: art_runtime_base_native_shared_libs +
@@ -352,7 +395,7 @@
                 art_runtime_debug_binaries_prefer32,
         },
     },
-    key: "com.android.runtime.key",
+    key: "com.android.art.key",
     target: {
         darwin: {
             enabled: false,
@@ -413,7 +456,7 @@
 genrule {
     name: "art-check-release-apex-gen",
     defaults: ["art-check-apex-gen-defaults"],
-    srcs: [":com.android.runtime.release"],
+    srcs: [":com.android.art.release"],
     cmd: art_check_apex_gen_stem +
         " $(in)" +
         " && touch $(out)",
@@ -429,7 +472,7 @@
 genrule {
     name: "art-check-debug-apex-gen",
     defaults: ["art-check-apex-gen-defaults"],
-    srcs: [":com.android.runtime.debug"],
+    srcs: [":com.android.art.debug"],
     cmd: art_check_apex_gen_stem +
         " --debug" +
         " $(in)" +
@@ -446,7 +489,7 @@
 genrule {
     name: "art-check-testing-apex-gen",
     defaults: ["art-check-apex-gen-defaults"],
-    srcs: [":com.android.runtime.testing"],
+    srcs: [":com.android.art.testing"],
     cmd: art_check_apex_gen_stem +
         " --testing" +
         " $(in)" +
diff --git a/build/apex/art_apex_test.py b/build/apex/art_apex_test.py
index bf9feab..a2601a4 100755
--- a/build/apex/art_apex_test.py
+++ b/build/apex/art_apex_test.py
@@ -529,18 +529,6 @@
     # Check internal libraries for ART.
     self._checker.check_prefer64_library('libart-disassembler')
 
-    # Check binaries for Bionic.
-    self._checker.check_multilib_executable('linker')
-    self._checker.check_multilib_executable('linker_asan')
-
-    # Check libraries for Bionic.
-    self._checker.check_native_library('bionic/libc')
-    self._checker.check_native_library('bionic/libdl')
-    self._checker.check_native_library('bionic/libm')
-    # ... and its internal dependencies
-    self._checker.check_native_library('libc_malloc_hooks')
-    self._checker.check_native_library('libc_malloc_debug')
-
     # Check exported native libraries for Managed Core Library.
     self._checker.check_native_library('libandroidicu')
     self._checker.check_native_library('libandroidio')
@@ -1172,9 +1160,9 @@
 
   # TODO: Add host support
   configs = [
-    {'name': 'com.android.runtime.release', 'debug': False, 'testing': False, 'host': False},
-    {'name': 'com.android.runtime.debug',   'debug': True,  'testing': False, 'host': False},
-    {'name': 'com.android.runtime.testing', 'debug': False, 'testing': True,  'host': False},
+    {'name': 'com.android.art.release', 'debug': False, 'testing': False, 'host': False},
+    {'name': 'com.android.art.debug',   'debug': True,  'testing': False, 'host': False},
+    {'name': 'com.android.art.testing', 'debug': False, 'testing': True,  'host': False},
   ]
 
   for config in configs:
diff --git a/build/apex/com.android.art.avbpubkey b/build/apex/com.android.art.avbpubkey
new file mode 100644
index 0000000..0d9cb49
--- /dev/null
+++ b/build/apex/com.android.art.avbpubkey
Binary files differ
diff --git a/build/apex/com.android.art.debug.pk8 b/build/apex/com.android.art.debug.pk8
new file mode 100644
index 0000000..381628f
--- /dev/null
+++ b/build/apex/com.android.art.debug.pk8
Binary files differ
diff --git a/build/apex/com.android.art.debug.x509.pem b/build/apex/com.android.art.debug.x509.pem
new file mode 100644
index 0000000..2a0581e
--- /dev/null
+++ b/build/apex/com.android.art.debug.x509.pem
@@ -0,0 +1,34 @@
+-----BEGIN CERTIFICATE-----
+MIIF3zCCA8egAwIBAgIUSa/CB43iKW+2CKSPkPwPrNH/9G4wDQYJKoZIhvcNAQEL
+BQAwfjELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcM
+DU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB0FuZHJvaWQxEDAOBgNVBAsMB0FuZHJv
+aWQxHjAcBgNVBAMMFWNvbS5hbmRyb2lkLmFydC5kZWJ1ZzAgFw0xOTA4MTMxMTU2
+MTVaGA80NzU3MDcwOTExNTYxNVowfjELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNh
+bGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB0FuZHJv
+aWQxEDAOBgNVBAsMB0FuZHJvaWQxHjAcBgNVBAMMFWNvbS5hbmRyb2lkLmFydC5k
+ZWJ1ZzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAOPeTEkhGQwF2zwY
+C6leJVLOi5zfY28blEsa4pi43cBNUL/xsvPUxEII05OvQALQwmLyc0gDhnyA+S1w
+wRCSpMZ20Y2eWXccHKLsoE5D+3GRa7mVC3gw6RHTUab8V7KnyLTRGe2N5gUQ4XEf
+ze0sVwVqZ4vOR0XfrUGMML/XjjRsI6kHqO0yhJaRBcqxXuwyf+Pte482dd+Ch2T+
+oJICL/1ixGWXn4ZpmxrejFodxwUajPVp41y3S+iXhTT5w3iPTkfGvoz7AZsiah1K
+eAgMgo3JS8TWM6ZQrnZQwVvP1/PLFpERRegHNqhhUe4TBwmAo7DhZgwH2HhhBKhu
+qqql2kdkMu3GvkYQh+gpiVr2mUZq+6sVnEmJz5Hpxs/PtgdeKN8sBX3xQjhpjWZF
+UT0IgN29zGB84hjWhnippJPr9Qcv0FY82ToTd1SkWKbUKJyupLwkwYv0X8CwhqMO
+xvojHtandGcgGviK7LHE9/KhEeG6v/ea4YbGBQBQ+ljQkQ/AbRczBB49fSZQlxXD
+bvq5a26Sia1vGLNjORbADGspN6IRmyzZPxKW1xNm51GynITF4L5JVOYMV7r8vhrS
+GXkdKYxGjfjqJPQmEZS8cP2T7NM0JxRmCY6yPgQuSXXR083yIhHdr2You8CxzKUt
+AC8rbE0HbAlWT6ikxa5ae6tchmipAgMBAAGjUzBRMB0GA1UdDgQWBBTBxVeeMrzW
+KQ5e1sC1ZA2hcmMyHjAfBgNVHSMEGDAWgBTBxVeeMrzWKQ5e1sC1ZA2hcmMyHjAP
+BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4ICAQBXp/QHeingvnzDTyfW
+xJwZblt5glAT/WMu7QZpb2QPYs7OEXHunrBkfDagLKSpP1wp9lAz3zKYwT96aADG
+RkMizKdDGVHweWzp1timt6RRNpBAle+GDbSuQbjDpRJjauFGdC8IhKoUSr/3UVkD
+MI+pPR4FQPIUkNIVvZEAy+IOFUqhZHo3xYrnJLgHW3yyrQ8hMM7U/cgTEEvICgQP
+dvWxlDrGXDzHhsajECGte1FKrRgIKz4ShxGNCLky/jk40JD9A/zmfNJRPg1qC9bI
+CEJtKDjSA76yhK9NUHoRmDc5vBiiIschpfe7aTQ/fLzUaInhwI+QxlMYVVXoQaqx
+IOw73fRA0ujQ5r+H84ElxUWlinyCdHqRcjzZWuQPtNdClMb+Sgxmhd0yMo6RBcMY
+AUpIg9VD9zX6Hl4aEs66EBXkCikZQLGuaOKwlUtXx3Irp39j3IGd++TDRNMWwfbf
+aeHv2vpkVmOi6b0DkwyYluGc/Tfmk+iV39FADFLu0GL2v/EjxkOxTQxRXH02YaGZ
+6RUo0i1g7GK7tAJ26tSZc6dPx//MPP7tkJRizhw+3ZmjVwrN16SM6XAmFvgkRTJN
+oGo09OpkWBculZqT+f4v3wEUyKO7IjwsFwoi6v1mCTcwukFjmvWMnjCyIgJCkfME
+IuEaAV6ZRrVM20BjWrbuhGChng==
+-----END CERTIFICATE-----
diff --git a/build/apex/com.android.art.pem b/build/apex/com.android.art.pem
new file mode 100644
index 0000000..5380b7a
--- /dev/null
+++ b/build/apex/com.android.art.pem
@@ -0,0 +1,51 @@
+-----BEGIN RSA PRIVATE KEY-----
+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
+-----END RSA PRIVATE KEY-----
diff --git a/build/apex/com.android.art.release.pk8 b/build/apex/com.android.art.release.pk8
new file mode 100644
index 0000000..7a4694a
--- /dev/null
+++ b/build/apex/com.android.art.release.pk8
Binary files differ
diff --git a/build/apex/com.android.art.release.x509.pem b/build/apex/com.android.art.release.x509.pem
new file mode 100644
index 0000000..3ab8c73
--- /dev/null
+++ b/build/apex/com.android.art.release.x509.pem
@@ -0,0 +1,34 @@
+-----BEGIN CERTIFICATE-----
+MIIF5TCCA82gAwIBAgIUPSmU5YjjpZg3kefNb14GDqYUzkQwDQYJKoZIhvcNAQEL
+BQAwgYAxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQH
+DA1Nb3VudGFpbiBWaWV3MRAwDgYDVQQKDAdBbmRyb2lkMRAwDgYDVQQLDAdBbmRy
+b2lkMSAwHgYDVQQDDBdjb20uYW5kcm9pZC5hcnQucmVsZWFzZTAgFw0xOTA4MTMx
+MTU3NDhaGA80NzU3MDcwOTExNTc0OFowgYAxCzAJBgNVBAYTAlVTMRMwEQYDVQQI
+DApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRAwDgYDVQQKDAdB
+bmRyb2lkMRAwDgYDVQQLDAdBbmRyb2lkMSAwHgYDVQQDDBdjb20uYW5kcm9pZC5h
+cnQucmVsZWFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMKsdpsN
+TDGfhjRh+uOpL14CWADjs9Vr1aPNQds2pWTfJ90iK5IpG+GtekBZOC2jno8miUE9
+fou9aFOmWkGvZASpPu9cB2z9uNta5l8Q0wbPiYJ+VaXivX22KQG1DwNJo1XSVEMT
+E6jBw8VpNzqOtLtm8QrvNup2OmHPV5h+50QvjZwTehGRBc+MEWkLst0gg/NbxbF5
+8X9dU7NtvTXnQttD0iAimSKX3xhPWjpjW+C77n3yB3UCfLLUtqoy9BDLvdrxFwuF
+TWdmfCP7Yw90dd1Ykm4lDv9jM238HfZkrkNvQb88aaUQoRDMnskGtXqBKfmAC0sm
+GWotcLcmBH6p4EAWqto4oTD7sn3fZVbsCt4mBD+qp3bvlF93eIFYOR5kFjFG4spY
+kt4ncNURGIVmJvfzKGTLUE7n2vbxjChANqfc3xtQRrVuXPXhVJrljImZQxGerL3/
+FhFLuTbNPAcCo3G2J2efeQOoMi6bTTyn4t1NJfz7uA3Y3jxoUqiqLaNNuj0dAkhY
+8YGbGlO5eRdx6iavmekmFqwwTXxgIm0YAJ5UcpNJncQhwckwY5Gc9uMgiSRChPkS
+v8uxPEgB0t6PhHK/LcW+/bY84po8RXqAaor+lyyGSMk2T+RJb5zRwWeKtouru19+
+lRL62oqYR3CboJn39GGDpOdQtd2YhSR4Q35nAgMBAAGjUzBRMB0GA1UdDgQWBBQl
+a9Nea9SJt2eoGNWrw4pdA4QRGDAfBgNVHSMEGDAWgBQla9Nea9SJt2eoGNWrw4pd
+A4QRGDAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4ICAQBoZNkFQbYi
+yHJ6YVgzNz7zJ81dKxBz2TaO+m0daWMoUW2Ll6fvfjHnS3vZnGt1CdqY6iIOpUIb
+0eT61VpKYvjPex4ckmYi0EfSCACEtwg91CH20D99ZbRz6Cgrq3dDbTdTDW/CyIMf
+lP5tUr0zV2WkiLub40WzrY8UaIdwXOUXgTZByfMRqo4ONFgicdiUMJUD+bZEsPj9
+sLqJLYd1glt+/jdNFDDHXknZa/bZGSVMt66tnqcKzd4inuvWLagDRDzfWIAPhz+1
+wZCzl35xx/WXfnGD+kwCyWjxm2VFfFGJn64svdbBCMpw0hg72Y09NY3YTRcyh71D
+yW2FNJYJX34SOpkG0G+1WzYymG4sFB99x+2GG2+tZ8jQCeLas7p69Ugj8p7ItOo1
+IfacmDNMKsZR+3VDjpwYGedBc12T8de/muBcrcrVjBa9utPz9VwQwSbb5BY7cGUO
+7BPXtXjaHeZqNVd+lwPJESeCTpaTAEJ7h8vKAbIw9ptokArEv7k1gCehtZ9MEyoa
+ZKI0lO61yfwD9y10kbLOvcswSxwq5oF5jrgaP8hjOyiUeFTbvqqaG7IT4ULwYHCB
+OI6orCrtkGquYUUaEVvCFio9+ojaNL7lYSbRPKOkJSIXpGK1SkvGQV8AbcehuDTn
+oNJr1ckn/cNBmgbYr+GhWU0xiu2uQOLWeA==
+-----END CERTIFICATE-----
diff --git a/build/apex/com.android.art.testing.pk8 b/build/apex/com.android.art.testing.pk8
new file mode 100644
index 0000000..9402a7a
--- /dev/null
+++ b/build/apex/com.android.art.testing.pk8
Binary files differ
diff --git a/build/apex/com.android.art.testing.x509.pem b/build/apex/com.android.art.testing.x509.pem
new file mode 100644
index 0000000..4d05628
--- /dev/null
+++ b/build/apex/com.android.art.testing.x509.pem
@@ -0,0 +1,34 @@
+-----BEGIN CERTIFICATE-----
+MIIF5TCCA82gAwIBAgIUHVIK5PHc4o19HLnmG5veMFEjxIYwDQYJKoZIhvcNAQEL
+BQAwgYAxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQH
+DA1Nb3VudGFpbiBWaWV3MRAwDgYDVQQKDAdBbmRyb2lkMRAwDgYDVQQLDAdBbmRy
+b2lkMSAwHgYDVQQDDBdjb20uYW5kcm9pZC5hcnQudGVzdGluZzAgFw0xOTA4MTMx
+MjAxMDVaGA80NzU3MDcwOTEyMDEwNVowgYAxCzAJBgNVBAYTAlVTMRMwEQYDVQQI
+DApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRAwDgYDVQQKDAdB
+bmRyb2lkMRAwDgYDVQQLDAdBbmRyb2lkMSAwHgYDVQQDDBdjb20uYW5kcm9pZC5h
+cnQudGVzdGluZzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL6BsVGe
+dBQdEP40LlbN3AYiVkS+Cys6jdyHN8bj+CCxgjdXBfTAhp0atucyiD+VYaHZGQz8
+CfHx6WtX/+/maXpt9VJxuwBkE60BJSNUs9ct8ojhhFjyeGdAPnH8fX12g9DodjcT
+qgd9pJcWjQ9g3HvpBdRLC4LXHcxsMvmfBqwEWB9OPJFTOACUmfFCqaVTSXbmLbah
+9C69i34pOh47kEzI1DdhtSduf75y9SHX66Wj0kTLVVfrttHmddp/cb0t9Qq0Hyrv
+rRR9XK51BlBPkJPj/IHbJe+ZDE9oBkjBDsfr/ky7kBJSGsd4AgxUVwlBVm90kcJ+
+uLin+OHuJKjM4LrnfBLLvMH5i1ytDzrEKL/KPm+bd6gf+vCPng1rhw9qiJsuu9po
+vjoBaH+jrJY0uG4V37Zy+bxd2IBpEDh4bauB4jdHhICAAZ96dZZvWdkiPsIK9yRT
+dYxRGpKpEfDYCYvFImMwFe78yiTG7+JiUMJxoPRm38zmZDgheVcw1O4QS+NQTatc
+dfPHYsXGHOuy7lQKqbMwqkLSguUdINFkEtbXfPi6CR0B0L/JzO+sYBfEjbLMJjzV
+TW+yQG2xo5lLM9+LT2VfRx8mZ/Zb1nLS8QY9CxxeaACFECekBqKP60a+OzBVVHAX
+bbg3y9evAABMAIS6gQf581VXuhLWs28/j5XLAgMBAAGjUzBRMB0GA1UdDgQWBBQO
+IpwtDsReK52CE7fImsrl7PouTTAfBgNVHSMEGDAWgBQOIpwtDsReK52CE7fImsrl
+7PouTTAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4ICAQC1IPl4V3VO
+12pCcEF2en+bI8e5UJT7BMxcq/tpoSVQwPQxINw9oV/7Z28Wv6If6JIhFY/v7qO7
+L6nfn7Ho1ej4Wbw/yfJE+bdcM4n01yv5DhROX3GVVEGRJh1q4xpGhgtQA3RmCMx4
+DyJCafD6gB0chEhRBqPnQnCGr+g/qTakISy2DOSxhowGHMmy/cJBDa4b5DQ2GnNd
+zt9ZUJdvPgD3Wp7kAFcUovaNhS732X2RgryX1bxHXO8sPjtjxV5wtNl0SkyfATGL
+nhVND5cwBo5udFDbUixJljNHBMDteuPhj5dAB85rUMivn+3CFPOTJ6c/y/PPCnJY
+znUVg4P2fnLl5jgQysF09WvP98qdv8poRtjjqLCFnVRSh1aglTq1DGpovjisFIcm
+3NBWzhm8T69pYs3ltZxsAB/NBpGR9iis0XWIhJlRMUwRBIC+P1lVQVh6ytCbb+up
+HE47H/Q9orTi2IpVm0jOLDwDqyoIwUNyPlySSi6QZDjbvUUWlYPbgmfzErywDpCu
+htU4xzIRQNKkXiYr9ULHlfx0byM/kL1oBHPjaFQguDHBD97EH7U2NexGcszRN1r6
+MNrHBkMVaZH2oJN3F8dQXA0+kMH+JThrmBl/u0mjvKZKOvON3GRwTjFXlIEV/ARY
+e+EjlVvFxzTZu5zFy9jnh+eVOoQTwToDZg==
+-----END CERTIFICATE-----
diff --git a/build/apex/com.android.runtime.debug.pk8 b/build/apex/com.android.runtime.debug.pk8
deleted file mode 100644
index 5eec5d8..0000000
--- a/build/apex/com.android.runtime.debug.pk8
+++ /dev/null
Binary files differ
diff --git a/build/apex/com.android.runtime.debug.x509.pem b/build/apex/com.android.runtime.debug.x509.pem
deleted file mode 100644
index 73402f5..0000000
--- a/build/apex/com.android.runtime.debug.x509.pem
+++ /dev/null
@@ -1,34 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIF0DCCA7igAwIBAgIJALbaJLNNAiRDMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNV
-BAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBW
-aWV3MRAwDgYDVQQKDAdBbmRyb2lkMRAwDgYDVQQLDAdBbmRyb2lkMRwwGgYDVQQD
-DBNjb20uYW5kcm9pZC5ydW50aW1lMCAXDTE5MDEyNTE3MTQ1NloYDzQ3NTYxMjIx
-MTcxNDU2WjB8MQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQG
-A1UEBwwNTW91bnRhaW4gVmlldzEQMA4GA1UECgwHQW5kcm9pZDEQMA4GA1UECwwH
-QW5kcm9pZDEcMBoGA1UEAwwTY29tLmFuZHJvaWQucnVudGltZTCCAiIwDQYJKoZI
-hvcNAQEBBQADggIPADCCAgoCggIBAN1Ns75c0ZdLKnUvEuEotzJ0xyOLzOHYP3y6
-RzcwFyPf84aADc7rQDtjbmEuf9g9QpJhZAxe7G2Jg/wxqaxMW6wCfkpuElW5CAcj
-XQ0i12hRVtqePs5Z5bjzJ/8C7luWh82Vb/s2YoRPoKNXVWFT16CB4RMnw2nW5Uyo
-RHZ98N4MgFSGilafIc6Z0DImreTTwlEvcyKihVUSuzeyPG8CRjshw0C1Hqxt4a8J
-rxAgfPpd84Xo4etYePpVr2K5+vNAVwLpUdD48Y7q9peOJ0tbL8DSohudkzvZsQUo
-CfEfrVBfZv7aPnt6ZJYhcFo1WRBMYczKP4jWb0KgmF963ee3zliU1pXtIYsNBNth
-Mdvy3ml301tI7CKE5A3Yevm40VVqo+IDt7FNxoV3rKPhnO9vi/YqzX/1xMvAto8E
-9A5NvMTqHmS2P0wt1pt9KSuXXjoIAWaHZOATDkVI+jLjDrYFNdhqXVgbAaVtI60j
-lRaSWxzBr4o+g2W8ks/JgM2mwJ6qaTNoDMzg823MKzy/t3935sxm5GhFs9AY9Qz/
-4B3exqYUEFJLN6dJLCVppCmFCdCONSxN7bXPo+3b9LlZuKAOP17N04+eKcwXVeYz
-Z3a7SfyMzq+DtLhAn/TSliSbbCAVUxiOZnVX1nM0Gs3/BYCs0TUh2tSqO48pwDrx
-Pw7z9+m5AgMBAAGjUzBRMB0GA1UdDgQWBBRT9s/tu4uqtrglUFjQbwY5p+17DjAf
-BgNVHSMEGDAWgBRT9s/tu4uqtrglUFjQbwY5p+17DjAPBgNVHRMBAf8EBTADAQH/
-MA0GCSqGSIb3DQEBCwUAA4ICAQBNY5giwZCM0sE93Dj2zEe8qCRwIaV4bvSe744X
-Y1+405vdrNEHKPUfFn1xLSnhiGU3loZrP15lexmWvxycLNEy0UxZgq3eR7HuW6xp
-GIm9ttYDZEP+pL9hwew3jiR38NRRR1Ur1MsBNkZnCELC1W8RFWIi77Fsb4fj2mGn
-2R+2voBvVS5kjkytW079CEIsZN9RVYfERiKPCfJDa87kk0xduqyh7sDegQl0B2Ot
-R9KnD1dJZjbii2GRkhpJ/Ig17CQH3J8PY/SIt9L+QAchnIEF051sjbBRUJuPK9gL
-eBEkZkwD1JLqGO6fxkcjNx7MIevTnIBjX2Epr8luyRy7eR3TdBT3aRQcCUqBCi3i
-WxAVR5sOZ90INTXftFbztoklitpQ9mxKXgFr+xggL6u3BdJk1Nt9BsYmRzh5Bg+6
-1eMDBumy3JEA7whE8p75X9cSnKTNrDQU3DA5XzpIhmI91XJArBhBfxgqGxaTf0uq
-SfZRDfnaO456ZsZdKUy62mry6Vg/hvzX52x/HxDlSQWbpYp5t03hshaWxtNE376q
-GdqOoGRRWCvyWi/UOYzabp6czTjwV1JH9IU379CsqIO5UNJ2MM2re4TDXofefU1C
-6eiYihy28xDfIiCdretLRlvFYFF/5X5xby/XWsDA9sGlL5OOiXC6o0Pl9vbek2+T
-Ibx3Nw==
------END CERTIFICATE-----
diff --git a/build/apex/com.android.runtime.pk8 b/build/apex/com.android.runtime.pk8
new file mode 100644
index 0000000..de96219
--- /dev/null
+++ b/build/apex/com.android.runtime.pk8
Binary files differ
diff --git a/build/apex/com.android.runtime.release.pk8 b/build/apex/com.android.runtime.release.pk8
deleted file mode 100644
index c63efb8..0000000
--- a/build/apex/com.android.runtime.release.pk8
+++ /dev/null
Binary files differ
diff --git a/build/apex/com.android.runtime.release.x509.pem b/build/apex/com.android.runtime.release.x509.pem
deleted file mode 100644
index 4a7607a..0000000
--- a/build/apex/com.android.runtime.release.x509.pem
+++ /dev/null
@@ -1,34 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIF0DCCA7igAwIBAgIJAMtsu/wrkZurMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNV
-BAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBW
-aWV3MRAwDgYDVQQKDAdBbmRyb2lkMRAwDgYDVQQLDAdBbmRyb2lkMRwwGgYDVQQD
-DBNjb20uYW5kcm9pZC5ydW50aW1lMCAXDTE5MDEyNTE3MTU0MFoYDzQ3NTYxMjIx
-MTcxNTQwWjB8MQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQG
-A1UEBwwNTW91bnRhaW4gVmlldzEQMA4GA1UECgwHQW5kcm9pZDEQMA4GA1UECwwH
-QW5kcm9pZDEcMBoGA1UEAwwTY29tLmFuZHJvaWQucnVudGltZTCCAiIwDQYJKoZI
-hvcNAQEBBQADggIPADCCAgoCggIBAL+aGSc+HU69vV1VbZb6WjXMDrE2Jo+JjXLU
-yVS3o8qlQeqN0RFbsbwnihnwg2xBnM6JiskAcuocz87dDuEt1zUEInC3Hpt/C2eg
-GUZepbq8po+v+b04YlX3aTaYTFqMjU0aQkjOqhnmVxg+KHpvudlvKB3VhH3D61al
-RReQzgM/Q6aUxcr4Z8XwvzV3i0K5NjiSuSt14K2yIaheh2OTbbwtvm3d+0sQDco6
-1gl0l4rM4e+GjxgWVqx8mfKhd4HTS3YIBDWXR6DFPBARzVBIpZu2QK4U6Jdsy2wI
-xg8+d5KWAoNQb7IQK6LQy7Fbw3PNJDo4Ph39G2wNgeMemz8uSQ9FZujc0AgxBom6
-J+ad7zlJBhYFC4UIKBYrRfJCHTN3GLuLvhu0p0jNMfdQXF6Tv/iG9g8JdZ0QjeWm
-/K+h1p6LUAIUV0UP7j8nIdp0j6NqMywkoeRDYlVQV/XdI7BiQe9Z8yNbF5Y3CxWT
-hMfN9iby11ImPilzpgv39ORVjDQdxxcwhJg2Xuu1752cBxcHu3ZcR8AiB7PCksXu
-EpUrjjOH8eVxoG1JJ/na5elUg/H35Or+JYYd8I8Ad1/GRkPrnIBAGzuyntOsNs4t
-2CEnhmV6EkEH8KP8miTdaa5NdPIwFRIHVBHcrqsqdmrINvoJhaVRH7YwmFjv48ak
-N4OyW3oLAgMBAAGjUzBRMB0GA1UdDgQWBBRqVJ0tsEOyqhKiZOrOfRD1+jQFMDAf
-BgNVHSMEGDAWgBRqVJ0tsEOyqhKiZOrOfRD1+jQFMDAPBgNVHRMBAf8EBTADAQH/
-MA0GCSqGSIb3DQEBCwUAA4ICAQAs+I1tRWRPmhA+FqcRdlAcY2Vy7NO12hjWXCT9
-hqenGk1/VnhH8aZT5lXZNaWeKonT5W7XydyrjiF09ndZBGew0rEZh6sMXH+G/drT
-9JxvfHsCQGrmX32V1XgAoRjV1VpUYIb2747fFWHHbl5frowNj955pkfseeKilSnF
-orUl5uGNxr6iNaVEUDfXBWkHwipYVyejAqdHkCQDhLtDBWsiskKpLWmmNKuy2QXQ
-uoyUyfeSR1Y+pT83qgmGb1LFLiOqL9ZKPrsIP+tG4lYB8L4SrYJf4MgfoJaKQ8ed
-2jsd42MegvOB2vdMyLgkf7EM/9DpE4BLpAy2mNd1AccL9YQ+0ezruxh6sYklJWGe
-2bHEbZk0duoNPsA87ZNKfFVV2cNVwSg/22HHjGieMUyPIwyGIzsHId8XiwXpZhLX
-VyacOVRd0SjTWK5Pxj6g21NrrcMXvFeCbveucf2ljKVxBVSbQKt67YlXxd9nLZjN
-zHnJWzDwlWXbyvxheLVVGEo0cqRbhxYMxXd9dM01EXJmIWqS8t0+aw90KKPFITNv
-qpxXnF5JJm1CzeBDtpmfepDupUR1bWansOd0sUuiDF/H1UcDiuBUC643RET1vjhv
-MllsShSeC6KGm3WwE0bhcvA9IdZC8CA3Btzw2J9aJO1gbVZ6vRkH+21cfR07so4N
-yXgprQ==
------END CERTIFICATE-----
diff --git a/build/apex/com.android.runtime.testing.pk8 b/build/apex/com.android.runtime.testing.pk8
deleted file mode 100644
index c8f4b8d..0000000
--- a/build/apex/com.android.runtime.testing.pk8
+++ /dev/null
Binary files differ
diff --git a/build/apex/com.android.runtime.testing.x509.pem b/build/apex/com.android.runtime.testing.x509.pem
deleted file mode 100644
index 5a3f1ad..0000000
--- a/build/apex/com.android.runtime.testing.x509.pem
+++ /dev/null
@@ -1,34 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIF2zCCA8OgAwIBAgIUG5O+NPtM0znZ8C7SF61kl380/5UwDQYJKoZIhvcNAQEL
-BQAwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcM
-DU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB0FuZHJvaWQxEDAOBgNVBAsMB0FuZHJv
-aWQxHDAaBgNVBAMME2NvbS5hbmRyb2lkLnJ1bnRpbWUwIBcNMTkwNjI0MTQ1ODU4
-WhgPNDc1NzA1MjAxNDU4NThaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxp
-Zm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRAwDgYDVQQKDAdBbmRyb2lk
-MRAwDgYDVQQLDAdBbmRyb2lkMRwwGgYDVQQDDBNjb20uYW5kcm9pZC5ydW50aW1l
-MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAmsFd0kQMlAgKlXR/orLj
-d4LNFGuMZFd50WLcd9eg4WxYDo3aTDLePFYZha7uYEZ7slpsToorZ7odUfEE9ocs
-5QiMqawgo4zsAGDltPM86cQ5lVc8lWHVuLHlL9osJ8f6xV8Frka8HFRSh08Pqyui
-wA4bYLWRan6dxuWNb0k+sJh2wZLngBwbuh82MkMfqES7XAHXSU8jNUT87b/cLmss
-mrcTOrReT3zWgwtwmYbAHHuzs7pfXnoBV8If6q1ZdSSs70Fyf1bHg/MsCFTTHSke
-f6BXcQ9vegcD+hqBzDCil99jlwnOL3ptepsSqKIdvv6G2uRWDd2+4dUkXvDu8QaE
-2CnMUl1484vQVvV/jmxZisMcGaXaYIPRUKOS71zxNBU0gylSjaRm3Iq3YkodHeEQ
-1iQLRZRH2mSUt6pl9e3NnIO6khAGiXIyTotT0W1ZBxccR76QYi5zcvTtl8/2wQ7q
-XZ7IIuzbaoK4x7aEqDSuXBkaZYyxkg0dNru7SA3CZhillntLyKuDnlgh5ORGckfS
-LRh62VepRZjTbfuJ0N8KrpawcuxrNXM8SyH7OfMKsCpPMGZpvtzNEV2MrD7RJ5Zq
-0/D+kaBb2he9W0vLs7L+LZzsZ854/ZAFRT3GCXRFHPjKRNsI7uvTzIwXoNzXCo1S
-EN1ygTlSd1wue4yGfdjT1MkCAwEAAaNTMFEwHQYDVR0OBBYEFNLhVRSFFot/RXr1
-hSRQcN6ZNzn5MB8GA1UdIwQYMBaAFNLhVRSFFot/RXr1hSRQcN6ZNzn5MA8GA1Ud
-EwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggIBAG/iTsWjeCydmYYShTu3e6DY
-RBdPTLdLVzfCqavxzsIbJuvsxpsdj1glK1AsvU/49plhofu36IVL3BIoYsUzLw63
-K/6n1lPdHAN1LXz7tCz/cra7ZcOJP87h6Xw7+blYfvxP/EUwhz4m/GYca8+1Ddio
-okXO0MdNiOXE+Qmfp1iXTr2l1WtcC1sD7jlU/0FhR9DFAT/vuZcsz8EyUSRY24Er
-05/mBNc6ebPVnJ24YsxSLj/CVPf82mhUml10EOhwtqgpZh+mPdL8LIAcT5aHzEbZ
-t81p1G0DJSJDobXZ9/GH2wii8cF0nK40L+VGvK48W1KOlW6K+JNwx2AiWw0agtlF
-TzDkTdtdwuTea87MfyRyZYqL1bN/I5W2g00EiZ/a+d8FimSZhwa4G3APkMYL65oR
-dotNim84Kga6pjpGPoCDUhFgoIQh27wWOn3lmk+xjjesB01hvXQQC30jdxuJalWX
-YNjAfYDpa26KuVsuu8t3KznBYAAapIZw1kH789uYfJmBVoonlotctn22+qG+PUgv
-q7vu7zu9MPgHcd+Vq/MFsQxfSnHFBEx+i7DI89oIxAfJWUXk9by1JGCDFzkgiQrz
-Ec6KfigmU0qClGl05cHZnTKLRV0fKVZRKSamSAFnaGWGy/utz181nLiRjNXiuxS2
-LxyS0Pcs8JHQlScH1ECw
------END CERTIFICATE-----
diff --git a/build/apex/com.android.runtime.x509.pem b/build/apex/com.android.runtime.x509.pem
new file mode 100644
index 0000000..890ae9f
--- /dev/null
+++ b/build/apex/com.android.runtime.x509.pem
@@ -0,0 +1,34 @@
+-----BEGIN CERTIFICATE-----
+MIIF2zCCA8OgAwIBAgIUIVa9I/DpCnStxMqP/g9wS+dwNcowDQYJKoZIhvcNAQEL
+BQAwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcM
+DU1vdW50YWluIFZpZXcxEDAOBgNVBAoMB0FuZHJvaWQxEDAOBgNVBAsMB0FuZHJv
+aWQxHDAaBgNVBAMME2NvbS5hbmRyb2lkLnJ1bnRpbWUwIBcNMTkwODEzMTIwNTU3
+WhgPNDc1NzA3MDkxMjA1NTdaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxp
+Zm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRAwDgYDVQQKDAdBbmRyb2lk
+MRAwDgYDVQQLDAdBbmRyb2lkMRwwGgYDVQQDDBNjb20uYW5kcm9pZC5ydW50aW1l
+MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0B6dmGfJk68K7Sj0hOnE
+uTobEz+lMWQKK+K1qOC13Nv9pkSvZqUbNFL9Qrkv46GVi3rFRgB1MOchCJ/f4Ost
+BsEbN3aCtRkvD2qrDNBzwvUPrxNxJ+WZnHUgvJyAS7tu8riRV+5N27lLLfpZon++
+8mYnxOll/050+qW+LC6FZTaTdrVWSlItPX4ZvKArlA6wXn88GJjiUgfcGxquwHbZ
+AhaUsdXIJ9DTJxf3NgsuPLjBepGXdPO3XK+qGFU/XyhEzmUHPXf2+OfgWs3cIAAf
+i5r2GL1Zw3S0ax+s5rujHn0TJFEOJ0UwMHWAZrZjp51qNu7Sza2KPFG6W9r3r6wj
+Ie8/som8YYy2Q1sXX2cbBrOxMU3yq/vaGTKWjpZ1wfzT24aVRRhxa6qdULNdj8fq
+RO7MTIY76KjV3ehGVi21501Kv3UfY9TqyPowVIttZ7m3ZAUYv+cObZZYc92VCON1
+irLJC9GtvvZYUKY+fr3quv9Fhf9fIevvSM1Nnn6MBUDiHmoyaNPymWaiCqzwUvig
+8sJW70Mh8mtANVJ1M3GSWHLenKVFe/kKoHaZttaHo+NAEpzcm4sGVNB3SqB3S+Pw
+d4BU1Tt/2GWqSZx7ALmSyjVdYGJZgAGusWPsdP1FPdyHBwhsBTW/bMhBLNU9NfjP
+uRjJyNroouQvpdPnW9NDfDECAwEAAaNTMFEwHQYDVR0OBBYEFKmGUpGYLLwLU/R+
+QIVxyI4UsDlNMB8GA1UdIwQYMBaAFKmGUpGYLLwLU/R+QIVxyI4UsDlNMA8GA1Ud
+EwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggIBAHzVs6gp+fnXbvhGP2aKFFJF
+xMIi4ahsoS5RneEEG/dQVKd/5NfrHY6lHIAV1kEk9TrvcemIo4n7SETd4Hj4O0xZ
+tnPC3y9v/kSbjryYouOEa4hBILKxVzIZw6MiM5arGo4ZYc1Rfck+F/92xj7o/kWo
+9+Dn58zNAHAMC13F1wM61e+tdHZJHgmLfUUYKvZ3sAgxmsQM8BfwobH2/Ww0IOCY
+PRYZwcIpdEu9D1dCM9kON/1Ss0jo6+6MuW1CMoER9alEVpKWv4o1Phrd9z7v7JDh
+ZW5jJC9n4HzwDDy679OrH512Dhv7HwT8dnRfylo+2pdOW7iby7MJzd/hql6MC9+h
+/5EwfuiNMaifo94SEFElNjhqJZwoqaFIyOT2fYt9hlvdBqWp/L5p+si0JOYbEnB2
+hIOIqfw7qdO8gZsCt7ps9JSxnPCVF1mAcrDuQcgVdGs2D3/HE+R3R504iOoAc0XF
+m9nw06M1O6bmdygQedIZ54wTINjhkJXtQluu74O2kl9wKNd2FSJWh0ZvudulohCM
+p7mS8lAlFbDPOCavlovIijXDYialcFNZnUSJAxE/k0rBBnnVxDTsJeR8ipOkaww4
+3POEm22OM57Tl60w4Jn8VZoPRl0G+R+uUaZdmPw6Gs/PgTDlwK+t1HQN0pFA0VMw
+Z4b+m+R+iUba0dbeVf/4
+-----END CERTIFICATE-----
diff --git a/build/apex/ld.config.txt b/build/apex/ld.config.txt
index 9081d64..c94437e 100644
--- a/build/apex/ld.config.txt
+++ b/build/apex/ld.config.txt
@@ -5,9 +5,9 @@
 # There are no versioned APEX paths here - this APEX module does not support
 # having several versions mounted.
 
-dir.runtime = /apex/com.android.runtime/bin/
+dir.art = /apex/com.android.art/bin/
 
-[runtime]
+[art]
 additional.namespaces = platform,conscrypt,runtime
 
 # The default namespace here only links to other namespaces, in particular
diff --git a/build/apex/manifest.json b/build/apex/manifest-art.json
similarity index 77%
rename from build/apex/manifest.json
rename to build/apex/manifest-art.json
index 587c199..ebba1b2 100644
--- a/build/apex/manifest.json
+++ b/build/apex/manifest-art.json
@@ -1,5 +1,5 @@
 {
-  "name": "com.android.runtime",
+  "name": "com.android.art",
   "version": 1,
   "preInstallHook": "bin/art_preinstall_hook",
   "postInstallHook": "bin/art_postinstall_hook"
diff --git a/build/apex/manifest-runtime.json b/build/apex/manifest-runtime.json
new file mode 100644
index 0000000..20a8314
--- /dev/null
+++ b/build/apex/manifest-runtime.json
@@ -0,0 +1,4 @@
+{
+  "name": "com.android.runtime",
+  "version": 1
+}
diff --git a/build/apex/runtime-ld.config.txt b/build/apex/runtime-ld.config.txt
new file mode 100644
index 0000000..dae883d
--- /dev/null
+++ b/build/apex/runtime-ld.config.txt
@@ -0,0 +1,8 @@
+# Copyright (C) 2019 The Android Open Source Project
+#
+# Bionic loader config file for the Runtime APEX. This is a minimal config to
+# make the linker able to load itself as an executable (it just needs to exist).
+
+dir.runtime = /apex/com.android.runtime/bin/
+
+[runtime]