aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMathieu Chartier2018-02-15 15:19:38 -0600
committerMathieu Chartier2018-02-21 15:50:21 -0600
commit5c658ac3a978648e8501a55b0f0eeb004026f1a4 (patch)
tree2ccf4fbc173174ff74da03fdf1ed1ea4dc181597 /core/dex_preopt_odex_install.mk
parent5ef78033d5cc5790f4efd75769dd7fba4ccf477a (diff)
downloadplatform-build-5c658ac3a978648e8501a55b0f0eeb004026f1a4.tar.gz
platform-build-5c658ac3a978648e8501a55b0f0eeb004026f1a4.tar.xz
platform-build-5c658ac3a978648e8501a55b0f0eeb004026f1a4.zip
Add property for generating dm files
Added product property: PRODUCT_DEX_PREOPT_GENERATE_DM_FILES. If this property is true, APKs compiled as verify will have the dex files left compressed and the vdex put in a dm file. The vdex file and oat files are not copied to system partition in this case. Bug: 70934104 Test: manual Change-Id: Ie137e14f14642b803a506162de6db8ac65a43f46
Diffstat (limited to 'core/dex_preopt_odex_install.mk')
-rw-r--r--core/dex_preopt_odex_install.mk63
1 files changed, 50 insertions, 13 deletions
diff --git a/core/dex_preopt_odex_install.mk b/core/dex_preopt_odex_install.mk
index 3a943bb75..2b2800bf6 100644
--- a/core/dex_preopt_odex_install.mk
+++ b/core/dex_preopt_odex_install.mk
@@ -139,8 +139,10 @@ $(my_built_profile):
139 --dex-location=$(PRIVATE_DEX_LOCATION) \ 139 --dex-location=$(PRIVATE_DEX_LOCATION) \
140 --reference-profile-file=$@ 140 --reference-profile-file=$@
141dex_preopt_profile_src_file:= 141dex_preopt_profile_src_file:=
142# Remove compressed APK extension. 142
143# Remove compressed APK extension.
143my_installed_profile := $(patsubst %.gz,%,$(LOCAL_INSTALLED_MODULE)).prof 144my_installed_profile := $(patsubst %.gz,%,$(LOCAL_INSTALLED_MODULE)).prof
145
144# my_installed_profile := $(LOCAL_INSTALLED_MODULE).prof 146# my_installed_profile := $(LOCAL_INSTALLED_MODULE).prof
145$(eval $(call copy-one-file,$(my_built_profile),$(my_installed_profile))) 147$(eval $(call copy-one-file,$(my_built_profile),$(my_installed_profile)))
146build_installed_profile:=$(my_built_profile):$(my_installed_profile) 148build_installed_profile:=$(my_built_profile):$(my_installed_profile)
@@ -244,12 +246,39 @@ ifeq (,$(filter --compiler-filter=%, $(LOCAL_DEX_PREOPT_FLAGS)))
244 # For non system server jars, use speed-profile when we have a profile. 246 # For non system server jars, use speed-profile when we have a profile.
245 LOCAL_DEX_PREOPT_FLAGS += --compiler-filter=speed-profile 247 LOCAL_DEX_PREOPT_FLAGS += --compiler-filter=speed-profile
246 else 248 else
247 LOCAL_DEX_PREOPT_FLAGS += --compiler-filter=$(my_default_compiler_filter) 249 LOCAL_DEX_PREOPT_FLAGS += --compiler-filter=$(my_default_compiler_filter)
248 endif 250 endif
249 endif 251 endif
250 endif 252 endif
251endif 253endif
252 254
255my_generate_dm := $(PRODUCT_DEX_PREOPT_GENERATE_DM_FILES)
256ifeq (,$(filter $(LOCAL_DEX_PREOPT_FLAGS),--compiler-filter=verify))
257# Generating DM files only makes sense for verify, avoid doing for non verify compiler filter APKs.
258my_generate_dm := false
259endif
260
261# No reason to use a dm file if the dex is already uncompressed.
262ifeq ($(LOCAL_UNCOMPRESS_DEX),true)
263my_generate_dm := false
264endif
265
266ifeq (true,$(my_generate_dm))
267LOCAL_DEX_PREOPT_FLAGS += --copy-dex-files=false
268LOCAL_DEX_PREOPT := nostripping
269my_built_dm := $(dir $(LOCAL_BUILT_MODULE))generated.dm
270my_installed_dm := $(patsubst %.apk,%,$(LOCAL_INSTALLED_MODULE)).dm
271my_copied_vdex := $(dir $(LOCAL_BUILT_MODULE))primary.vdex
272$(eval $(call copy-one-file,$(built_vdex),$(my_copied_vdex)))
273$(my_built_dm): PRIVATE_INPUT_VDEX := $(my_copied_vdex)
274$(my_built_dm): $(my_copied_vdex) $(ZIPTIME)
275 $(hide) mkdir -p $(dir $@)
276 $(hide) rm -f $@
277 $(hide) zip -qD -j -X -9 $@ $(PRIVATE_INPUT_VDEX)
278 $(ZIPTIME) $@
279$(eval $(call copy-one-file,$(my_built_dm),$(my_installed_dm)))
280endif
281
253# PRODUCT_SYSTEM_SERVER_DEBUG_INFO overrides WITH_DEXPREOPT_DEBUG_INFO. 282# PRODUCT_SYSTEM_SERVER_DEBUG_INFO overrides WITH_DEXPREOPT_DEBUG_INFO.
254my_system_server_debug_info := $(PRODUCT_SYSTEM_SERVER_DEBUG_INFO) 283my_system_server_debug_info := $(PRODUCT_SYSTEM_SERVER_DEBUG_INFO)
255ifeq (,$(filter eng, $(TARGET_BUILD_VARIANT))) 284ifeq (,$(filter eng, $(TARGET_BUILD_VARIANT)))
@@ -274,14 +303,26 @@ $(built_vdex): $(built_odex)
274$(built_art): $(built_odex) 303$(built_art): $(built_odex)
275endif 304endif
276 305
277# Add the installed_odex to the list of installed files for this module. 306ifneq (true,$(my_generate_dm))
278ALL_MODULES.$(my_register_name).INSTALLED += $(installed_odex) 307 # Add the installed_odex to the list of installed files for this module if we aren't generating a
279ALL_MODULES.$(my_register_name).INSTALLED += $(installed_vdex) 308 # dm file.
280ALL_MODULES.$(my_register_name).INSTALLED += $(installed_art) 309 ALL_MODULES.$(my_register_name).INSTALLED += $(installed_odex)
310 ALL_MODULES.$(my_register_name).INSTALLED += $(installed_vdex)
311 ALL_MODULES.$(my_register_name).INSTALLED += $(installed_art)
281 312
282ALL_MODULES.$(my_register_name).BUILT_INSTALLED += $(built_installed_odex) 313 ALL_MODULES.$(my_register_name).BUILT_INSTALLED += $(built_installed_odex)
283ALL_MODULES.$(my_register_name).BUILT_INSTALLED += $(built_installed_vdex) 314 ALL_MODULES.$(my_register_name).BUILT_INSTALLED += $(built_installed_vdex)
284ALL_MODULES.$(my_register_name).BUILT_INSTALLED += $(built_installed_art) 315 ALL_MODULES.$(my_register_name).BUILT_INSTALLED += $(built_installed_art)
316
317 # Make sure to install the .odex and .vdex when you run "make <module_name>"
318 $(my_all_targets): $(installed_odex) $(installed_vdex) $(installed_art)
319else
320 ALL_MODULES.$(my_register_name).INSTALLED += $(my_installed_dm)
321 ALL_MODULES.$(my_register_name).BUILT_INSTALLED += $(my_built_dm) $(my_installed_dm)
322
323 # Make sure to install the .dm when you run "make <module_name>"
324 $(my_all_targets): $(installed_dm)
325endif
285 326
286# Record dex-preopt config. 327# Record dex-preopt config.
287DEXPREOPT.$(LOCAL_MODULE).DEX_PREOPT := $(LOCAL_DEX_PREOPT) 328DEXPREOPT.$(LOCAL_MODULE).DEX_PREOPT := $(LOCAL_DEX_PREOPT)
@@ -295,10 +336,6 @@ DEXPREOPT.$(LOCAL_MODULE).INSTALLED_STRIPPED := $(LOCAL_INSTALLED_MODULE)
295DEXPREOPT.MODULES.$(LOCAL_MODULE_CLASS) := $(sort \ 336DEXPREOPT.MODULES.$(LOCAL_MODULE_CLASS) := $(sort \
296 $(DEXPREOPT.MODULES.$(LOCAL_MODULE_CLASS)) $(LOCAL_MODULE)) 337 $(DEXPREOPT.MODULES.$(LOCAL_MODULE_CLASS)) $(LOCAL_MODULE))
297 338
298
299# Make sure to install the .odex and .vdex when you run "make <module_name>"
300$(my_all_targets): $(installed_odex) $(installed_vdex) $(installed_art)
301
302endif # LOCAL_DEX_PREOPT 339endif # LOCAL_DEX_PREOPT
303 340
304# Profile doesn't depend on LOCAL_DEX_PREOPT. 341# Profile doesn't depend on LOCAL_DEX_PREOPT.