OSDN Git Service

Make default 64-bit primary, 32-bit secondary
authorBrian Carlstrom <bdc@google.com>
Mon, 16 Jun 2014 23:51:42 +0000 (16:51 -0700)
committerNarayan Kamath <narayan@google.com>
Fri, 20 Jun 2014 13:24:32 +0000 (14:24 +0100)
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
core/config.mk
target/product/core_64_bit.mk

index ca37637..1fa7a09 100644 (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
 # ************************************************
index 79d5985..7c03e85 100644 (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)
index 971b6bd..76e2a36 100644 (file)
 # 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