diff options
| -rw-r--r-- | CleanSpec.mk | 3 | ||||
| -rw-r--r-- | core/Makefile | 92 | ||||
| -rw-r--r-- | core/clear_vars.mk | 1 | ||||
| -rw-r--r-- | core/install_jni_libs_internal.mk | 16 | ||||
| -rw-r--r-- | core/soong_android_app_set.mk | 32 | ||||
| -rw-r--r-- | target/board/BoardConfigGsiCommon.mk | 6 | ||||
| -rw-r--r-- | tools/releasetools/common.py | 7 | ||||
| -rwxr-xr-x | tools/releasetools/ota_from_target_files.py | 3 |
8 files changed, 79 insertions, 81 deletions
diff --git a/CleanSpec.mk b/CleanSpec.mk index 97dc31f71e..6352e38c98 100644 --- a/CleanSpec.mk +++ b/CleanSpec.mk @@ -722,6 +722,9 @@ $(call add-clean-step, rm -rf $(HOST_OUT)/framework/vts10-tradefed.jar) $(call add-clean-step, rm -rf $(HOST_OUT)/vts/*) $(call add-clean-step, rm -rf $(HOST_OUT)/framework/vts-tradefed.jar) +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/vendor/default.prop) +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/etc/prop.default) + # ************************************************ # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST # ************************************************ diff --git a/core/Makefile b/core/Makefile index f09c75bd7c..5e81549c49 100644 --- a/core/Makefile +++ b/core/Makefile @@ -169,9 +169,9 @@ ifeq ($(BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED), true) endif # ----------------------------------------------------------------- -# FINAL_VENDOR_DEFAULT_PROPERTIES will be installed in vendor/default.prop if +# FINAL_VENDOR_DEFAULT_PROPERTIES will be installed in vendor/build.prop if # property_overrides_split_enabled is true. Otherwise it will be installed in -# ROOT/default.prop. +# /system/build.prop ifdef BOARD_VNDK_VERSION ifeq ($(BOARD_VNDK_VERSION),current) FINAL_VENDOR_DEFAULT_PROPERTIES := ro.vndk.version=$(PLATFORM_VNDK_VERSION) @@ -224,9 +224,6 @@ endif FINAL_VENDOR_DEFAULT_PROPERTIES := $(call uniq-pairs-by-first-component, \ $(FINAL_VENDOR_DEFAULT_PROPERTIES),=) -# ----------------------------------------------------------------- -# prop.default - BUILDINFO_SH := build/make/tools/buildinfo.sh BUILDINFO_COMMON_SH := build/make/tools/buildinfo_common.sh POST_PROCESS_PROPS :=$= build/make/tools/post_process_props.py @@ -257,66 +254,19 @@ define generate-common-build-props-with-product-vars-set bash $(BUILDINFO_COMMON_SH) "$(1)" >> $(2) endef -ifdef property_overrides_split_enabled -INSTALLED_DEFAULT_PROP_TARGET := $(TARGET_OUT)/etc/prop.default -INSTALLED_DEFAULT_PROP_OLD_TARGET := $(TARGET_ROOT_OUT)/default.prop -ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_DEFAULT_PROP_OLD_TARGET) -$(INSTALLED_DEFAULT_PROP_TARGET): .KATI_IMPLICIT_OUTPUTS := $(INSTALLED_DEFAULT_PROP_OLD_TARGET) -else -# legacy path -INSTALLED_DEFAULT_PROP_TARGET := $(TARGET_ROOT_OUT)/default.prop -endif -ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_DEFAULT_PROP_TARGET) +# ----------------------------------------------------------------- +# build.prop +intermediate_system_build_prop := $(call intermediates-dir-for,ETC,system_build_prop)/build.prop +INSTALLED_BUILD_PROP_TARGET := $(TARGET_OUT)/build.prop +ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_BUILD_PROP_TARGET) + +# TODO(b/117892318) merge DEFAULT into BUILD FINAL_DEFAULT_PROPERTIES := \ $(call collapse-pairs, $(ADDITIONAL_DEFAULT_PROPERTIES)) \ $(call collapse-pairs, $(PRODUCT_SYSTEM_DEFAULT_PROPERTIES)) -ifndef property_overrides_split_enabled - FINAL_DEFAULT_PROPERTIES += \ - $(call collapse-pairs, $(FINAL_VENDOR_DEFAULT_PROPERTIES)) -endif FINAL_DEFAULT_PROPERTIES := $(call uniq-pairs-by-first-component, \ $(FINAL_DEFAULT_PROPERTIES),=) -intermediate_system_build_prop := $(call intermediates-dir-for,ETC,system_build_prop)/build.prop - -$(INSTALLED_DEFAULT_PROP_TARGET): $(BUILDINFO_COMMON_SH) $(POST_PROCESS_PROPS) $(intermediate_system_build_prop) - @echo Target buildinfo: $@ - @mkdir -p $(dir $@) - @rm -f $@ - $(hide) echo "#" > $@; \ - echo "# ADDITIONAL_DEFAULT_PROPERTIES" >> $@; \ - echo "#" >> $@; - $(hide) $(foreach line,$(FINAL_DEFAULT_PROPERTIES), \ - echo "$(line)" >> $@;) - $(hide) $(POST_PROCESS_PROPS) $@ -ifdef property_overrides_split_enabled - $(hide) mkdir -p $(TARGET_ROOT_OUT) - $(hide) ln -sf system/etc/prop.default $(INSTALLED_DEFAULT_PROP_OLD_TARGET) -endif - -# ----------------------------------------------------------------- -# vendor default.prop -INSTALLED_VENDOR_DEFAULT_PROP_TARGET := -ifdef property_overrides_split_enabled -INSTALLED_VENDOR_DEFAULT_PROP_TARGET := $(TARGET_OUT_VENDOR)/default.prop -ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_VENDOR_DEFAULT_PROP_TARGET) - -$(INSTALLED_VENDOR_DEFAULT_PROP_TARGET): $(INSTALLED_DEFAULT_PROP_TARGET) $(POST_PROCESS_PROPS) - @echo Target buildinfo: $@ - @mkdir -p $(dir $@) - $(hide) echo "#" > $@; \ - echo "# ADDITIONAL VENDOR DEFAULT PROPERTIES" >> $@; \ - echo "#" >> $@; - $(hide) $(foreach line,$(FINAL_VENDOR_DEFAULT_PROPERTIES), \ - echo "$(line)" >> $@;) - $(hide) $(POST_PROCESS_PROPS) $@ - -endif # property_overrides_split_enabled - -# ----------------------------------------------------------------- -# build.prop -INSTALLED_BUILD_PROP_TARGET := $(TARGET_OUT)/build.prop -ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_BUILD_PROP_TARGET) FINAL_BUILD_PROPERTIES := \ $(call collapse-pairs, $(ADDITIONAL_BUILD_PROPERTIES)) FINAL_BUILD_PROPERTIES := $(call uniq-pairs-by-first-component, \ @@ -430,6 +380,12 @@ $(intermediate_system_build_prop): $(BUILDINFO_SH) $(BUILDINFO_COMMON_SH) $(INTE @echo Target buildinfo: $@ @mkdir -p $(dir $@) $(hide) rm -f $@ && touch $@ + $(hide) $(foreach line,$(FINAL_DEFAULT_PROPERTIES), \ + echo "$(line)" >> $@;) +ifndef property_overrides_split_enabled + $(hide) $(foreach line,$(FINAL_VENDOR_DEFAULT_PROPERTIES), \ + echo "$(line)" >> $@;) +endif ifneq ($(PRODUCT_OEM_PROPERTIES),) $(hide) echo "#" >> $@; \ echo "# PRODUCT_OEM_PROPERTIES" >> $@; \ @@ -529,6 +485,10 @@ $(INSTALLED_VENDOR_BUILD_PROP_TARGET): $(BUILDINFO_COMMON_SH) $(POST_PROCESS_PRO @echo Target vendor buildinfo: $@ @mkdir -p $(dir $@) $(hide) rm -f $@ && touch $@ +ifdef property_overrides_split_enabled + $(hide) $(foreach line,$(FINAL_VENDOR_DEFAULT_PROPERTIES), \ + echo "$(line)" >> $@;) +endif ifeq ($(PRODUCT_USE_DYNAMIC_PARTITIONS),true) $(hide) echo ro.boot.dynamic_partitions=true >> $@ endif @@ -1304,7 +1264,7 @@ $(INSTALLED_VENDOR_BOOTIMAGE_TARGET): $(MKBOOTIMG) $(INTERNAL_VENDOR_RAMDISK_TAR ifeq ($(BOARD_AVB_ENABLE),true) $(INSTALLED_VENDOR_BOOTIMAGE_TARGET): $(AVBTOOL) $(BOARD_AVB_VENDOR_BOOTIMAGE_KEY_PATH) $(call pretty,"Target vendor_boot image: $@") - $(MKBOOTIMG) $(INTERNAL_VENDOR_BOOTIMAGE_ARGS) $(INTERNAL_MKBOOTIMG_VERSION_ARGS) $(BOARD_MKBOOTIMG_ARGS) --vendor_ramdisk $(INTERNAL_VENDOR_RAMDISK_TARGET) --vendor_boot $@ + $(MKBOOTIMG) $(INTERNAL_VENDOR_BOOTIMAGE_ARGS) $(BOARD_MKBOOTIMG_ARGS) --vendor_ramdisk $(INTERNAL_VENDOR_RAMDISK_TARGET) --vendor_boot $@ $(call assert-max-image-size,$@,$(BOARD_VENDOR_BOOTIMAGE_PARTITION_SIZE)) $(AVBTOOL) add_hash_footer \ --image $@ \ @@ -1314,7 +1274,7 @@ $(INSTALLED_VENDOR_BOOTIMAGE_TARGET): $(AVBTOOL) $(BOARD_AVB_VENDOR_BOOTIMAGE_KE else $(INSTALLED_VENDOR_BOOTIMAGE_TARGET): $(call pretty,"Target vendor_boot image: $@") - $(MKBOOTIMG) $(INTERNAL_VENDOR_BOOTIMAGE_ARGS) $(INTERNAL_MKBOOTIMG_VERSION_ARGS) $(BOARD_MKBOOTIMG_ARGS) --vendor_ramdisk $(INTERNAL_VENDOR_RAMDISK_TARGET) --vendor_boot $@ + $(MKBOOTIMG) $(INTERNAL_VENDOR_BOOTIMAGE_ARGS) $(BOARD_MKBOOTIMG_ARGS) --vendor_ramdisk $(INTERNAL_VENDOR_RAMDISK_TARGET) --vendor_boot $@ $(call assert-max-image-size,$@,$(BOARD_VENDOR_BOOTIMAGE_PARTITION_SIZE)) endif endif # BUILDING_VENDOR_BOOT_IMAGE @@ -2113,8 +2073,6 @@ $(foreach prop,$(1), \ endef $(INSTALLED_RECOVERY_BUILD_PROP_TARGET): \ - $(INSTALLED_DEFAULT_PROP_TARGET) \ - $(INSTALLED_VENDOR_DEFAULT_PROP_TARGET) \ $(intermediate_system_build_prop) \ $(INSTALLED_VENDOR_BUILD_PROP_TARGET) \ $(INSTALLED_ODM_BUILD_PROP_TARGET) \ @@ -2123,8 +2081,6 @@ $(INSTALLED_RECOVERY_BUILD_PROP_TARGET): \ @echo "Target recovery buildinfo: $@" $(hide) mkdir -p $(dir $@) $(hide) rm -f $@ - $(hide) cat $(INSTALLED_DEFAULT_PROP_TARGET) > $@ - $(hide) cat $(INSTALLED_VENDOR_DEFAULT_PROP_TARGET) >> $@ $(hide) cat $(intermediate_system_build_prop) >> $@ $(hide) cat $(INSTALLED_VENDOR_BUILD_PROP_TARGET) >> $@ $(hide) cat $(INSTALLED_ODM_BUILD_PROP_TARGET) >> $@ @@ -2512,7 +2468,7 @@ endif # Depends on vendor_boot.img and vendor-ramdisk-debug.cpio.gz to build the new vendor_boot-debug.img $(INSTALLED_VENDOR_DEBUG_BOOTIMAGE_TARGET): $(MKBOOTIMG) $(INSTALLED_VENDOR_BOOTIMAGE_TARGET) $(INSTALLED_VENDOR_DEBUG_RAMDISK_TARGET) $(call pretty,"Target vendor_boot debug image: $@") - $(MKBOOTIMG) $(INTERNAL_VENDOR_BOOTIMAGE_ARGS) $(INTERNAL_MKBOOTIMG_VERSION_ARGS) $(BOARD_MKBOOTIMG_ARGS) --vendor_ramdisk $(INSTALLED_VENDOR_DEBUG_RAMDISK_TARGET) --vendor_boot $@ + $(MKBOOTIMG) $(INTERNAL_VENDOR_BOOTIMAGE_ARGS) $(BOARD_MKBOOTIMG_ARGS) --vendor_ramdisk $(INSTALLED_VENDOR_DEBUG_RAMDISK_TARGET) --vendor_boot $@ $(call assert-max-image-size,$@,$(BOARD_VENDOR_BOOTIMAGE_PARTITION_SIZE)) $(if $(BOARD_AVB_VENDOR_BOOT_KEY_PATH),$(call test-key-sign-vendor-bootimage,$@)) @@ -3522,12 +3478,8 @@ $(if $(BOARD_AVB_$(call to-upper,$(1))_KEY_PATH),\ endef ifdef INSTALLED_BOOTIMAGE_TARGET -# multiple hashes for an image are not yet supported, fortunately this -# only arises for GKI where the boot descriptor can be left out -ifeq ($(strip $(BOARD_KERNEL_BINARIES)),) $(eval $(call check-and-set-avb-args,boot)) endif -endif ifdef INSTALLED_VENDOR_BOOTIMAGE_TARGET $(eval $(call check-and-set-avb-args,vendor_boot)) diff --git a/core/clear_vars.mk b/core/clear_vars.mk index 5af057036d..c88a1cd950 100644 --- a/core/clear_vars.mk +++ b/core/clear_vars.mk @@ -21,6 +21,7 @@ LOCAL_ANNOTATION_PROCESSOR_CLASSES:= LOCAL_APIDIFF_NEWAPI:= LOCAL_APIDIFF_OLDAPI:= LOCAL_APK_LIBRARIES:= +LOCAL_APK_SET_MASTER_FILE:= LOCAL_ARM_MODE:= LOCAL_ASFLAGS:= LOCAL_ASSET_DIR:= diff --git a/core/install_jni_libs_internal.mk b/core/install_jni_libs_internal.mk index b482eb59ba..48c93de45f 100644 --- a/core/install_jni_libs_internal.mk +++ b/core/install_jni_libs_internal.mk @@ -124,17 +124,15 @@ ifneq ($(strip $(LOCAL_JNI_SHARED_LIBRARIES)),) my_allowed_types := $(my_allowed_ndk_types) native:platform native:product native:vendor native:vndk native:vndk_private native:platform_vndk endif - ifneq (,$(LOCAL_SDK_VERSION)) - ifeq ($(SOONG_ANDROID_MK),$(LOCAL_MODULE_MAKEFILE)) - # SOONG_SDK_VARIANT_MODULES isn't complete yet while parsing Soong modules, and Soong has - # already ensured that apps link against the correct SDK variants, rewrite all JNI libraries - # to the SDK variant. - my_link_deps := $(addprefix SHARED_LIBRARIES:,$(addsuffix .sdk,$(LOCAL_JNI_SHARED_LIBRARIES))) - else + ifeq ($(SOONG_ANDROID_MK),$(LOCAL_MODULE_MAKEFILE)) + # SOONG_SDK_VARIANT_MODULES isn't complete yet while parsing Soong modules, and Soong has + # already ensured that apps link against the correct SDK variants, don't check them. + else + ifneq (,$(LOCAL_SDK_VERSION)) my_link_deps := $(addprefix SHARED_LIBRARIES:,$(call use_soong_sdk_libraries,$(LOCAL_JNI_SHARED_LIBRARIES))) + else + my_link_deps := $(addprefix SHARED_LIBRARIES:,$(LOCAL_JNI_SHARED_LIBRARIES)) endif - else - my_link_deps := $(addprefix SHARED_LIBRARIES:,$(LOCAL_JNI_SHARED_LIBRARIES)) endif my_common := diff --git a/core/soong_android_app_set.mk b/core/soong_android_app_set.mk new file mode 100644 index 0000000000..e84371ca61 --- /dev/null +++ b/core/soong_android_app_set.mk @@ -0,0 +1,32 @@ +# App prebuilt coming from Soong. +# Extra inputs: +# LOCAL_APK_SET_MASTER_FILE + +ifneq ($(LOCAL_MODULE_MAKEFILE),$(SOONG_ANDROID_MK)) + $(call pretty-error,soong_apk_set.mk may only be used from Soong) +endif + +LOCAL_BUILT_MODULE_STEM := $(LOCAL_APK_SET_MASTER_FILE) +LOCAL_INSTALLED_MODULE_STEM := $(LOCAL_APK_SET_MASTER_FILE) + +####################################### +include $(BUILD_SYSTEM)/base_rules.mk +####################################### + +## Extract master APK from APK set into given directory +# $(1) APK set +# $(2) master APK entry (e.g., splits/base-master.apk + +define extract-master-from-apk-set +$(LOCAL_BUILT_MODULE): $(1) + @echo "Extracting $$@" + unzip -pq $$< $(2) >$$@ +endef + +$(eval $(call extract-master-from-apk-set,$(LOCAL_PREBUILT_MODULE_FILE),$(LOCAL_APK_SET_MASTER_FILE))) +LOCAL_POST_INSTALL_CMD := unzip -qo -j -d $(dir $(LOCAL_INSTALLED_MODULE)) \ + $(LOCAL_PREBUILT_MODULE_FILE) -x $(LOCAL_APK_SET_MASTER_FILE) +$(LOCAL_INSTALLED_MODULE): PRIVATE_POST_INSTALL_CMD := $(LOCAL_POST_INSTALL_CMD) +PACKAGES.$(LOCAL_MODULE).OVERRIDES := $(strip $(LOCAL_OVERRIDES_PACKAGES)) + +SOONG_ALREADY_CONV := $(SOONG_ALREADY_CONV) $(LOCAL_MODULE) diff --git a/target/board/BoardConfigGsiCommon.mk b/target/board/BoardConfigGsiCommon.mk index c89e203edc..49f6edcde4 100644 --- a/target/board/BoardConfigGsiCommon.mk +++ b/target/board/BoardConfigGsiCommon.mk @@ -40,6 +40,12 @@ BOARD_AVB_SYSTEM_ALGORITHM := SHA256_RSA2048 BOARD_AVB_SYSTEM_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP) BOARD_AVB_SYSTEM_ROLLBACK_INDEX_LOCATION := 1 +# Enable chain partition for boot, mainly for GKI images. +BOARD_AVB_BOOT_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem +BOARD_AVB_BOOT_ALGORITHM := SHA256_RSA2048 +BOARD_AVB_BOOT_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP) +BOARD_AVB_BOOT_ROLLBACK_INDEX_LOCATION := 2 + # GSI specific System Properties ifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT))) TARGET_SYSTEM_EXT_PROP := build/make/target/board/gsi_system_ext.prop diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py index 7805e30ce8..42c29c01c9 100644 --- a/tools/releasetools/common.py +++ b/tools/releasetools/common.py @@ -803,8 +803,13 @@ class PartitionBuildProps(object): """Parses the build prop in a given import statement.""" tokens = line.split() - if len(tokens) != 2 or tokens[0] != 'import': + if tokens[0] != 'import' or (len(tokens) != 2 and len(tokens) != 3) : raise ValueError('Unrecognized import statement {}'.format(line)) + + if len(tokens) == 3: + logger.info("Import %s from %s, skip", tokens[2], tokens[1]) + return {} + import_path = tokens[1] if not re.match(r'^/{}/.*\.prop$'.format(self.partition), import_path): raise ValueError('Unrecognized import path {}'.format(line)) diff --git a/tools/releasetools/ota_from_target_files.py b/tools/releasetools/ota_from_target_files.py index 47ad3d8a14..ad001d13c7 100755 --- a/tools/releasetools/ota_from_target_files.py +++ b/tools/releasetools/ota_from_target_files.py @@ -267,7 +267,8 @@ RETROFIT_DAP_UNZIP_PATTERN = ['OTA/super_*.img', AB_PARTITIONS] # 'system_other' and bootloader partitions. SECONDARY_PAYLOAD_SKIPPED_IMAGES = [ 'boot', 'dtbo', 'modem', 'odm', 'product', 'radio', 'recovery', - 'system_ext', 'vbmeta', 'vbmeta_system', 'vbmeta_vendor', 'vendor'] + 'system_ext', 'vbmeta', 'vbmeta_system', 'vbmeta_vendor', 'vendor', + 'vendor_boot'] class PayloadSigner(object): |