author | Xindong Xu <xindong.xu@amlogic.com> | 2019-09-18 07:09:29 (GMT) |
---|---|---|
committer | Xindong Xu <xindong.xu@amlogic.com> | 2019-09-20 02:26:38 (GMT) |
commit | a3740f11fdd91056f269c040a1280c410e0d724f (patch) | |
tree | 6c4091ca67a1ca8876cfbfaee347781a5321791f | |
parent | bb9be9e4eabb4d66ec6d2b4d73a0884b1fb007bf (diff) | |
download | common-a3740f11fdd91056f269c040a1280c410e0d724f.zip common-a3740f11fdd91056f269c040a1280c410e0d724f.tar.gz common-a3740f11fdd91056f269c040a1280c410e0d724f.tar.bz2 |
atom: update odm/product full in inc ota zip [1/1]
PD#SWPL-14287
bug:141132819
Problem:
when data corrupted, ODM / product partitions that are
not protected by AVB cannot be differentially upgraded
Solution:
1. update odm/product full in inc ota zip
2. copy img form target to fastboot dir to support inc ota
Verify:
locally
Change-Id: Ib2d61db99c152e93a78fe3fb0297f88f4c62ff22
-rwxr-xr-x[-rw-r--r--] | factory.mk | 11 | ||||
-rwxr-xr-x | releasetools.py | 12 |
2 files changed, 21 insertions, 2 deletions
diff --git a/factory.mk b/factory.mk index bd50773..eca3277 100644..100755 --- a/factory.mk +++ b/factory.mk @@ -9,6 +9,8 @@ else BUILT_IMAGES := boot.img recovery.img bootloader.img dt.img endif +VB_CHECK_IMAGES := vendor.img system.img vbmeta.img boot.img product.img recovery.img + ifeq ($(PRODUCT_BUILD_SECURE_BOOT_IMAGE_DIRECTLY),true) BUILT_IMAGES := $(addsuffix .encrypt, $(BUILT_IMAGES)) endif#ifeq ($(PRODUCT_BUILD_SECURE_BOOT_IMAGE_DIRECTLY),true) @@ -339,6 +341,9 @@ ifeq ($(NO_AMLOGIC_FACTORY_ZIP),) cp --remove-destination $(PRODUCT_OUT)/$(file) $(PRODUCT_UPGRADE_OUT)/$(file); \ ) @echo $(INSTALLED_AML_UPGRADE_PACKAGE_TARGET) + $(hide) $(foreach file,$(VB_CHECK_IMAGES), \ + cp -f $(AML_TARGET)/IMAGES/$(file) $(PRODUCT_UPGRADE_OUT)/$(file); \ + ) ifeq ($(PRODUCT_BUILD_SECURE_BOOT_IMAGE_DIRECTLY),true) $(hide) rm -f $(PRODUCT_UPGRADE_OUT)/bootloader.img.encrypt.* $(hide) $(ACP) $(PRODUCT_OUT)/bootloader.img.encrypt.* $(PRODUCT_UPGRADE_OUT)/ @@ -396,6 +401,9 @@ $(INSTALLED_AML_FASTBOOT_ZIP): $(addprefix $(PRODUCT_OUT)/,$(FASTBOOT_IMAGES)) $ rm -rf $(PRODUCT_OUT)/fastboot mkdir -p $(PRODUCT_OUT)/fastboot cd $(PRODUCT_OUT); cp $(FASTBOOT_IMAGES) fastboot/; + $(hide) $(foreach file,$(VB_CHECK_IMAGES), \ + cp -f $(AML_TARGET)/IMAGES/$(file) $(PRODUCT_OUT)/fastboot/$(file); \ + ) ifeq ($(TARGET_PRODUCT),ampere) echo "board=p212" > $(PRODUCT_OUT)/fastboot/android-info.txt endif @@ -435,6 +443,9 @@ else endif cp $(PRODUCT_OUT)/odm.img $(PRODUCT_OUT)/fastboot_auto/ cp $(PRODUCT_OUT)/upgrade/logo.img $(PRODUCT_OUT)/fastboot_auto/ + $(hide) $(foreach file,$(VB_CHECK_IMAGES), \ + cp -f $(AML_TARGET)/IMAGES/$(file) $(PRODUCT_OUT)/fastboot_auto/$(file); \ + ) ifeq ($(AB_OTA_UPDATER),true) cp device/amlogic/common/flash-all-ab.sh $(PRODUCT_OUT)/fastboot_auto/flash-all.sh cp device/amlogic/common/flash-all-ab.bat $(PRODUCT_OUT)/fastboot_auto/flash-all.bat diff --git a/releasetools.py b/releasetools.py index 8e8e204..7604a13 100755 --- a/releasetools.py +++ b/releasetools.py @@ -275,11 +275,19 @@ def IncrementalOTA_Ext4ImageCheck(info, name): def IncrementalOTA_InstallEnd(info): print "amlogic extensions:IncrementalOTA_InstallEnd" - IncrementalOTA_Ext4ImageCheck(info, "odm"); - IncrementalOTA_Ext4ImageCheck(info, "product"); IncrementalOTA_ImageCheck(info, "logo"); IncrementalOTA_ImageCheck(info, "dt"); IncrementalOTA_ImageCheck(info, "recovery"); IncrementalOTA_ImageCheck(info, "vbmeta"); info.script.FormatPartition("/metadata") IncrementalOTA_ImageCheck(info, "bootloader"); + + product_tgt = GetImage("product", OPTIONS.input_tmp) + product_tgt.ResetFileMap() + product_diff = common.BlockDifference("product", product_tgt) + product_diff.WriteScript(info.script, info.output_zip) + + odm_tgt = GetImage("odm", OPTIONS.input_tmp) + odm_tgt.ResetFileMap() + odm_diff = common.BlockDifference("odm", odm_tgt) + odm_diff.WriteScript(info.script, info.output_zip) |