Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 92ead00c authored by Colin Cross's avatar Colin Cross Committed by Automerger Merge Worker
Browse files

Merge "Revert "Produce mappings of hashes to elf symbols and r8 dictionaries""...

Merge "Revert "Produce mappings of hashes to elf symbols and r8 dictionaries"" am: cba35df6 am: e662f2e4 am: 1a652183

Original change: https://android-review.googlesource.com/c/platform/build/+/2055033



Change-Id: I519ae7270d3b279230ce890e64de475fafa24820
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 4e72e755 1a652183
Loading
Loading
Loading
Loading
+7 −39
Original line number Original line Diff line number Diff line
@@ -6158,39 +6158,25 @@ 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)


# The path to the zip file containing binaries with symbols.
SYMBOLS_ZIP := $(PRODUCT_OUT)/$(name).zip
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): PRIVATE_MAPPING_PACKAGING_DIR := $(call intermediates-dir-for,PACKAGING,elf_symbol_mapping)
$(SYMBOLS_ZIP): $(SOONG_ZIP)
$(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 $(TARGET_OUT_UNSTRIPPED) $(dir $(PRIVATE_LIST_FILE)) $(PRIVATE_MAPPING_PACKAGING_DIR)
	$(hide) mkdir -p $(dir $@) $(TARGET_OUT_UNSTRIPPED) $(dir $(PRIVATE_LIST_FILE))
	# 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.
#
#
@@ -6283,35 +6269,17 @@ 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): PRIVATE_MAPPING_PACKAGING_DIR := $(call intermediates-dir-for,PACKAGING,proguard_dictionary_mapping)
$(PROGUARD_DICT_ZIP): $(SOONG_ZIP)
$(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."
	rm -rf $@ $(PRIVATE_LIST_FILE)
	mkdir -p $(dir $@) $(PRIVATE_PACKAGING_DIR)
	mkdir -p $(PRIVATE_PACKAGING_DIR) $(PRIVATE_MAPPING_PACKAGING_DIR) $(dir $(PRIVATE_LIST_FILE))
	$(SOONG_ZIP) --ignore_missing_files -d -o $@ -C $(PRIVATE_PACKAGING_DIR) -P out/target/common/obj -D $(PRIVATE_PACKAGING_DIR)
	# 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.
+0 −1
Original line number Original line Diff line number Diff line
@@ -620,7 +620,6 @@ 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
+0 −44
Original line number Original line Diff line number Diff line
@@ -3174,50 +3174,6 @@ 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
+3 −1
Original line number Original line Diff line number Diff line
@@ -55,7 +55,9 @@ 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)
$(eval $(call copy-unstripped-elf-file-with-mapping,$(symbolic_input),$(symbolic_output)))
$(symbolic_output) : $(symbolic_input)
	@echo "target Symbolic: $(PRIVATE_MODULE) ($@)"
	$(copy-file-to-target)


###########################################################
###########################################################
## Store breakpad symbols
## Store breakpad symbols
+2 −5
Original line number Original line Diff line number Diff line
@@ -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) $(PROGUARD_DICT_MAPPING))
  $(call dist-for-goals,apps_only, $(PROGUARD_DICT_ZIP))


  $(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) $(SYMBOLS_MAPPING))
  $(call dist-for-goals,apps_only, $(SYMBOLS_ZIP))


  $(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,9 +1818,7 @@ 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) \
@@ -1964,7 +1962,6 @@ 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) \
Loading