From 85455b6cce4e00c57011b5f4e746561d06ca412c Mon Sep 17 00:00:00 2001 From: Brian Carlstrom Date: Mon, 16 Jun 2014 16:51:42 -0700 Subject: [PATCH] Make default 64-bit primary, 32-bit secondary This is required to get aarch64 & x86_64 emulators booting on lmp-preview-dev. Without this change, the system_server is a 32 bit process but java only apps that use the "android.uid.system" shared UID are dex2oated to 64 bit and won't work correctly. The correct fix needs build system changes, so this is the easiest fix for now. Note that this happens to work on volantis because the package manager adjusts their ABI correctly during boot. That can't happen on emulators because of dex-preopt; dex2oat can't oatify a dex file from inside an existing oat file. (cherry picked from commit d79504631926bbdd1bdc721e8824fcb8a9952f54) Change-Id: Id94bcc382e90b279e726f2d1d0350fc60a5020df --- CleanSpec.mk | 3 +++ core/config.mk | 2 +- target/product/core_64_bit.mk | 8 ++++---- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/CleanSpec.mk b/CleanSpec.mk index ca37637b8..1fa7a0939 100644 --- a/CleanSpec.mk +++ b/CleanSpec.mk @@ -260,6 +260,9 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop) $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/app/*) $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/APPS/*) +# Change ro.zygote for core_64_bit.mk from zygote32_64 to zygote64_32 +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/root/default.prop) +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/recovery/root/default.prop) # ************************************************ # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST # ************************************************ diff --git a/core/config.mk b/core/config.mk index 79d5985db..7c03e85e1 100644 --- a/core/config.mk +++ b/core/config.mk @@ -254,7 +254,7 @@ endif # # Note that this assumes that the 2ND_CPU_ABI for a 64 bit target # is always 32 bits. If this isn't the case, these variables should -# be overriden in the boarc configuration. +# be overriden in the board configuration. ifeq (,$(TARGET_CPU_ABI_LIST_64_BIT)) ifeq (true|true,$(TARGET_IS_64_BIT)|$(TARGET_SUPPORTS_64_BIT_APPS)) TARGET_CPU_ABI_LIST_64_BIT := $(TARGET_CPU_ABI) $(TARGET_CPU_ABI2) diff --git a/target/product/core_64_bit.mk b/target/product/core_64_bit.mk index 971b6bdb4..76e2a36a3 100644 --- a/target/product/core_64_bit.mk +++ b/target/product/core_64_bit.mk @@ -22,12 +22,12 @@ # For now this will allow 64-bit apps, but still compile all apps with JNI # for 32-bit only. -# Copy the 32-bit primary, 64-bit secondary zygote startup script -PRODUCT_COPY_FILES += system/core/rootdir/init.zygote32_64.rc:root/init.zygote32_64.rc +# Copy the 64-bit primary, 32-bit secondary zygote startup script +PRODUCT_COPY_FILES += system/core/rootdir/init.zygote64_32.rc:root/init.zygote64_32.rc -# Set the zygote property to select the 32-bit primary, 64-bit secondary script +# Set the zygote property to select the 64-bit primary, 32-bit secondary script # This line must be parsed before the one in core_minimal.mk -PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.zygote=zygote32_64 +PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.zygote=zygote64_32 TARGET_SUPPORTS_32_BIT_APPS := true TARGET_SUPPORTS_64_BIT_APPS := true