diff options
| -rw-r--r-- | core/Makefile | 23 | ||||
| -rw-r--r-- | core/dex_preopt_config.mk | 3 | ||||
| -rw-r--r-- | core/dex_preopt_libart.mk | 3 | ||||
| -rw-r--r-- | core/java_common.mk | 1 | ||||
| -rwxr-xr-x | tools/releasetools/build_image.py | 8 | 
5 files changed, 33 insertions, 5 deletions
diff --git a/core/Makefile b/core/Makefile index 4a8ec5845b..646aaec7b3 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1423,6 +1423,12 @@ $(if $(BOARD_AVB_ENABLE),\          $(hide) echo "avb_system_key_path=$(BOARD_AVB_SYSTEM_KEY_PATH)" >> $(1)          $(hide) echo "avb_system_algorithm=$(BOARD_AVB_SYSTEM_ALGORITHM)" >> $(1)          $(hide) echo "avb_system_rollback_index_location=$(BOARD_AVB_SYSTEM_ROLLBACK_INDEX_LOCATION)" >> $(1))) +$(if $(BOARD_AVB_ENABLE),$(hide) echo "avb_system_other_hashtree_enable=$(BOARD_AVB_ENABLE)" >> $(1)) +$(if $(BOARD_AVB_ENABLE),$(hide) echo "avb_system_other_add_hashtree_footer_args=$(BOARD_AVB_SYSTEM_OTHER_ADD_HASHTREE_FOOTER_ARGS)" >> $(1)) +$(if $(BOARD_AVB_ENABLE),\ +    $(if $(BOARD_AVB_SYSTEM_OTHER_KEY_PATH),\ +        $(hide) echo "avb_system_other_key_path=$(BOARD_AVB_SYSTEM_OTHER_KEY_PATH)" >> $(1) +        $(hide) echo "avb_system_other_algorithm=$(BOARD_AVB_SYSTEM_OTHER_ALGORITHM)" >> $(1)))  $(if $(BOARD_AVB_ENABLE),$(hide) echo "avb_vendor_hashtree_enable=$(BOARD_AVB_ENABLE)" >> $(1))  $(if $(BOARD_AVB_ENABLE),$(hide) echo "avb_vendor_add_hashtree_footer_args=$(BOARD_AVB_VENDOR_ADD_HASHTREE_FOOTER_ARGS)" >> $(1))  $(if $(BOARD_AVB_ENABLE),\ @@ -2834,6 +2840,23 @@ BOARD_AVB_ALGORITHM := SHA256_RSA4096  BOARD_AVB_KEY_PATH := external/avb/test/data/testkey_rsa4096.pem  endif +# AVB signing for system_other.img. +ifdef BUILDING_SYSTEM_OTHER_IMAGE +ifdef BOARD_AVB_SYSTEM_OTHER_KEY_PATH +$(if $(BOARD_AVB_SYSTEM_OTHER_ALGORITHM),,$(error BOARD_AVB_SYSTEM_OTHER_ALGORITHM is not defined)) +else +# If key path isn't specified, use the same key as BOARD_AVB_KEY_PATH. +BOARD_AVB_SYSTEM_OTHER_KEY_PATH := $(BOARD_AVB_KEY_PATH) +BOARD_AVB_SYSTEM_OTHER_ALGORITHM := $(BOARD_AVB_ALGORITHM) +endif + +ifndef BOARD_AVB_SYSTEM_OTHER_ROLLBACK_INDEX +BOARD_AVB_SYSTEM_OTHER_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP) +endif + +BOARD_AVB_SYSTEM_OTHER_ADD_HASHTREE_FOOTER_ARGS += --rollback_index $(BOARD_AVB_SYSTEM_OTHER_ROLLBACK_INDEX) +endif # end of AVB for BUILDING_SYSTEM_OTHER_IMAGE +  INTERNAL_AVB_PARTITIONS_IN_CHAINED_VBMETA_IMAGES := \      $(BOARD_AVB_VBMETA_SYSTEM) \      $(BOARD_AVB_VBMETA_VENDOR) diff --git a/core/dex_preopt_config.mk b/core/dex_preopt_config.mk index d1236f563d..90bdaf3cc0 100644 --- a/core/dex_preopt_config.mk +++ b/core/dex_preopt_config.mk @@ -9,7 +9,8 @@ PRODUCT_BOOTCLASSPATH := $(subst $(space),:,$(ALL_BOOT_LOCATIONS))  DEXPREOPT_BOOT_JARS_MODULES := $(NON_UPDATABLE_BOOT_MODULES)  DEXPREOPT_BOOTCLASSPATH_DEX_LOCATIONS := $(NON_UPDATABLE_BOOT_LOCATIONS) -DEXPREOPT_BOOTCLASSPATH_DEX_FILES := $(foreach jar,$(DEXPREOPT_BOOTCLASSPATH_DEX_LOCATIONS),$(PRODUCT_OUT)$(jar)) +DEXPREOPT_BOOT_JARS_INPUT_PATH := $(PRODUCT_OUT)/dex_bootjars_input +DEXPREOPT_BOOTCLASSPATH_DEX_FILES := $(foreach m,$(NON_UPDATABLE_BOOT_MODULES),$(DEXPREOPT_BOOT_JARS_INPUT_PATH)/$(m).jar)  # Create paths for boot image.  DEXPREOPT_BUILD_DIR := $(OUT_DIR) diff --git a/core/dex_preopt_libart.mk b/core/dex_preopt_libart.mk index 9d320b99c6..de7dcdd5b4 100644 --- a/core/dex_preopt_libart.mk +++ b/core/dex_preopt_libart.mk @@ -10,6 +10,9 @@ LIBART_TARGET_BOOT_JARS := $(DEXPREOPT_BOOT_JARS_MODULES)  LIBART_TARGET_BOOT_DEX_LOCATIONS := $(DEXPREOPT_BOOTCLASSPATH_DEX_LOCATIONS)  LIBART_TARGET_BOOT_DEX_FILES := $(foreach mod,$(NON_UPDATABLE_BOOT_MODULES),$(call intermediates-dir-for,JAVA_LIBRARIES,$(mod),,COMMON)/javalib.jar) +# Copy the files to a location Soong dex preopt will look at. +$(foreach mod,$(LIBART_TARGET_BOOT_JARS),$(eval $(call copy-one-file,$(call intermediates-dir-for,JAVA_LIBRARIES,$(mod),,COMMON)/javalib.jar,$(DEXPREOPT_BOOT_JARS_INPUT_PATH)/$(mod).jar))) +  # dex preopt on the bootclasspath produces multiple files.  The first dex file  # is converted into to boot.art (to match the legacy assumption that boot.art  # exists), and the rest are converted to boot-<name>.art. diff --git a/core/java_common.mk b/core/java_common.mk index 4e331d0589..f5da120703 100644 --- a/core/java_common.mk +++ b/core/java_common.mk @@ -386,6 +386,7 @@ else # LOCAL_IS_HOST_MODULE    endif # USE_CORE_LIB_BOOTCLASSPATH  endif # !LOCAL_IS_HOST_MODULE +ALL_DEPS.$(LOCAL_MODULE).ALL_DEPS := $(ALL_DEPS.$(LOCAL_MODULE).ALL_DEPS) $(full_java_bootclasspath_libs)  # Export the SDK libs. The sdk library names listed in LOCAL_SDK_LIBRARIES are first exported.  # Then sdk library names exported from dependencies are all re-exported. diff --git a/tools/releasetools/build_image.py b/tools/releasetools/build_image.py index 8712d8582a..ba1d60ea97 100755 --- a/tools/releasetools/build_image.py +++ b/tools/releasetools/build_image.py @@ -569,11 +569,11 @@ def ImagePropFromGlobalDict(glob_dict, mount_point):    elif mount_point == "system_other":      # We inherit the selinux policies of /system since we contain some of its      # files. -    copy_prop("avb_system_hashtree_enable", "avb_hashtree_enable") -    copy_prop("avb_system_add_hashtree_footer_args", +    copy_prop("avb_system_other_hashtree_enable", "avb_hashtree_enable") +    copy_prop("avb_system_other_add_hashtree_footer_args",                "avb_add_hashtree_footer_args") -    copy_prop("avb_system_key_path", "avb_key_path") -    copy_prop("avb_system_algorithm", "avb_algorithm") +    copy_prop("avb_system_other_key_path", "avb_key_path") +    copy_prop("avb_system_other_algorithm", "avb_algorithm")      copy_prop("fs_type", "fs_type")      copy_prop("system_fs_type", "fs_type")      copy_prop("system_size", "partition_size")  |