Reland: Add boot.art.rel files to system image
This file is used to verify that all differences between /system boot*.art and /data/dalvik-cache boot*.art only consist of relocation changes. The goal is to mitigate /data/dalvik-cache boot*.art files being a persistence vector. Test: Build and ensure boot.art.rel files are on the image. Bug: 66697305 Change-Id: I68c445da46b2d3099ee347a04af4fbb84da85b0d
This commit is contained in:
parent
a5b48fcf7f
commit
a1b5dfe151
2 changed files with 15 additions and 5 deletions
|
@ -7,11 +7,14 @@
|
|||
# Set USE_DEX2OAT_DEBUG to false for only building non-debug versions.
|
||||
ifeq ($(USE_DEX2OAT_DEBUG),false)
|
||||
DEX2OAT := $(HOST_OUT_EXECUTABLES)/dex2oat$(HOST_EXECUTABLE_SUFFIX)
|
||||
PATCHOAT := $(HOST_OUT_EXECUTABLES)/patchoat$(HOST_EXECUTABLE_SUFFIX)
|
||||
else
|
||||
DEX2OAT := $(HOST_OUT_EXECUTABLES)/dex2oatd$(HOST_EXECUTABLE_SUFFIX)
|
||||
PATCHOAT := $(HOST_OUT_EXECUTABLES)/patchoatd$(HOST_EXECUTABLE_SUFFIX)
|
||||
endif
|
||||
|
||||
DEX2OAT_DEPENDENCY += $(DEX2OAT)
|
||||
PATCHOAT_DEPENDENCY += $(PATCHOAT)
|
||||
|
||||
# Use the first preloaded-classes file in PRODUCT_COPY_FILES.
|
||||
PRELOADED_CLASSES := $(call word-colon,1,$(firstword \
|
||||
|
@ -87,8 +90,8 @@ LIBART_TARGET_BOOT_DEX_FILES := $(foreach jar,$(LIBART_TARGET_BOOT_JARS),$(call
|
|||
# is converted into to boot.art (to match the legacy assumption that boot.art
|
||||
# exists), and the rest are converted to boot-<name>.art.
|
||||
# In addition, each .art file has an associated .oat file.
|
||||
LIBART_TARGET_BOOT_ART_EXTRA_FILES := $(foreach jar,$(wordlist 2,999,$(LIBART_TARGET_BOOT_JARS)),boot-$(jar).art boot-$(jar).oat boot-$(jar).vdex)
|
||||
LIBART_TARGET_BOOT_ART_EXTRA_FILES += boot.oat boot.vdex
|
||||
LIBART_TARGET_BOOT_ART_EXTRA_FILES := $(foreach jar,$(wordlist 2,999,$(LIBART_TARGET_BOOT_JARS)),boot-$(jar).art boot-$(jar).art.rel boot-$(jar).oat boot-$(jar).vdex)
|
||||
LIBART_TARGET_BOOT_ART_EXTRA_FILES += boot.art.rel boot.oat boot.vdex
|
||||
|
||||
# If we use a boot image profile.
|
||||
my_use_profile_for_boot_image := $(PRODUCT_USE_PROFILE_FOR_BOOT_IMAGE)
|
||||
|
|
|
@ -73,14 +73,16 @@ ifneq (addresstrue,$(SANITIZE_TARGET)$(SANITIZE_LITE))
|
|||
|
||||
$($(my_2nd_arch_prefix)DEFAULT_DEX_PREOPT_BUILT_IMAGE_FILENAME): PRIVATE_BOOT_IMAGE_FLAGS := $(my_boot_image_flags)
|
||||
$($(my_2nd_arch_prefix)DEFAULT_DEX_PREOPT_BUILT_IMAGE_FILENAME): PRIVATE_2ND_ARCH_VAR_PREFIX := $(my_2nd_arch_prefix)
|
||||
$($(my_2nd_arch_prefix)DEFAULT_DEX_PREOPT_BUILT_IMAGE_FILENAME): PRIVATE_IMAGE_LOCATION := $($(my_2nd_arch_prefix)DEFAULT_DEX_PREOPT_BUILT_IMAGE_LOCATION)
|
||||
# Use dex2oat debug version for better error reporting
|
||||
$($(my_2nd_arch_prefix)DEFAULT_DEX_PREOPT_BUILT_IMAGE_FILENAME) : $(LIBART_TARGET_BOOT_DEX_FILES) $(PRELOADED_CLASSES) $(COMPILED_CLASSES) $(DIRTY_IMAGE_OBJECTS) $(DEX2OAT_DEPENDENCY) $(my_out_boot_image_profile_location)
|
||||
$($(my_2nd_arch_prefix)DEFAULT_DEX_PREOPT_BUILT_IMAGE_FILENAME) : $(LIBART_TARGET_BOOT_DEX_FILES) $(PRELOADED_CLASSES) $(COMPILED_CLASSES) $(DIRTY_IMAGE_OBJECTS) $(DEX2OAT_DEPENDENCY) $(PATCHOAT_DEPENDENCY) $(my_out_boot_image_profile_location)
|
||||
@echo "target dex2oat: $@"
|
||||
@mkdir -p $(dir $@)
|
||||
@mkdir -p $(dir $($(PRIVATE_2ND_ARCH_VAR_PREFIX)LIBART_TARGET_BOOT_OAT_UNSTRIPPED))
|
||||
@rm -f $(dir $@)/*.art $(dir $@)/*.oat
|
||||
@rm -f $(dir $@)/*.art $(dir $@)/*.oat $(dir $@)/*.art.rel
|
||||
@rm -f $(dir $($(PRIVATE_2ND_ARCH_VAR_PREFIX)LIBART_TARGET_BOOT_OAT_UNSTRIPPED))/*.art
|
||||
@rm -f $(dir $($(PRIVATE_2ND_ARCH_VAR_PREFIX)LIBART_TARGET_BOOT_OAT_UNSTRIPPED))/*.oat
|
||||
@rm -f $(dir $($(PRIVATE_2ND_ARCH_VAR_PREFIX)LIBART_TARGET_BOOT_OAT_UNSTRIPPED))/*.art.rel
|
||||
$(hide) ANDROID_LOG_TAGS="*:e" $(DEX2OAT) --runtime-arg -Xms$(DEX2OAT_IMAGE_XMS) \
|
||||
--runtime-arg -Xmx$(DEX2OAT_IMAGE_XMX) \
|
||||
$(PRIVATE_BOOT_IMAGE_FLAGS) \
|
||||
|
@ -99,6 +101,11 @@ $($(my_2nd_arch_prefix)DEFAULT_DEX_PREOPT_BUILT_IMAGE_FILENAME) : $(LIBART_TARGE
|
|||
--multi-image --no-inline-from=core-oj.jar \
|
||||
--abort-on-hard-verifier-error \
|
||||
--abort-on-soft-verifier-error \
|
||||
$(PRODUCT_DEX_PREOPT_BOOT_FLAGS) $(GLOBAL_DEXPREOPT_FLAGS) $(ART_BOOT_IMAGE_EXTRA_ARGS)
|
||||
$(PRODUCT_DEX_PREOPT_BOOT_FLAGS) $(GLOBAL_DEXPREOPT_FLAGS) $(ART_BOOT_IMAGE_EXTRA_ARGS) && \
|
||||
ANDROID_ROOT=$(PRODUCT_OUT)/system ANDROID_DATA=$(dir $@) $(PATCHOAT) \
|
||||
--input-image-location=$(PRIVATE_IMAGE_LOCATION) \
|
||||
--output-image-relocation-file=$@.rel \
|
||||
--instruction-set=$($(PRIVATE_2ND_ARCH_VAR_PREFIX)DEX2OAT_TARGET_ARCH) \
|
||||
--base-offset-delta=0x10000000
|
||||
|
||||
endif
|
||||
|
|
Loading…
Reference in a new issue