Running jarjar on Java resources.

Before this change, Java resources are added as a separate step
(add-java-resources-to-package) after dex is run, so jarjar isn't run on
the resource files.
With this change, we add Java resources immediately after we call javac,
so jarjar is run on the resource files (the module's own resource, as
well as resources carried by static Java libraries).
When we generate the final apk/jar, we use the jarjar'ed jar as the
inital pacakge file, with class files and empty folders removed.

When jack is enabled, in jack-java-to-dex we add the Java resources to
a temp jar using the PRIVATE_EXTRA_JAR_ARGS, and extrac the files in a
temp dir. Jack will process the resource files and output the result to
PRIVATE_JACK_INTERMEDIATES_DIR. When we package the final apk/jar, we
need to call add-carried-jack-resources to readd the resources.
(TODO: if jack can output all resources to a jar/zip file, we can use
that file as the initial package file as well.)

Bug: 18837479
Change-Id: I15ecf282bfb65fd53dd03fbd03dd4c71927c186a
This commit is contained in:
Ying Wang
2015-01-14 14:23:56 -08:00
parent 5ef304001e
commit 140274707e
8 changed files with 60 additions and 63 deletions

View File

@@ -409,7 +409,6 @@ endif # TARGET_
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_RESOURCE_DIR := $(LOCAL_RESOURCE_DIR) $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_RESOURCE_DIR := $(LOCAL_RESOURCE_DIR)
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_ASSET_DIR := $(LOCAL_ASSET_DIR) $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_ASSET_DIR := $(LOCAL_ASSET_DIR)
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_STATIC_JAVA_LIBRARIES := $(full_static_java_libs) $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_STATIC_JAVA_LIBRARIES := $(full_static_java_libs)
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_STATIC_JACK_LIBRARIES := $(full_static_jack_libs)
# full_java_libs: The list of files that should be used as the classpath. # full_java_libs: The list of files that should be used as the classpath.
# Using this list as a dependency list WILL NOT WORK. # Using this list as a dependency list WILL NOT WORK.
@@ -682,7 +681,7 @@ endif
########################################################### ###########################################################
# JACK # JACK
########################################################### ###########################################################
ifeq ($(strip $(LOCAL_USE_JACK)),true) ifeq ($(LOCAL_USE_JACK),true)
ifdef need_compile_java ifdef need_compile_java
full_static_jack_libs := \ full_static_jack_libs := \

View File

@@ -1702,6 +1702,7 @@ $(if $(PRIVATE_JAR_MANIFEST), \
jar -cfm $@ $(dir $@)/manifest.mf \ jar -cfm $@ $(dir $@)/manifest.mf \
-C $(PRIVATE_CLASS_INTERMEDIATES_DIR) ., \ -C $(PRIVATE_CLASS_INTERMEDIATES_DIR) ., \
$(hide) jar -cf $@ -C $(PRIVATE_CLASS_INTERMEDIATES_DIR) .) $(hide) jar -cf $@ -C $(PRIVATE_CLASS_INTERMEDIATES_DIR) .)
$(if $(PRIVATE_EXTRA_JAR_ARGS),$(call add-java-resources-to,$@))
endef endef
define transform-java-to-classes.jar define transform-java-to-classes.jar
@@ -1733,6 +1734,12 @@ $(if $(PRIVATE_JACK_PROGUARD_FLAGS), \
$(hide) echo -basedirectory $(CURDIR) > $@.flags; \ $(hide) echo -basedirectory $(CURDIR) > $@.flags; \
echo $(PRIVATE_JACK_PROGUARD_FLAGS) >> $@.flags; \ echo $(PRIVATE_JACK_PROGUARD_FLAGS) >> $@.flags; \
) )
$(if $(PRIVATE_EXTRA_JAR_ARGS),
$(hide) mkdir -p $@.res.tmp
$(hide) $(call create-empty-package-at,$@.res.tmp.zip)
$(hide) $(call add-java-resources-to,$@.res.tmp.zip)
$(hide) $(call unzip-jar-files,$@.res.tmp.zip,$@.res.tmp)
$(hide) rm $@.res.tmp.zip)
$(hide) if [ -s $(PRIVATE_JACK_INTERMEDIATES_DIR)/java-source-list-uniq ] ; then \ $(hide) if [ -s $(PRIVATE_JACK_INTERMEDIATES_DIR)/java-source-list-uniq ] ; then \
export tmpEcjArg="@$(PRIVATE_JACK_INTERMEDIATES_DIR)/java-source-list-uniq"; \ export tmpEcjArg="@$(PRIVATE_JACK_INTERMEDIATES_DIR)/java-source-list-uniq"; \
else \ else \
@@ -1746,6 +1753,7 @@ $(call call-jack,$(PRIVATE_JACK_VM),$(PRIVATE_JACK_VM_ARGS),$(PRIVATE_JACK_EXTRA
$(addprefix --classpath ,$(strip \ $(addprefix --classpath ,$(strip \
$(call normalize-path-list,$(PRIVATE_BOOTCLASSPATH_JAVA_LIBRARIES) $(PRIVATE_ALL_JACK_LIBRARIES)))) \ $(call normalize-path-list,$(PRIVATE_BOOTCLASSPATH_JAVA_LIBRARIES) $(PRIVATE_ALL_JACK_LIBRARIES)))) \
$(addprefix --import ,$(call reverse-list,$(PRIVATE_STATIC_JACK_LIBRARIES))) \ $(addprefix --import ,$(call reverse-list,$(PRIVATE_STATIC_JACK_LIBRARIES))) \
$(if $(PRIVATE_EXTRA_JAR_ARGS),--import-resource $@.res.tmp) \
-D jack.import.resource.policy=keep-first \ -D jack.import.resource.policy=keep-first \
-D jack.import.type.policy=keep-first \ -D jack.import.type.policy=keep-first \
--output-jack $(PRIVATE_CLASSES_JACK) \ --output-jack $(PRIVATE_CLASSES_JACK) \
@@ -1757,6 +1765,7 @@ $(call call-jack,$(PRIVATE_JACK_VM),$(PRIVATE_JACK_VM_ARGS),$(PRIVATE_JACK_EXTRA
|| ( rm -rf $(PRIVATE_CLASSES_JACK); rm -rf $(PRIVATE_JACK_INTERMEDIATES_DIR); exit 41 ) || ( rm -rf $(PRIVATE_CLASSES_JACK); rm -rf $(PRIVATE_JACK_INTERMEDIATES_DIR); exit 41 )
$(hide) mv $(PRIVATE_JACK_INTERMEDIATES_DIR)/classes*.dex $(dir $@) $(hide) mv $(PRIVATE_JACK_INTERMEDIATES_DIR)/classes*.dex $(dir $@)
$(hide) rm -f $(PRIVATE_JACK_INTERMEDIATES_DIR)/java-source-list $(hide) rm -f $(PRIVATE_JACK_INTERMEDIATES_DIR)/java-source-list
$(if $(PRIVATE_EXTRA_JAR_ARGS),$(hide) rm -rf $@.res.tmp)
$(hide) mv $(PRIVATE_JACK_INTERMEDIATES_DIR)/java-source-list-uniq $(PRIVATE_JACK_INTERMEDIATES_DIR).java-source-list $(hide) mv $(PRIVATE_JACK_INTERMEDIATES_DIR)/java-source-list-uniq $(PRIVATE_JACK_INTERMEDIATES_DIR).java-source-list
$(if $(PRIVATE_JAR_PACKAGES), $(hide) echo unsupported options PRIVATE_JAR_PACKAGES in $@; exit 53) $(if $(PRIVATE_JAR_PACKAGES), $(hide) echo unsupported options PRIVATE_JAR_PACKAGES in $@; exit 53)
$(if $(PRIVATE_JAR_EXCLUDE_PACKAGES), $(hide) echo unsupported options JAR_EXCLUDE_PACKAGES in $@; exit 53) $(if $(PRIVATE_JAR_EXCLUDE_PACKAGES), $(hide) echo unsupported options JAR_EXCLUDE_PACKAGES in $@; exit 53)
@@ -1890,6 +1899,7 @@ $(if $(PRIVATE_JAR_MANIFEST), \
jar -cfm $@ $(dir $@)/manifest.mf \ jar -cfm $@ $(dir $@)/manifest.mf \
-C $(PRIVATE_CLASS_INTERMEDIATES_DIR) ., \ -C $(PRIVATE_CLASS_INTERMEDIATES_DIR) ., \
$(hide) jar -cf $@ -C $(PRIVATE_CLASS_INTERMEDIATES_DIR) .) $(hide) jar -cf $@ -C $(PRIVATE_CLASS_INTERMEDIATES_DIR) .)
$(if $(PRIVATE_EXTRA_JAR_ARGS),$(call add-java-resources-to,$@))
$(hide) mv $(PRIVATE_CLASS_INTERMEDIATES_DIR)/newstamp $(PRIVATE_CLASS_INTERMEDIATES_DIR)/stamp $(hide) mv $(PRIVATE_CLASS_INTERMEDIATES_DIR)/newstamp $(PRIVATE_CLASS_INTERMEDIATES_DIR)/stamp
endef endef
@@ -1945,6 +1955,15 @@ define create-empty-package
$(call create-empty-package-at,$@) $(call create-empty-package-at,$@)
endef endef
# Copy an arhchive file and delete any class files and empty folders inside.
# $(1): the source archive file.
# $(2): the destination archive file.
define initialize-package-file
@mkdir -p $(dir $(2))
$(hide) cp -f $(1) $(2)
$(hide) zip -qd $(2) "*.class" && zip -qd $(2) "*/"
endef
#TODO: we kinda want to build different asset packages for #TODO: we kinda want to build different asset packages for
# different configurations, then combine them later (or something). # different configurations, then combine them later (or something).
# Per-locale, etc. # Per-locale, etc.
@@ -2004,25 +2023,6 @@ $(hide) jar uf $(1) @$(1).jar-arg-list
@rm -f $(1).jar-arg-list @rm -f $(1).jar-arg-list
endef endef
# Add java resources added by the current module.
#
define add-java-resources-to-package
$(call add-java-resources-to,$@)
endef
# Add java resources carried by static Java libraries.
#
define add-carried-java-resources
$(hide) if [ -d $(PRIVATE_CLASS_INTERMEDIATES_DIR) ] ; then \
java_res_jar_flags=$$(find $(PRIVATE_CLASS_INTERMEDIATES_DIR) -type f -a -not -name "*.class" \
| sed -e "s?^$(PRIVATE_CLASS_INTERMEDIATES_DIR)/? -C $(PRIVATE_CLASS_INTERMEDIATES_DIR) ?"); \
if [ -n "$$java_res_jar_flags" ] ; then \
echo $$java_res_jar_flags >$(dir $@)java_res_jar_flags; \
jar uf $@ $$java_res_jar_flags; \
fi; \
fi
endef
# Add resources carried by static Jack libraries. # Add resources carried by static Jack libraries.
# #
define add-carried-jack-resources define add-carried-jack-resources
@@ -2036,7 +2036,6 @@ define add-carried-jack-resources
fi fi
endef endef
# Sign a package using the specified key/cert. # Sign a package using the specified key/cert.
# #
define sign-package define sign-package
@@ -2078,7 +2077,6 @@ endef
define transform-host-java-to-package define transform-host-java-to-package
@echo "host Java: $(PRIVATE_MODULE) ($(PRIVATE_CLASS_INTERMEDIATES_DIR))" @echo "host Java: $(PRIVATE_MODULE) ($(PRIVATE_CLASS_INTERMEDIATES_DIR))"
$(call compile-java,$(HOST_JAVAC),$(PRIVATE_BOOTCLASSPATH)) $(call compile-java,$(HOST_JAVAC),$(PRIVATE_BOOTCLASSPATH))
$(if $(PRIVATE_EXTRA_JAR_ARGS), $(call add-java-resources-to-package))
endef endef
########################################################### ###########################################################

View File

@@ -25,34 +25,37 @@ $(built_dpi_apk): PRIVATE_MANIFEST_PACKAGE_NAME := $(LOCAL_MANIFEST_PACKAGE_NAME
$(built_dpi_apk): PRIVATE_MANIFEST_INSTRUMENTATION_FOR := $(LOCAL_INSTRUMENTATION_FOR) $(built_dpi_apk): PRIVATE_MANIFEST_INSTRUMENTATION_FOR := $(LOCAL_INSTRUMENTATION_FOR)
$(built_dpi_apk): PRIVATE_JNI_SHARED_LIBRARIES := $(jni_shared_libraries_with_abis) $(built_dpi_apk): PRIVATE_JNI_SHARED_LIBRARIES := $(jni_shared_libraries_with_abis)
$(built_dpi_apk): PRIVATE_JNI_SHARED_LIBRARIES_ABI := $(jni_shared_libraries_abis) $(built_dpi_apk): PRIVATE_JNI_SHARED_LIBRARIES_ABI := $(jni_shared_libraries_abis)
$(built_dpi_apk): PRIVATE_DEX_FILE := $(built_dex)
# Note that PRIVATE_CLASS_INTERMEDIATES_DIR points to the base apk's intermediate dir.
$(built_dpi_apk): PRIVATE_CLASS_INTERMEDIATES_DIR := $(intermediates)/classes
$(built_dpi_apk): PRIVATE_EXTRA_JAR_ARGS := $(extra_jar_args)
$(built_dpi_apk): PRIVATE_PRIVATE_KEY := $(private_key) $(built_dpi_apk): PRIVATE_PRIVATE_KEY := $(private_key)
$(built_dpi_apk): PRIVATE_CERTIFICATE := $(certificate) $(built_dpi_apk): PRIVATE_CERTIFICATE := $(certificate)
$(built_dpi_apk): PRIVATE_ADDITIONAL_CERTIFICATES := $(foreach c,\ $(built_dpi_apk): PRIVATE_ADDITIONAL_CERTIFICATES := $(foreach c,\
$(LOCAL_ADDITIONAL_CERTIFICATES), $(c).x509.pem $(c).pk8) $(LOCAL_ADDITIONAL_CERTIFICATES), $(c).x509.pem $(c).pk8)
ifneq ($(full_classes_jar),)
$(built_dpi_apk): PRIVATE_DEX_FILE := $(built_dex)
# Use the jarjar processed arhive as the initial package file.
$(built_dpi_apk): PRIVATE_SOURCE_ARCHIVE := $(full_classes_jarjar_jar)
$(built_dpi_apk): $(built_dex)
else
$(built_dpi_apk): PRIVATE_DEX_FILE :=
$(built_dpi_apk): PRIVATE_SOURCE_ARCHIVE :=
endif # full_classes_jar
# Set up dependenncies and the build recipe. # Set up dependenncies and the build recipe.
$(built_dpi_apk) : $(R_file_stamp) $(built_dpi_apk) : $(R_file_stamp)
$(built_dpi_apk) : $(all_library_res_package_export_deps) $(built_dpi_apk) : $(all_library_res_package_export_deps)
$(built_dpi_apk) : $(built_dex)
$(built_dpi_apk) : $(private_key) $(certificate) $(SIGNAPK_JAR) $(built_dpi_apk) : $(private_key) $(certificate) $(SIGNAPK_JAR)
$(built_dpi_apk) : $(AAPT) | $(ZIPALIGN) $(built_dpi_apk) : $(AAPT) | $(ZIPALIGN)
$(built_dpi_apk) : $(all_res_assets) $(jni_shared_libraries) $(full_android_manifest) $(built_dpi_apk) : $(all_res_assets) $(jni_shared_libraries) $(full_android_manifest)
@echo "target Package: $(PRIVATE_MODULE) ($@)" @echo "target Package: $(PRIVATE_MODULE) ($@)"
$(create-empty-package) $(if $(PRIVATE_SOURCE_ARCHIVE),\
$(call initialize-package-file,$(PRIVATE_SOURCE_ARCHIVE),$@),\
$(create-empty-package))
$(add-assets-to-package) $(add-assets-to-package)
ifneq ($(jni_shared_libraries),) ifneq ($(jni_shared_libraries),)
$(add-jni-shared-libs-to-package) $(add-jni-shared-libs-to-package)
endif endif
ifneq ($(full_classes_jar),) ifneq ($(full_classes_jar),)
$(add-dex-to-package) $(add-dex-to-package)
endif
$(add-carried-java-resources)
ifneq ($(extra_jar_args),)
$(add-java-resources-to-package)
endif endif
$(sign-package) $(sign-package)
$(align-package) $(align-package)

View File

@@ -101,21 +101,18 @@ $(full_classes_jar): $(full_classes_jarjar_jar) | $(ACP)
@echo Copying: $@ @echo Copying: $@
$(hide) $(ACP) -fp $< $@ $(hide) $(ACP) -fp $< $@
ifneq ($(strip $(LOCAL_USE_JACK)),true) ifneq ($(LOCAL_USE_JACK),true)
$(built_dex): PRIVATE_INTERMEDIATES_DIR := $(intermediates.COMMON) $(built_dex): PRIVATE_INTERMEDIATES_DIR := $(intermediates.COMMON)
$(built_dex): PRIVATE_DX_FLAGS := $(LOCAL_DX_FLAGS) $(built_dex): PRIVATE_DX_FLAGS := $(LOCAL_DX_FLAGS)
$(built_dex): $(full_classes_jar) $(DX) $(built_dex): $(full_classes_jar) $(DX)
$(transform-classes.jar-to-dex) $(transform-classes.jar-to-dex)
$(LOCAL_BUILT_MODULE): PRIVATE_DEX_FILE := $(built_dex) $(LOCAL_BUILT_MODULE): PRIVATE_DEX_FILE := $(built_dex)
$(LOCAL_BUILT_MODULE): PRIVATE_SOURCE_ARCHIVE := $(full_classes_jarjar_jar)
$(LOCAL_BUILT_MODULE): $(built_dex) $(java_resource_sources) $(LOCAL_BUILT_MODULE): $(built_dex) $(java_resource_sources)
@echo "Host Jar: $(PRIVATE_MODULE) ($@)" @echo "Host Jar: $(PRIVATE_MODULE) ($@)"
$(create-empty-package) $(call initialize-package-file,$(PRIVATE_SOURCE_ARCHIVE),$@)
$(add-dex-to-package) $(add-dex-to-package)
$(add-carried-java-resources)
ifneq ($(extra_jar_args),)
$(add-java-resources-to-package)
endif
else # LOCAL_USE_JACK else # LOCAL_USE_JACK
$(LOCAL_INTERMEDIATE_TARGETS): \ $(LOCAL_INTERMEDIATE_TARGETS): \
@@ -138,9 +135,6 @@ $(LOCAL_BUILT_MODULE): $(built_dex) $(java_resource_sources)
$(create-empty-package) $(create-empty-package)
$(add-dex-to-package) $(add-dex-to-package)
$(add-carried-jack-resources) $(add-carried-jack-resources)
ifneq ($(extra_jar_args),)
$(add-java-resources-to-package)
endif
endif # LOCAL_USE_JACK endif # LOCAL_USE_JACK

View File

@@ -474,7 +474,7 @@ legacy_proguard_flags := -injars $(link_instr_classes_jar) \
-verbose \ -verbose \
$(legacy_proguard_flags) $(legacy_proguard_flags)
# not supported with jack # not supported with jack
ifeq ($(strip $(LOCAL_USE_JACK)),true) ifeq ($(LOCAL_USE_JACK),true)
$(error $(LOCAL_MODULE): Build with jack of instrumentation when obfuscating is not yet supported) $(error $(LOCAL_MODULE): Build with jack of instrumentation when obfuscating is not yet supported)
endif endif
@@ -565,7 +565,7 @@ $(LOCAL_MODULE)-findbugs : $(findbugs_html)
endif # full_classes_jar is defined endif # full_classes_jar is defined
ifeq ($(strip $(LOCAL_USE_JACK)),true) ifeq ($(LOCAL_USE_JACK),true)
$(LOCAL_INTERMEDIATE_TARGETS): \ $(LOCAL_INTERMEDIATE_TARGETS): \
PRIVATE_JACK_INTERMEDIATES_DIR := $(intermediates.COMMON)/jack PRIVATE_JACK_INTERMEDIATES_DIR := $(intermediates.COMMON)/jack

View File

@@ -58,9 +58,6 @@ $(common_javalib.jar) : $(full_classes_jar)
endif endif
@echo "target Static Jar: $(PRIVATE_MODULE) ($@)" @echo "target Static Jar: $(PRIVATE_MODULE) ($@)"
$(copy-file-to-target) $(copy-file-to-target)
ifneq ($(extra_jar_args),)
$(add-java-resources-to-package)
endif
$(LOCAL_BUILT_MODULE): $(common_javalib.jar) $(LOCAL_BUILT_MODULE): $(common_javalib.jar)
$(copy-file-to-target) $(copy-file-to-target)
@@ -68,17 +65,17 @@ $(LOCAL_BUILT_MODULE): $(common_javalib.jar)
else # !LOCAL_IS_STATIC_JAVA_LIBRARY else # !LOCAL_IS_STATIC_JAVA_LIBRARY
$(common_javalib.jar): PRIVATE_DEX_FILE := $(built_dex) $(common_javalib.jar): PRIVATE_DEX_FILE := $(built_dex)
$(common_javalib.jar): PRIVATE_SOURCE_ARCHIVE := $(full_classes_jarjar_jar)
$(common_javalib.jar) : $(built_dex) $(java_resource_sources) $(common_javalib.jar) : $(built_dex) $(java_resource_sources)
@echo "target Jar: $(PRIVATE_MODULE) ($@)" @echo "target Jar: $(PRIVATE_MODULE) ($@)"
ifeq ($(LOCAL_USE_JACK),true)
$(create-empty-package) $(create-empty-package)
$(add-dex-to-package)
ifneq ($(strip $(LOCAL_USE_JACK)),true)
$(add-carried-java-resources)
else else
$(add-carried-jack-resources) $(call initialize-package-file,$(PRIVATE_SOURCE_ARCHIVE),$@)
endif endif
ifneq ($(extra_jar_args),) $(add-dex-to-package)
$(add-java-resources-to-package) ifeq ($(LOCAL_USE_JACK),true)
$(add-carried-jack-resources)
endif endif
ifdef LOCAL_DEX_PREOPT ifdef LOCAL_DEX_PREOPT

View File

@@ -162,7 +162,7 @@ endif # need_compile_res
endif # !custom endif # !custom
LOCAL_PROGUARD_FLAGS := $(addprefix -include ,$(proguard_options_file)) $(LOCAL_PROGUARD_FLAGS) LOCAL_PROGUARD_FLAGS := $(addprefix -include ,$(proguard_options_file)) $(LOCAL_PROGUARD_FLAGS)
ifeq ($(strip $(LOCAL_USE_JACK)),true) ifeq ($(LOCAL_USE_JACK),true)
ifndef LOCAL_JACK_PROGUARD_FLAGS ifndef LOCAL_JACK_PROGUARD_FLAGS
LOCAL_JACK_PROGUARD_FLAGS := $(LOCAL_PROGUARD_FLAGS) LOCAL_JACK_PROGUARD_FLAGS := $(LOCAL_PROGUARD_FLAGS)
endif endif
@@ -278,7 +278,7 @@ endif
# they want to use this module's R.java file. # they want to use this module's R.java file.
$(LOCAL_BUILT_MODULE): $(R_file_stamp) $(LOCAL_BUILT_MODULE): $(R_file_stamp)
ifeq ($(strip $(LOCAL_USE_JACK)),true) ifeq ($(LOCAL_USE_JACK),true)
ifneq ($(built_dex_intermediate),) ifneq ($(built_dex_intermediate),)
$(built_dex_intermediate): $(R_file_stamp) $(built_dex_intermediate): $(R_file_stamp)
endif endif
@@ -339,7 +339,12 @@ endif # LOCAL_NO_STANDARD_LIBRARIES
ifneq ($(full_classes_jar),) ifneq ($(full_classes_jar),)
$(LOCAL_BUILT_MODULE): PRIVATE_DEX_FILE := $(built_dex) $(LOCAL_BUILT_MODULE): PRIVATE_DEX_FILE := $(built_dex)
# Use the jarjar processed arhive as the initial package file.
$(LOCAL_BUILT_MODULE): PRIVATE_SOURCE_ARCHIVE := $(full_classes_jarjar_jar)
$(LOCAL_BUILT_MODULE): $(built_dex) $(LOCAL_BUILT_MODULE): $(built_dex)
else
$(LOCAL_BUILT_MODULE): PRIVATE_DEX_FILE :=
$(LOCAL_BUILT_MODULE): PRIVATE_SOURCE_ARCHIVE :=
endif # full_classes_jar endif # full_classes_jar
include $(BUILD_SYSTEM)/install_jni_libs.mk include $(BUILD_SYSTEM)/install_jni_libs.mk
@@ -400,7 +405,13 @@ endif
endif endif
$(LOCAL_BUILT_MODULE): $(all_res_assets) $(jni_shared_libraries) $(full_android_manifest) $(LOCAL_BUILT_MODULE): $(all_res_assets) $(jni_shared_libraries) $(full_android_manifest)
@echo "target Package: $(PRIVATE_MODULE) ($@)" @echo "target Package: $(PRIVATE_MODULE) ($@)"
ifeq ($(LOCAL_USE_JACK),true)
$(create-empty-package) $(create-empty-package)
else
$(if $(PRIVATE_SOURCE_ARCHIVE),\
$(call initialize-package-file,$(PRIVATE_SOURCE_ARCHIVE),$@),\
$(create-empty-package))
endif
$(add-assets-to-package) $(add-assets-to-package)
ifneq ($(jni_shared_libraries),) ifneq ($(jni_shared_libraries),)
$(add-jni-shared-libs-to-package) $(add-jni-shared-libs-to-package)
@@ -408,13 +419,8 @@ endif
ifneq ($(full_classes_jar),) ifneq ($(full_classes_jar),)
$(add-dex-to-package) $(add-dex-to-package)
endif endif
ifneq ($(strip $(LOCAL_USE_JACK)),true) ifeq ($(LOCAL_USE_JACK),true)
$(add-carried-java-resources)
else
$(add-carried-jack-resources) $(add-carried-jack-resources)
endif
ifneq ($(extra_jar_args),)
$(add-java-resources-to-package)
endif endif
$(sign-package) $(sign-package)
ifdef LOCAL_DEX_PREOPT ifdef LOCAL_DEX_PREOPT

View File

@@ -59,7 +59,7 @@ endif
LOCAL_PROGUARD_FLAGS := $(addprefix -include ,$(proguard_options_file)) $(LOCAL_PROGUARD_FLAGS) LOCAL_PROGUARD_FLAGS := $(addprefix -include ,$(proguard_options_file)) $(LOCAL_PROGUARD_FLAGS)
ifeq ($(strip $(LOCAL_USE_JACK)),true) ifeq ($(LOCAL_USE_JACK),true)
ifndef LOCAL_JACK_PROGUARD_FLAGS ifndef LOCAL_JACK_PROGUARD_FLAGS
LOCAL_JACK_PROGUARD_FLAGS := $(LOCAL_PROGUARD_FLAGS) LOCAL_JACK_PROGUARD_FLAGS := $(LOCAL_PROGUARD_FLAGS)
endif endif
@@ -123,7 +123,7 @@ $(R_file_stamp) : $(all_resources) $(full_android_manifest) $(AAPT) $(framework_
$(hide) find $(PRIVATE_SOURCE_INTERMEDIATES_DIR) -name R.java | xargs cat > $@ $(hide) find $(PRIVATE_SOURCE_INTERMEDIATES_DIR) -name R.java | xargs cat > $@
$(LOCAL_BUILT_MODULE): $(R_file_stamp) $(LOCAL_BUILT_MODULE): $(R_file_stamp)
ifeq ($(strip $(LOCAL_USE_JACK)),true) ifeq ($(LOCAL_USE_JACK),true)
$(noshrob_classes_jack): $(R_file_stamp) $(noshrob_classes_jack): $(R_file_stamp)
$(full_classes_jack): $(R_file_stamp) $(full_classes_jack): $(R_file_stamp)
endif # LOCAL_USE_JACK endif # LOCAL_USE_JACK