summaryrefslogtreecommitdiff
authorXindong 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)
commita3740f11fdd91056f269c040a1280c410e0d724f (patch)
tree6c4091ca67a1ca8876cfbfaee347781a5321791f
parentbb9be9e4eabb4d66ec6d2b4d73a0884b1fb007bf (diff)
downloadcommon-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
Diffstat
-rwxr-xr-x[-rw-r--r--]factory.mk11
-rwxr-xr-xreleasetools.py12
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)