From: Ying Wang Date: Tue, 2 Jun 2015 02:19:57 +0000 (-0700) Subject: Uncompress .so files before signing the apk. X-Git-Tag: android-x86-6.0-r1~179^2 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=226eb92321ef5b71a448b8e857eaedeb3dd0419e;p=android-x86%2Fbuild.git Uncompress .so files before signing the apk. - In uncompress-shared-libs we may strip .so files not for the current TARGET_ARCH. So we need to strip first and then sign the apk. - For PRESIGNED apks, make sure we don't strip the .so files even if they are "fat". Bug: 21571418 Bug: 8076853 Change-Id: Ifd1193dda0c2cd52ac148064ce5a32bcdd03f75c --- diff --git a/core/prebuilt_internal.mk b/core/prebuilt_internal.mk index 19fdad651..04063537f 100644 --- a/core/prebuilt_internal.mk +++ b/core/prebuilt_internal.mk @@ -197,6 +197,12 @@ include $(BUILD_SYSTEM)/dex_preopt_odex_install.mk # Sign and align non-presigned .apks. # The embedded prebuilt jni to uncompress. +ifeq ($(LOCAL_CERTIFICATE),PRESIGNED) +# For PRESIGNED apks we must uncompress every .so file: +# even if the .so file isn't for the current TARGET_ARCH, +# we can't strip the file. +embedded_prebuilt_jni_libs := 'lib/*.so' +endif ifndef embedded_prebuilt_jni_libs # No LOCAL_PREBUILT_JNI_LIBS, uncompress all. embedded_prebuilt_jni_libs := 'lib/*.so' @@ -205,6 +211,7 @@ $(built_module): PRIVATE_EMBEDDED_JNI_LIBS := $(embedded_prebuilt_jni_libs) $(built_module) : $(my_prebuilt_src_file) | $(ACP) $(ZIPALIGN) $(SIGNAPK_JAR) $(transform-prebuilt-to-target) + $(uncompress-shared-libs) ifneq ($(LOCAL_CERTIFICATE),PRESIGNED) @# Only strip out files if we can re-sign the package. ifdef LOCAL_DEX_PREOPT @@ -214,7 +221,6 @@ endif endif $(sign-package) endif - $(uncompress-shared-libs) $(align-package) ###############################