Loading core/Makefile +39 −7 Original line number Diff line number Diff line Loading @@ -6158,25 +6158,39 @@ dexpreopt_config_zip: $(DEXPREOPT_CONFIG_ZIP) # ----------------------------------------------------------------- # A zip of the symbols directory. Keep the full paths to make it # 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) ifeq ($(TARGET_BUILD_TYPE),debug) name := $(name)_debug 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. ifeq (,$(TARGET_BUILD_UNBUNDLED)) $(SYMBOLS_ZIP): $(INTERNAL_ALLIMAGES_FILES) $(updater_dep) endif $(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: $@" $(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) $(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. # Loading Loading @@ -6269,17 +6283,35 @@ endif # EMMA_INSTRUMENT=true #------------------------------------------------------------------ # 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 # 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. ifeq (,$(TARGET_BUILD_UNBUNDLED)) $(PROGUARD_DICT_ZIP): $(INTERNAL_ALLIMAGES_FILES) $(updater_dep) endif $(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." mkdir -p $(dir $@) $(PRIVATE_PACKAGING_DIR) $(SOONG_ZIP) --ignore_missing_files -d -o $@ -C $(PRIVATE_PACKAGING_DIR) -P out/target/common/obj -D $(PRIVATE_PACKAGING_DIR) rm -rf $@ $(PRIVATE_LIST_FILE) 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. Loading core/config.mk +1 −0 Original line number Diff line number Diff line Loading @@ -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) SPARSE_IMG := $(HOST_OUT_EXECUTABLES)/sparse_img$(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 := $(PROGUARD_HOME)/bin/proguard.sh Loading core/definitions.mk +44 −0 Original line number Diff line number Diff line Loading @@ -3173,6 +3173,50 @@ done \ fi 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 Loading core/dynamic_binary.mk +1 −3 Original line number Diff line number Diff line Loading @@ -55,9 +55,7 @@ my_unstripped_path := $(LOCAL_UNSTRIPPED_PATH) endif symbolic_input := $(inject_module) symbolic_output := $(my_unstripped_path)/$(my_installed_module_stem) $(symbolic_output) : $(symbolic_input) @echo "target Symbolic: $(PRIVATE_MODULE) ($@)" $(copy-file-to-target) $(eval $(call copy-unstripped-elf-file-with-mapping,$(symbolic_input),$(symbolic_output))) ########################################################### ## Store breakpad symbols Loading core/main.mk +5 −2 Original line number Diff line number Diff line Loading @@ -1761,13 +1761,13 @@ else ifneq ($(TARGET_BUILD_APPS),) endif $(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) $(call dist-for-goals,apps_only, $(PROGUARD_USAGE_ZIP)) $(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) $(call dist-for-goals,apps_only, $(COVERAGE_ZIP)) Loading Loading @@ -1818,7 +1818,9 @@ else ifeq ($(TARGET_BUILD_UNBUNDLED),$(TARGET_BUILD_UNBUNDLED_IMAGE)) $(INTERNAL_OTA_PARTIAL_PACKAGE_TARGET) \ $(INTERNAL_OTA_RETROFIT_DYNAMIC_PARTITIONS_PACKAGE_TARGET) \ $(SYMBOLS_ZIP) \ $(SYMBOLS_MAPPING) \ $(PROGUARD_DICT_ZIP) \ $(PROGUARD_DICT_MAPPING) \ $(PROGUARD_USAGE_ZIP) \ $(COVERAGE_ZIP) \ $(INSTALLED_FILES_FILE) \ Loading Loading @@ -1962,6 +1964,7 @@ sdk: $(ALL_SDK_TARGETS) $(call dist-for-goals,sdk, \ $(ALL_SDK_TARGETS) \ $(SYMBOLS_ZIP) \ $(SYMBOLS_MAPPING) \ $(COVERAGE_ZIP) \ $(APPCOMPAT_ZIP) \ $(INSTALLED_BUILD_PROP_TARGET) \ Loading Loading
core/Makefile +39 −7 Original line number Diff line number Diff line Loading @@ -6158,25 +6158,39 @@ dexpreopt_config_zip: $(DEXPREOPT_CONFIG_ZIP) # ----------------------------------------------------------------- # A zip of the symbols directory. Keep the full paths to make it # 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) ifeq ($(TARGET_BUILD_TYPE),debug) name := $(name)_debug 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. ifeq (,$(TARGET_BUILD_UNBUNDLED)) $(SYMBOLS_ZIP): $(INTERNAL_ALLIMAGES_FILES) $(updater_dep) endif $(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: $@" $(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) $(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. # Loading Loading @@ -6269,17 +6283,35 @@ endif # EMMA_INSTRUMENT=true #------------------------------------------------------------------ # 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 # 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. ifeq (,$(TARGET_BUILD_UNBUNDLED)) $(PROGUARD_DICT_ZIP): $(INTERNAL_ALLIMAGES_FILES) $(updater_dep) endif $(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." mkdir -p $(dir $@) $(PRIVATE_PACKAGING_DIR) $(SOONG_ZIP) --ignore_missing_files -d -o $@ -C $(PRIVATE_PACKAGING_DIR) -P out/target/common/obj -D $(PRIVATE_PACKAGING_DIR) rm -rf $@ $(PRIVATE_LIST_FILE) 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. Loading
core/config.mk +1 −0 Original line number Diff line number Diff line Loading @@ -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) SPARSE_IMG := $(HOST_OUT_EXECUTABLES)/sparse_img$(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 := $(PROGUARD_HOME)/bin/proguard.sh Loading
core/definitions.mk +44 −0 Original line number Diff line number Diff line Loading @@ -3173,6 +3173,50 @@ done \ fi 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 Loading
core/dynamic_binary.mk +1 −3 Original line number Diff line number Diff line Loading @@ -55,9 +55,7 @@ my_unstripped_path := $(LOCAL_UNSTRIPPED_PATH) endif symbolic_input := $(inject_module) symbolic_output := $(my_unstripped_path)/$(my_installed_module_stem) $(symbolic_output) : $(symbolic_input) @echo "target Symbolic: $(PRIVATE_MODULE) ($@)" $(copy-file-to-target) $(eval $(call copy-unstripped-elf-file-with-mapping,$(symbolic_input),$(symbolic_output))) ########################################################### ## Store breakpad symbols Loading
core/main.mk +5 −2 Original line number Diff line number Diff line Loading @@ -1761,13 +1761,13 @@ else ifneq ($(TARGET_BUILD_APPS),) endif $(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) $(call dist-for-goals,apps_only, $(PROGUARD_USAGE_ZIP)) $(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) $(call dist-for-goals,apps_only, $(COVERAGE_ZIP)) Loading Loading @@ -1818,7 +1818,9 @@ else ifeq ($(TARGET_BUILD_UNBUNDLED),$(TARGET_BUILD_UNBUNDLED_IMAGE)) $(INTERNAL_OTA_PARTIAL_PACKAGE_TARGET) \ $(INTERNAL_OTA_RETROFIT_DYNAMIC_PARTITIONS_PACKAGE_TARGET) \ $(SYMBOLS_ZIP) \ $(SYMBOLS_MAPPING) \ $(PROGUARD_DICT_ZIP) \ $(PROGUARD_DICT_MAPPING) \ $(PROGUARD_USAGE_ZIP) \ $(COVERAGE_ZIP) \ $(INSTALLED_FILES_FILE) \ Loading Loading @@ -1962,6 +1964,7 @@ sdk: $(ALL_SDK_TARGETS) $(call dist-for-goals,sdk, \ $(ALL_SDK_TARGETS) \ $(SYMBOLS_ZIP) \ $(SYMBOLS_MAPPING) \ $(COVERAGE_ZIP) \ $(APPCOMPAT_ZIP) \ $(INSTALLED_BUILD_PROP_TARGET) \ Loading