Adding BOARD_NON_AB_OTA_DISABLE_COMPRESSION
Brotli decompression error occured during sideloading non A/B full OTA.
The flag disable brotli compression for non A/B full OTA.
The flag set if a device supports non A/B update.
Bug: 248350283
Test: build and sideload the full ota package.
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:64f700aad93501edbcfb0d2fa81b3bacc2194a73)
Merged-In: I1a7dcd0cbfc425629ec4a8b7dbe18f2937571c09
Change-Id: I1a7dcd0cbfc425629ec4a8b7dbe18f2937571c09
diff --git a/core/Makefile b/core/Makefile
index e1a08bf..9fe209f 100644
--- a/core/Makefile
+++ b/core/Makefile
@@ -5441,6 +5441,9 @@
ifeq ($(TARGET_OTA_ALLOW_NON_AB),true)
$(hide) echo "allow_non_ab=true" >> $@
endif
+ifeq ($(BOARD_NON_AB_OTA_DISABLE_COMPRESSION),true)
+ $(hide) echo "board_non_ab_ota_disable_compression=true" >> $@
+endif
ifdef BOARD_PREBUILT_DTBOIMAGE
$(hide) echo "has_dtbo=true" >> $@
ifeq ($(BOARD_AVB_ENABLE),true)
diff --git a/core/board_config.mk b/core/board_config.mk
index af05973..66f42c7 100644
--- a/core/board_config.mk
+++ b/core/board_config.mk
@@ -954,6 +954,11 @@
endif
endif
+# For Non A/B full OTA, disable brotli compression.
+ifeq ($(TARGET_OTA_ALLOW_NON_AB),true)
+ BOARD_NON_AB_OTA_DISABLE_COMPRESSION := true
+endif
+
# Quick check for building generic OTA packages. Currently it only supports A/B OTAs.
ifeq ($(PRODUCT_BUILD_GENERIC_OTA_PACKAGE),true)
ifneq ($(AB_OTA_UPDATER),true)
diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py
index 1e87b9c..e2a29f7 100644
--- a/tools/releasetools/common.py
+++ b/tools/releasetools/common.py
@@ -3403,7 +3403,7 @@
# compression_time: 75s | 265s | 719s
# decompression_time: 15s | 25s | 25s
- if not self.src:
+ if not self.src and not OPTIONS.info_dict.get("board_non_ab_ota_disable_compression"):
brotli_cmd = ['brotli', '--quality=6',
'--output={}.new.dat.br'.format(self.path),
'{}.new.dat'.format(self.path)]