diff --git a/core/dex_preopt.mk b/core/dex_preopt.mk index aad0acd4a3..0dcb07fd17 100644 --- a/core/dex_preopt.mk +++ b/core/dex_preopt.mk @@ -35,10 +35,10 @@ endif # Conditional to building on linux, as dex2oat currently does not work on darwin. ifeq ($(HOST_OS),linux) WITH_DEXPREOPT ?= true -# For an eng build only pre-opt the boot image. This gives reasonable performance and still -# allows a simple workflow: building in frameworks/base and syncing. +# For an eng build only pre-opt the boot image and system server. This gives reasonable performance +# and still allows a simple workflow: building in frameworks/base and syncing. ifeq (eng,$(TARGET_BUILD_VARIANT)) - WITH_DEXPREOPT_BOOT_IMG_ONLY ?= true + WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY ?= true endif # Add mini-debug-info to the boot classpath unless explicitly asked not to. ifneq (false,$(WITH_DEXPREOPT_DEBUG_INFO)) diff --git a/core/dex_preopt_odex_install.mk b/core/dex_preopt_odex_install.mk index ffcd79803b..8c1a606ce9 100644 --- a/core/dex_preopt_odex_install.mk +++ b/core/dex_preopt_odex_install.mk @@ -33,9 +33,12 @@ endif ifeq (,$(strip $(built_dex)$(my_prebuilt_src_file)$(LOCAL_SOONG_DEX_JAR))) # contains no java code LOCAL_DEX_PREOPT := endif -# if WITH_DEXPREOPT_BOOT_IMG_ONLY=true and module is not in boot class path skip -ifeq (true,$(WITH_DEXPREOPT_BOOT_IMG_ONLY)) -ifeq ($(filter $(DEXPREOPT_BOOT_JARS_MODULES),$(LOCAL_MODULE)),) +# if WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY=true and module is not in boot class path skip +# Also preopt system server jars since selinux prevents system server from loading anything from +# /data. If we don't do this they will need to be extracted which is not favorable for RAM usage +# or performance. +ifeq (true,$(WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY)) +ifeq ($(filter $(PRODUCT_SYSTEM_SERVER_JARS) $(DEXPREOPT_BOOT_JARS_MODULES),$(LOCAL_MODULE)),) LOCAL_DEX_PREOPT := endif endif diff --git a/core/product.mk b/core/product.mk index cf622830a4..c955ccc061 100644 --- a/core/product.mk +++ b/core/product.mk @@ -303,7 +303,7 @@ _product_stash_var_list += \ _product_stash_var_list += \ DEFAULT_SYSTEM_DEV_CERTIFICATE \ WITH_DEXPREOPT \ - WITH_DEXPREOPT_BOOT_IMG_ONLY \ + WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY \ WITH_DEXPREOPT_APP_IMAGE # diff --git a/target/board/generic/BoardConfig.mk b/target/board/generic/BoardConfig.mk index 8bb3ed0d90..331f082196 100644 --- a/target/board/generic/BoardConfig.mk +++ b/target/board/generic/BoardConfig.mk @@ -34,7 +34,7 @@ USE_CAMERA_STUB := true ifeq ($(HOST_OS),linux) ifeq ($(WITH_DEXPREOPT),) WITH_DEXPREOPT := true - WITH_DEXPREOPT_BOOT_IMG_ONLY := false + WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY := false endif endif diff --git a/target/board/generic_arm64/BoardConfig.mk b/target/board/generic_arm64/BoardConfig.mk index 2feba6b821..d6df2cfd19 100644 --- a/target/board/generic_arm64/BoardConfig.mk +++ b/target/board/generic_arm64/BoardConfig.mk @@ -65,7 +65,7 @@ USE_CAMERA_STUB := true ifeq ($(HOST_OS),linux) ifeq ($(WITH_DEXPREOPT),) WITH_DEXPREOPT := true - WITH_DEXPREOPT_BOOT_IMG_ONLY := false + WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY := false endif endif diff --git a/target/board/generic_mips/BoardConfig.mk b/target/board/generic_mips/BoardConfig.mk index a9e46b42a3..fb66d21f89 100644 --- a/target/board/generic_mips/BoardConfig.mk +++ b/target/board/generic_mips/BoardConfig.mk @@ -42,7 +42,7 @@ USE_CAMERA_STUB := true ifeq ($(HOST_OS),linux) ifeq ($(WITH_DEXPREOPT),) WITH_DEXPREOPT := true - WITH_DEXPREOPT_BOOT_IMG_ONLY := false + WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY := false endif endif diff --git a/target/board/generic_mips64/BoardConfig.mk b/target/board/generic_mips64/BoardConfig.mk index 6cb6c11a57..67bb51f715 100644 --- a/target/board/generic_mips64/BoardConfig.mk +++ b/target/board/generic_mips64/BoardConfig.mk @@ -57,7 +57,7 @@ USE_CAMERA_STUB := true ifeq ($(HOST_OS),linux) ifeq ($(WITH_DEXPREOPT),) WITH_DEXPREOPT := true - WITH_DEXPREOPT_BOOT_IMG_ONLY := false + WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY := false endif endif diff --git a/target/board/generic_x86/BoardConfig.mk b/target/board/generic_x86/BoardConfig.mk index bb2166b536..000a9a310e 100644 --- a/target/board/generic_x86/BoardConfig.mk +++ b/target/board/generic_x86/BoardConfig.mk @@ -22,7 +22,7 @@ USE_CAMERA_STUB := true # of an SDK AVD. Note that this operation only works on Linux for now ifeq ($(HOST_OS),linux) WITH_DEXPREOPT ?= true -WITH_DEXPREOPT_BOOT_IMG_ONLY ?= false +WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY ?= false endif TARGET_USES_HWC2 := true diff --git a/target/board/generic_x86_64/BoardConfig.mk b/target/board/generic_x86_64/BoardConfig.mk index b49a10ca01..883dd2e5c4 100755 --- a/target/board/generic_x86_64/BoardConfig.mk +++ b/target/board/generic_x86_64/BoardConfig.mk @@ -28,7 +28,7 @@ USE_CAMERA_STUB := true # of an SDK AVD. Note that this operation only works on Linux for now ifeq ($(HOST_OS),linux) WITH_DEXPREOPT ?= true -WITH_DEXPREOPT_BOOT_IMG_ONLY ?= false +WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY ?= false endif TARGET_USES_HWC2 := true diff --git a/target/board/generic_x86_arm/BoardConfig.mk b/target/board/generic_x86_arm/BoardConfig.mk index 4a2e159ecd..847ad8014f 100644 --- a/target/board/generic_x86_arm/BoardConfig.mk +++ b/target/board/generic_x86_arm/BoardConfig.mk @@ -39,7 +39,7 @@ USE_CAMERA_STUB := true ifeq ($(HOST_OS),linux) ifeq ($(WITH_DEXPREOPT),) WITH_DEXPREOPT := true - WITH_DEXPREOPT_BOOT_IMG_ONLY := false + WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY := false endif endif