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 d795046319)

Change-Id: Id94bcc382e90b279e726f2d1d0350fc60a5020df
This commit is contained in:
Brian Carlstrom 2014-06-16 16:51:42 -07:00 committed by Narayan Kamath
parent e87fcf5e16
commit 85455b6cce
3 changed files with 8 additions and 5 deletions

View File

@ -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
# ************************************************

View File

@ -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)

View File

@ -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