Revert "Revert "Produce mappings of hashes to elf symbols and r8 dictionaries""
This reverts commit 59ecb9e016
.
Reason for revert: symbols_map is fixed to ignore non-elf files
Bug: 218888599
Change-Id: I88654b2dba3dfb9ab2809b0555544277279f345d
This commit is contained in:
@@ -6136,25 +6136,39 @@ dexpreopt_config_zip: $(DEXPREOPT_CONFIG_ZIP)
|
|||||||
# -----------------------------------------------------------------
|
# -----------------------------------------------------------------
|
||||||
# A zip of the symbols directory. Keep the full paths to make it
|
# A zip of the symbols directory. Keep the full paths to make it
|
||||||
# more obvious where these files came from.
|
# more obvious where these files came from.
|
||||||
|
# Also produces a textproto containing mappings from elf IDs to symbols
|
||||||
|
# filename, which will allow finding the appropriate symbols to deobfuscate
|
||||||
|
# a stack trace frame.
|
||||||
#
|
#
|
||||||
|
|
||||||
name := $(TARGET_PRODUCT)
|
name := $(TARGET_PRODUCT)
|
||||||
ifeq ($(TARGET_BUILD_TYPE),debug)
|
ifeq ($(TARGET_BUILD_TYPE),debug)
|
||||||
name := $(name)_debug
|
name := $(name)_debug
|
||||||
endif
|
endif
|
||||||
name := $(name)-symbols-$(FILE_NAME_TAG)
|
|
||||||
|
|
||||||
SYMBOLS_ZIP := $(PRODUCT_OUT)/$(name).zip
|
# The path to the zip file containing binaries with symbols.
|
||||||
|
SYMBOLS_ZIP := $(PRODUCT_OUT)/$(name)-symbols-$(FILE_NAME_TAG).zip
|
||||||
|
# The path to a file containing mappings from elf IDs to filenames.
|
||||||
|
SYMBOLS_MAPPING := $(PRODUCT_OUT)/$(name)-symbols-mapping-$(FILE_NAME_TAG).textproto
|
||||||
|
.KATI_READONLY := SYMBOLS_ZIP SYMBOLS_MAPPING
|
||||||
# For apps_only build we'll establish the dependency later in build/make/core/main.mk.
|
# For apps_only build we'll establish the dependency later in build/make/core/main.mk.
|
||||||
ifeq (,$(TARGET_BUILD_UNBUNDLED))
|
ifeq (,$(TARGET_BUILD_UNBUNDLED))
|
||||||
$(SYMBOLS_ZIP): $(INTERNAL_ALLIMAGES_FILES) $(updater_dep)
|
$(SYMBOLS_ZIP): $(INTERNAL_ALLIMAGES_FILES) $(updater_dep)
|
||||||
endif
|
endif
|
||||||
$(SYMBOLS_ZIP): PRIVATE_LIST_FILE := $(call intermediates-dir-for,PACKAGING,symbols)/filelist
|
$(SYMBOLS_ZIP): PRIVATE_LIST_FILE := $(call intermediates-dir-for,PACKAGING,symbols)/filelist
|
||||||
$(SYMBOLS_ZIP): $(SOONG_ZIP)
|
$(SYMBOLS_ZIP): PRIVATE_MAPPING_PACKAGING_DIR := $(call intermediates-dir-for,PACKAGING,elf_symbol_mapping)
|
||||||
|
$(SYMBOLS_ZIP): $(SOONG_ZIP) $(SYMBOLS_MAP)
|
||||||
@echo "Package symbols: $@"
|
@echo "Package symbols: $@"
|
||||||
$(hide) rm -rf $@ $(PRIVATE_LIST_FILE)
|
$(hide) rm -rf $@ $(PRIVATE_LIST_FILE)
|
||||||
$(hide) mkdir -p $(dir $@) $(TARGET_OUT_UNSTRIPPED) $(dir $(PRIVATE_LIST_FILE))
|
$(hide) mkdir -p $(TARGET_OUT_UNSTRIPPED) $(dir $(PRIVATE_LIST_FILE)) $(PRIVATE_MAPPING_PACKAGING_DIR)
|
||||||
|
# Find all of the files in the symbols directory and zip them into the symbols zip.
|
||||||
$(hide) find -L $(TARGET_OUT_UNSTRIPPED) -type f | sort >$(PRIVATE_LIST_FILE)
|
$(hide) find -L $(TARGET_OUT_UNSTRIPPED) -type f | sort >$(PRIVATE_LIST_FILE)
|
||||||
$(hide) $(SOONG_ZIP) --ignore_missing_files -d -o $@ -C $(OUT_DIR)/.. -l $(PRIVATE_LIST_FILE)
|
$(hide) $(SOONG_ZIP) --ignore_missing_files -d -o $@ -C $(OUT_DIR)/.. -l $(PRIVATE_LIST_FILE)
|
||||||
|
# Find all of the files in the symbols mapping directory and merge them into the symbols mapping textproto.
|
||||||
|
$(hide) find -L $(PRIVATE_MAPPING_PACKAGING_DIR) -type f | sort >$(PRIVATE_LIST_FILE)
|
||||||
|
$(hide) $(SYMBOLS_MAP) -merge $(SYMBOLS_MAPPING) -ignore_missing_files @$(PRIVATE_LIST_FILE)
|
||||||
|
$(SYMBOLS_ZIP): .KATI_IMPLICIT_OUTPUTS := $(SYMBOLS_MAPPING)
|
||||||
|
|
||||||
# -----------------------------------------------------------------
|
# -----------------------------------------------------------------
|
||||||
# A zip of the coverage directory.
|
# A zip of the coverage directory.
|
||||||
#
|
#
|
||||||
@@ -6247,17 +6261,35 @@ endif # EMMA_INSTRUMENT=true
|
|||||||
|
|
||||||
#------------------------------------------------------------------
|
#------------------------------------------------------------------
|
||||||
# A zip of Proguard obfuscation dictionary files.
|
# A zip of Proguard obfuscation dictionary files.
|
||||||
|
# Also produces a textproto containing mappings from the hashes of the
|
||||||
|
# dictionary contents (which are also stored in the dex files on the
|
||||||
|
# devices) to the filename of the proguard dictionary, which will allow
|
||||||
|
# finding the appropriate dictionary to deobfuscate a stack trace frame.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
# The path to the zip file containing proguard dictionaries.
|
||||||
PROGUARD_DICT_ZIP := $(PRODUCT_OUT)/$(TARGET_PRODUCT)-proguard-dict-$(FILE_NAME_TAG).zip
|
PROGUARD_DICT_ZIP := $(PRODUCT_OUT)/$(TARGET_PRODUCT)-proguard-dict-$(FILE_NAME_TAG).zip
|
||||||
|
# The path to the zip file containing mappings from dictionary hashes to filenames.
|
||||||
|
PROGUARD_DICT_MAPPING := $(PRODUCT_OUT)/$(TARGET_PRODUCT)-proguard-dict-mapping-$(FILE_NAME_TAG).textproto
|
||||||
|
.KATI_READONLY := PROGUARD_DICT_ZIP PROGUARD_DICT_MAPPING
|
||||||
# For apps_only build we'll establish the dependency later in build/make/core/main.mk.
|
# For apps_only build we'll establish the dependency later in build/make/core/main.mk.
|
||||||
ifeq (,$(TARGET_BUILD_UNBUNDLED))
|
ifeq (,$(TARGET_BUILD_UNBUNDLED))
|
||||||
$(PROGUARD_DICT_ZIP): $(INTERNAL_ALLIMAGES_FILES) $(updater_dep)
|
$(PROGUARD_DICT_ZIP): $(INTERNAL_ALLIMAGES_FILES) $(updater_dep)
|
||||||
endif
|
endif
|
||||||
$(PROGUARD_DICT_ZIP): PRIVATE_PACKAGING_DIR := $(call intermediates-dir-for,PACKAGING,proguard_dictionary)
|
$(PROGUARD_DICT_ZIP): PRIVATE_PACKAGING_DIR := $(call intermediates-dir-for,PACKAGING,proguard_dictionary)
|
||||||
$(PROGUARD_DICT_ZIP): $(SOONG_ZIP)
|
$(PROGUARD_DICT_ZIP): PRIVATE_MAPPING_PACKAGING_DIR := $(call intermediates-dir-for,PACKAGING,proguard_dictionary_mapping)
|
||||||
|
$(PROGUARD_DICT_ZIP): PRIVATE_LIST_FILE := $(call intermediates-dir-for,PACKAGING,proguard_dictionary_filelist)/filelist
|
||||||
|
$(PROGUARD_DICT_ZIP): $(SOONG_ZIP) $(SYMBOLS_MAP)
|
||||||
@echo "Packaging Proguard obfuscation dictionary files."
|
@echo "Packaging Proguard obfuscation dictionary files."
|
||||||
mkdir -p $(dir $@) $(PRIVATE_PACKAGING_DIR)
|
rm -rf $@ $(PRIVATE_LIST_FILE)
|
||||||
$(SOONG_ZIP) --ignore_missing_files -d -o $@ -C $(PRIVATE_PACKAGING_DIR) -P out/target/common/obj -D $(PRIVATE_PACKAGING_DIR)
|
mkdir -p $(PRIVATE_PACKAGING_DIR) $(PRIVATE_MAPPING_PACKAGING_DIR) $(dir $(PRIVATE_LIST_FILE))
|
||||||
|
# Zip all of the files in the proguard dictionary directory.
|
||||||
|
$(SOONG_ZIP) --ignore_missing_files -d -o $@ -C $(PRIVATE_PACKAGING_DIR) -D $(PRIVATE_PACKAGING_DIR)
|
||||||
|
# Find all of the files in the proguard dictionary mapping directory and merge them into the mapping textproto.
|
||||||
|
# Strip the PRIVATE_PACKAGING_DIR off the filenames to match soong_zip's -C argument.
|
||||||
|
$(hide) find -L $(PRIVATE_MAPPING_PACKAGING_DIR) -type f | sort >$(PRIVATE_LIST_FILE)
|
||||||
|
$(SYMBOLS_MAP) -merge $(PROGUARD_DICT_MAPPING) -strip_prefix $(PRIVATE_PACKAGING_DIR)/ -ignore_missing_files @$(PRIVATE_LIST_FILE)
|
||||||
|
$(PROGUARD_DICT_ZIP): .KATI_IMPLICIT_OUTPUTS := $(PROGUARD_DICT_MAPPING)
|
||||||
|
|
||||||
#------------------------------------------------------------------
|
#------------------------------------------------------------------
|
||||||
# A zip of Proguard usage files.
|
# A zip of Proguard usage files.
|
||||||
|
@@ -620,6 +620,7 @@ MAKE_RECOVERY_PATCH := $(HOST_OUT_EXECUTABLES)/make_recovery_patch$(HOST_EXECUTA
|
|||||||
OTA_FROM_TARGET_FILES := $(HOST_OUT_EXECUTABLES)/ota_from_target_files$(HOST_EXECUTABLE_SUFFIX)
|
OTA_FROM_TARGET_FILES := $(HOST_OUT_EXECUTABLES)/ota_from_target_files$(HOST_EXECUTABLE_SUFFIX)
|
||||||
SPARSE_IMG := $(HOST_OUT_EXECUTABLES)/sparse_img$(HOST_EXECUTABLE_SUFFIX)
|
SPARSE_IMG := $(HOST_OUT_EXECUTABLES)/sparse_img$(HOST_EXECUTABLE_SUFFIX)
|
||||||
CHECK_PARTITION_SIZES := $(HOST_OUT_EXECUTABLES)/check_partition_sizes$(HOST_EXECUTABLE_SUFFIX)
|
CHECK_PARTITION_SIZES := $(HOST_OUT_EXECUTABLES)/check_partition_sizes$(HOST_EXECUTABLE_SUFFIX)
|
||||||
|
SYMBOLS_MAP := $(HOST_OUT_EXECUTABLES)/symbols_map
|
||||||
|
|
||||||
PROGUARD_HOME := external/proguard
|
PROGUARD_HOME := external/proguard
|
||||||
PROGUARD := $(PROGUARD_HOME)/bin/proguard.sh
|
PROGUARD := $(PROGUARD_HOME)/bin/proguard.sh
|
||||||
|
@@ -3111,6 +3111,50 @@ done \
|
|||||||
fi
|
fi
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
# Copy an unstripped binary to the symbols directory while also extracting
|
||||||
|
# a hash mapping to the mapping directory.
|
||||||
|
# $(1): unstripped intermediates file
|
||||||
|
# $(2): path in symbols directory
|
||||||
|
define copy-unstripped-elf-file-with-mapping
|
||||||
|
$(call _copy-symbols-file-with-mapping,$(1),$(2),\
|
||||||
|
elf,$(patsubst $(TARGET_OUT_UNSTRIPPED)/%,$(call intermediates-dir-for,PACKAGING,elf_symbol_mapping)/%,$(2).textproto))
|
||||||
|
endef
|
||||||
|
|
||||||
|
# Copy an R8 dictionary to the packaging directory while also extracting
|
||||||
|
# a hash mapping to the mapping directory.
|
||||||
|
# $(1): unstripped intermediates file
|
||||||
|
# $(2): path in packaging directory
|
||||||
|
# $(3): path in mappings packaging directory
|
||||||
|
define copy-r8-dictionary-file-with-mapping
|
||||||
|
$(call _copy-symbols-file-with-mapping,$(1),$(2),r8,$(3))
|
||||||
|
endef
|
||||||
|
|
||||||
|
# Copy an unstripped binary or R8 dictionary to the symbols directory
|
||||||
|
# while also extracting a hash mapping to the mapping directory.
|
||||||
|
# $(1): unstripped intermediates file
|
||||||
|
# $(2): path in symbols directory
|
||||||
|
# $(3): file type (elf or r8)
|
||||||
|
# $(4): path in the mappings directory
|
||||||
|
define _copy-symbols-file-with-mapping
|
||||||
|
$(2): .KATI_IMPLICIT_OUTPUTS := $(4)
|
||||||
|
$(2): $(SYMBOLS_MAP)
|
||||||
|
$(2): $(1)
|
||||||
|
@echo "Copy symbols with mapping: $$@"
|
||||||
|
$$(copy-file-to-target)
|
||||||
|
$(SYMBOLS_MAP) -$(strip $(3)) $(2) -write_if_changed $(4)
|
||||||
|
.KATI_RESTAT: $(2)
|
||||||
|
endef
|
||||||
|
|
||||||
|
# Returns the directory to copy proguard dictionaries into
|
||||||
|
define local-proguard-dictionary-directory
|
||||||
|
$(call intermediates-dir-for,PACKAGING,proguard_dictionary)/out/target/common/obj/$(LOCAL_MODULE_CLASS)/$(LOCAL_MODULE)_intermediates
|
||||||
|
endef
|
||||||
|
|
||||||
|
# Returns the directory to copy proguard dictionary mappings into
|
||||||
|
define local-proguard-dictionary-mapping-directory
|
||||||
|
$(call intermediates-dir-for,PACKAGING,proguard_dictionary_mapping)/out/target/common/obj/$(LOCAL_MODULE_CLASS)/$(LOCAL_MODULE)_intermediates
|
||||||
|
endef
|
||||||
|
|
||||||
|
|
||||||
###########################################################
|
###########################################################
|
||||||
## Commands to call R8
|
## Commands to call R8
|
||||||
|
@@ -55,9 +55,7 @@ my_unstripped_path := $(LOCAL_UNSTRIPPED_PATH)
|
|||||||
endif
|
endif
|
||||||
symbolic_input := $(inject_module)
|
symbolic_input := $(inject_module)
|
||||||
symbolic_output := $(my_unstripped_path)/$(my_installed_module_stem)
|
symbolic_output := $(my_unstripped_path)/$(my_installed_module_stem)
|
||||||
$(symbolic_output) : $(symbolic_input)
|
$(eval $(call copy-unstripped-elf-file-with-mapping,$(symbolic_input),$(symbolic_output)))
|
||||||
@echo "target Symbolic: $(PRIVATE_MODULE) ($@)"
|
|
||||||
$(copy-file-to-target)
|
|
||||||
|
|
||||||
###########################################################
|
###########################################################
|
||||||
## Store breakpad symbols
|
## Store breakpad symbols
|
||||||
|
@@ -1761,13 +1761,13 @@ else ifneq ($(TARGET_BUILD_APPS),)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
$(PROGUARD_DICT_ZIP) : $(apps_only_installed_files)
|
$(PROGUARD_DICT_ZIP) : $(apps_only_installed_files)
|
||||||
$(call dist-for-goals,apps_only, $(PROGUARD_DICT_ZIP))
|
$(call dist-for-goals,apps_only, $(PROGUARD_DICT_ZIP) $(PROGUARD_DICT_MAPPING))
|
||||||
|
|
||||||
$(PROGUARD_USAGE_ZIP) : $(apps_only_installed_files)
|
$(PROGUARD_USAGE_ZIP) : $(apps_only_installed_files)
|
||||||
$(call dist-for-goals,apps_only, $(PROGUARD_USAGE_ZIP))
|
$(call dist-for-goals,apps_only, $(PROGUARD_USAGE_ZIP))
|
||||||
|
|
||||||
$(SYMBOLS_ZIP) : $(apps_only_installed_files)
|
$(SYMBOLS_ZIP) : $(apps_only_installed_files)
|
||||||
$(call dist-for-goals,apps_only, $(SYMBOLS_ZIP))
|
$(call dist-for-goals,apps_only, $(SYMBOLS_ZIP) $(SYMBOLS_MAPPING))
|
||||||
|
|
||||||
$(COVERAGE_ZIP) : $(apps_only_installed_files)
|
$(COVERAGE_ZIP) : $(apps_only_installed_files)
|
||||||
$(call dist-for-goals,apps_only, $(COVERAGE_ZIP))
|
$(call dist-for-goals,apps_only, $(COVERAGE_ZIP))
|
||||||
@@ -1818,7 +1818,9 @@ else ifeq ($(TARGET_BUILD_UNBUNDLED),$(TARGET_BUILD_UNBUNDLED_IMAGE))
|
|||||||
$(INTERNAL_OTA_PARTIAL_PACKAGE_TARGET) \
|
$(INTERNAL_OTA_PARTIAL_PACKAGE_TARGET) \
|
||||||
$(INTERNAL_OTA_RETROFIT_DYNAMIC_PARTITIONS_PACKAGE_TARGET) \
|
$(INTERNAL_OTA_RETROFIT_DYNAMIC_PARTITIONS_PACKAGE_TARGET) \
|
||||||
$(SYMBOLS_ZIP) \
|
$(SYMBOLS_ZIP) \
|
||||||
|
$(SYMBOLS_MAPPING) \
|
||||||
$(PROGUARD_DICT_ZIP) \
|
$(PROGUARD_DICT_ZIP) \
|
||||||
|
$(PROGUARD_DICT_MAPPING) \
|
||||||
$(PROGUARD_USAGE_ZIP) \
|
$(PROGUARD_USAGE_ZIP) \
|
||||||
$(COVERAGE_ZIP) \
|
$(COVERAGE_ZIP) \
|
||||||
$(INSTALLED_FILES_FILE) \
|
$(INSTALLED_FILES_FILE) \
|
||||||
@@ -1962,6 +1964,7 @@ sdk: $(ALL_SDK_TARGETS)
|
|||||||
$(call dist-for-goals,sdk, \
|
$(call dist-for-goals,sdk, \
|
||||||
$(ALL_SDK_TARGETS) \
|
$(ALL_SDK_TARGETS) \
|
||||||
$(SYMBOLS_ZIP) \
|
$(SYMBOLS_ZIP) \
|
||||||
|
$(SYMBOLS_MAPPING) \
|
||||||
$(COVERAGE_ZIP) \
|
$(COVERAGE_ZIP) \
|
||||||
$(APPCOMPAT_ZIP) \
|
$(APPCOMPAT_ZIP) \
|
||||||
$(INSTALLED_BUILD_PROP_TARGET) \
|
$(INSTALLED_BUILD_PROP_TARGET) \
|
||||||
|
@@ -100,18 +100,24 @@ ifdef LOCAL_SOONG_JACOCO_REPORT_CLASSES_JAR
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
ifdef LOCAL_SOONG_PROGUARD_DICT
|
ifdef LOCAL_SOONG_PROGUARD_DICT
|
||||||
|
my_proguard_dictionary_directory := $(local-proguard-dictionary-directory)
|
||||||
|
my_proguard_dictionary_mapping_directory := $(local-proguard-dictionary-mapping-directory)
|
||||||
$(eval $(call copy-one-file,$(LOCAL_SOONG_PROGUARD_DICT),\
|
$(eval $(call copy-one-file,$(LOCAL_SOONG_PROGUARD_DICT),\
|
||||||
$(intermediates.COMMON)/proguard_dictionary))
|
$(intermediates.COMMON)/proguard_dictionary))
|
||||||
$(eval $(call copy-one-file,$(LOCAL_SOONG_PROGUARD_DICT),\
|
$(eval $(call copy-r8-dictionary-file-with-mapping,\
|
||||||
$(call local-packaging-dir,proguard_dictionary)/proguard_dictionary))
|
$(LOCAL_SOONG_PROGUARD_DICT),\
|
||||||
|
$(my_proguard_dictionary_directory)/proguard_dictionary,\
|
||||||
|
$(my_proguard_dictionary_mapping_directory)/proguard_dictionary.textproto))
|
||||||
$(eval $(call copy-one-file,$(LOCAL_SOONG_CLASSES_JAR),\
|
$(eval $(call copy-one-file,$(LOCAL_SOONG_CLASSES_JAR),\
|
||||||
$(call local-packaging-dir,proguard_dictionary)/classes.jar))
|
$(my_proguard_dictionary_directory)/classes.jar))
|
||||||
$(call add-dependency,$(LOCAL_BUILT_MODULE),\
|
$(call add-dependency,$(LOCAL_BUILT_MODULE),\
|
||||||
$(intermediates.COMMON)/proguard_dictionary)
|
$(intermediates.COMMON)/proguard_dictionary)
|
||||||
$(call add-dependency,$(LOCAL_BUILT_MODULE),\
|
$(call add-dependency,$(LOCAL_BUILT_MODULE),\
|
||||||
$(call local-packaging-dir,proguard_dictionary)/proguard_dictionary)
|
$(my_proguard_dictionary_directory)/proguard_dictionary)
|
||||||
$(call add-dependency,$(LOCAL_BUILT_MODULE),\
|
$(call add-dependency,$(LOCAL_BUILT_MODULE),\
|
||||||
$(call local-packaging-dir,proguard_dictionary)/classes.jar)
|
$(my_proguard_dictionary_mapping_directory)/proguard_dictionary.textproto)
|
||||||
|
$(call add-dependency,$(LOCAL_BUILT_MODULE),\
|
||||||
|
$(my_proguard_dictionary_directory)/classes.jar)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifdef LOCAL_SOONG_PROGUARD_USAGE_ZIP
|
ifdef LOCAL_SOONG_PROGUARD_USAGE_ZIP
|
||||||
|
@@ -184,7 +184,7 @@ ifndef LOCAL_IS_HOST_MODULE
|
|||||||
# drop /root as /root is mounted as /
|
# drop /root as /root is mounted as /
|
||||||
my_unstripped_path := $(patsubst $(TARGET_OUT_UNSTRIPPED)/root/%,$(TARGET_OUT_UNSTRIPPED)/%, $(my_unstripped_path))
|
my_unstripped_path := $(patsubst $(TARGET_OUT_UNSTRIPPED)/root/%,$(TARGET_OUT_UNSTRIPPED)/%, $(my_unstripped_path))
|
||||||
symbolic_output := $(my_unstripped_path)/$(my_installed_module_stem)
|
symbolic_output := $(my_unstripped_path)/$(my_installed_module_stem)
|
||||||
$(eval $(call copy-one-file,$(LOCAL_SOONG_UNSTRIPPED_BINARY),$(symbolic_output)))
|
$(eval $(call copy-unstripped-elf-file-with-mapping,$(LOCAL_SOONG_UNSTRIPPED_BINARY),$(symbolic_output)))
|
||||||
$(LOCAL_BUILT_MODULE): | $(symbolic_output)
|
$(LOCAL_BUILT_MODULE): | $(symbolic_output)
|
||||||
|
|
||||||
ifeq ($(BREAKPAD_GENERATE_SYMBOLS),true)
|
ifeq ($(BREAKPAD_GENERATE_SYMBOLS),true)
|
||||||
|
@@ -62,18 +62,24 @@ ifdef LOCAL_SOONG_JACOCO_REPORT_CLASSES_JAR
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
ifdef LOCAL_SOONG_PROGUARD_DICT
|
ifdef LOCAL_SOONG_PROGUARD_DICT
|
||||||
|
my_proguard_dictionary_directory := $(local-proguard-dictionary-directory)
|
||||||
|
my_proguard_dictionary_mapping_directory := $(local-proguard-dictionary-mapping-directory)
|
||||||
$(eval $(call copy-one-file,$(LOCAL_SOONG_PROGUARD_DICT),\
|
$(eval $(call copy-one-file,$(LOCAL_SOONG_PROGUARD_DICT),\
|
||||||
$(intermediates.COMMON)/proguard_dictionary))
|
$(intermediates.COMMON)/proguard_dictionary))
|
||||||
$(eval $(call copy-one-file,$(LOCAL_SOONG_PROGUARD_DICT),\
|
$(eval $(call copy-r8-dictionary-file-with-mapping,\
|
||||||
$(call local-packaging-dir,proguard_dictionary)/proguard_dictionary))
|
$(LOCAL_SOONG_PROGUARD_DICT),\
|
||||||
|
$(my_proguard_dictionary_directory)/proguard_dictionary,\
|
||||||
|
$(my_proguard_dictionary_mapping_directory)/proguard_dictionary.textproto))
|
||||||
$(eval $(call copy-one-file,$(LOCAL_SOONG_CLASSES_JAR),\
|
$(eval $(call copy-one-file,$(LOCAL_SOONG_CLASSES_JAR),\
|
||||||
$(call local-packaging-dir,proguard_dictionary)/classes.jar))
|
$(my_proguard_dictionary_directory)/classes.jar))
|
||||||
$(call add-dependency,$(common_javalib.jar),\
|
$(call add-dependency,$(common_javalib.jar),\
|
||||||
$(intermediates.COMMON)/proguard_dictionary)
|
$(intermediates.COMMON)/proguard_dictionary)
|
||||||
$(call add-dependency,$(common_javalib.jar),\
|
$(call add-dependency,$(common_javalib.jar),\
|
||||||
$(call local-packaging-dir,proguard_dictionary)/proguard_dictionary)
|
$(my_proguard_dictionary_directory)/proguard_dictionary)
|
||||||
$(call add-dependency,$(common_javalib.jar),\
|
$(call add-dependency,$(common_javalib.jar),\
|
||||||
$(call local-packaging-dir,proguard_dictionary)/classes.jar)
|
$(my_proguard_dictionary_mapping_directory)/proguard_dictionary.textproto)
|
||||||
|
$(call add-dependency,$(common_javalib.jar),\
|
||||||
|
$(my_proguard_dictionary_directory)/classes.jar)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifdef LOCAL_SOONG_PROGUARD_USAGE_ZIP
|
ifdef LOCAL_SOONG_PROGUARD_USAGE_ZIP
|
||||||
|
Reference in New Issue
Block a user