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

Commit 48a79299 authored by Mathew Inwood's avatar Mathew Inwood Committed by Gerrit Code Review
Browse files

Merge "Build rules to derive greylists from annotations."

parents 6ac13c77 04c58dea
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -719,6 +719,7 @@ BRILLO_UPDATE_PAYLOAD := $(HOST_OUT_EXECUTABLES)/brillo_update_payload
DEXDUMP := $(HOST_OUT_EXECUTABLES)/dexdump2$(BUILD_EXECUTABLE_SUFFIX)
PROFMAN := $(HOST_OUT_EXECUTABLES)/profman
HIDDENAPI := $(HOST_OUT_EXECUTABLES)/hiddenapi
CLASS2GREYLIST := $(HOST_OUT_EXECUTABLES)/class2greylist

FINDBUGS_DIR := external/owasp/sanitizer/tools/findbugs/bin
FINDBUGS := $(FINDBUGS_DIR)/findbugs
+10 −0
Original line number Diff line number Diff line
@@ -2866,6 +2866,16 @@ $(INTERNAL_PLATFORM_HIDDENAPI_PRIVATE_LIST): \
    PRIVATE_DEX_INPUTS := $$(PRIVATE_DEX_INPUTS) $(1)
endef

# Generate a greylist.txt from a classes.jar
define hiddenapi-generate-greylist-txt
$(2): $(1) $(CLASS2GREYLIST)
	$(CLASS2GREYLIST) $(1) > $(2)

$(INTERNAL_PLATFORM_HIDDENAPI_LIGHT_GREYLIST): $(2)
$(INTERNAL_PLATFORM_HIDDENAPI_LIGHT_GREYLIST): \
    PRIVATE_GREYLIST_INPUTS := $$(PRIVATE_GREYLIST_INPUTS) $(2)
endef

# File names for intermediate dex files of `hiddenapi-copy-soong-jar`.
hiddenapi-soong-input-dex = $(dir $(1))/hiddenapi/dex-input/classes.dex
hiddenapi-soong-output-dex = $(dir $(1))/hiddenapi/dex-output/classes.dex
+8 −0
Original line number Diff line number Diff line
@@ -79,6 +79,7 @@ built_dex_intermediate := $(intermediates.COMMON)/dex/classes.dex
built_dex_hiddenapi := $(intermediates.COMMON)/dex-hiddenapi/classes.dex
full_classes_stubs_jar := $(intermediates.COMMON)/stubs.jar
java_source_list_file := $(intermediates.COMMON)/java-source-list
greylist_txt := $(intermediates.COMMON)/greylist.txt


ifeq ($(LOCAL_MODULE_CLASS)$(LOCAL_SRC_FILES)$(LOCAL_STATIC_JAVA_LIBRARIES)$(LOCAL_SOURCE_FILES_ALL_GENERATED),APPS)
@@ -545,6 +546,13 @@ $(built_dex_intermediate): $(full_classes_proguard_jar) $(DX) $(ZIP2ZIP)
endif

ifneq ($(filter $(LOCAL_MODULE),$(PRODUCT_BOOT_JARS)),) # is_boot_jar
  # Derive API greylist from the classes jar.
  # We use full_classes_proguard_jar here, as that is what is converted to dex
  # later on. The difference is academic currently, as we don't proguard any
  # bootclasspath code at the moment. If we were to do that, we should add keep
  # rules for all members with the @UnsupportedAppUsage annotation.
  $(eval $(call hiddenapi-generate-greylist-txt,$(full_classes_proguard_jar),$(greylist_txt)))
  LOCAL_INTERMEDIATE_TARGETS += $(greylist_txt)
  $(eval $(call hiddenapi-copy-dex-files,$(built_dex_intermediate),$(built_dex_hiddenapi)))
  built_dex_copy_from := $(built_dex_hiddenapi)
else # !is_boot_jar
+6 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ full_classes_jar := $(intermediates.COMMON)/classes.jar
full_classes_pre_proguard_jar := $(intermediates.COMMON)/classes-pre-proguard.jar
full_classes_header_jar := $(intermediates.COMMON)/classes-header.jar
common_javalib.jar := $(intermediates.COMMON)/javalib.jar
greylist_txt := $(intermediates.COMMON)/greylist.txt

$(eval $(call copy-one-file,$(LOCAL_PREBUILT_MODULE_FILE),$(full_classes_jar)))
$(eval $(call copy-one-file,$(LOCAL_PREBUILT_MODULE_FILE),$(full_classes_pre_proguard_jar)))
@@ -86,6 +87,11 @@ ifdef LOCAL_SOONG_DEX_JAR
  ifneq ($(LOCAL_UNINSTALLABLE_MODULE),true)
    ifndef LOCAL_IS_HOST_MODULE
      ifneq ($(filter $(LOCAL_MODULE),$(PRODUCT_BOOT_JARS)),)  # is_boot_jar
        # Derive greylist from classes.jar.
        # We use full_classes_jar here, which is the post-proguard jar (on the basis that we also
        # have a full_classes_pre_proguard_jar). This is consistent with the equivalent code in
        # java.mk.
        $(eval $(call hiddenapi-generate-greylist-txt,$(full_classes_jar),$(greylist_txt)))
        $(eval $(call hiddenapi-copy-soong-jar,$(LOCAL_SOONG_DEX_JAR),$(common_javalib.jar)))
      else # !is_boot_jar
        $(eval $(call copy-one-file,$(LOCAL_SOONG_DEX_JAR),$(common_javalib.jar)))