Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a56129ed authored by Daniel Zheng's avatar Daniel Zheng Committed by Automerger Merge Worker
Browse files

Merge "Full ota v3 compatibilty check" into main am: 7187b548

parents e88d8735 7187b548
Loading
Loading
Loading
Loading
+15 −1
Original line number Diff line number Diff line
@@ -872,6 +872,7 @@ def GenerateAbOtaPackage(target_file, output_file, source_file=None):
  target_info = common.BuildInfo(OPTIONS.info_dict, OPTIONS.oem_dicts)
  if OPTIONS.disable_vabc and target_info.is_release_key:
    raise ValueError("Disabling VABC on release-key builds is not supported.")

  ValidateCompressionParam(target_info)
  vabc_compression_param = target_info.vabc_compression_param

@@ -907,7 +908,6 @@ def GenerateAbOtaPackage(target_file, output_file, source_file=None):
      logger.info("Source build and target build use different compression methods {} vs {}, default to source builds parameter {}".format(
          source_info.vabc_compression_param, target_info.vabc_compression_param, source_info.vabc_compression_param))
      vabc_compression_param = source_info.vabc_compression_param

    # Virtual AB Cow version 3 is introduced in Android U with improved memory
    # and install time performance. All OTA's with
    # both the source build and target build with VIRTUAL_AB_COW_VERSION = 3
@@ -918,6 +918,7 @@ def GenerateAbOtaPackage(target_file, output_file, source_file=None):
    elif source_info.vabc_cow_version != target_info.vabc_cow_version:
      logger.info("Source and Target have different cow VABC_COW_VERSION specified, default to minimum version")
      OPTIONS.vabc_cow_version = min(source_info.vabc_cow_version, target_info.vabc_cow_version)

    # Virtual AB Compression was introduced in Androd S.
    # Later, we backported VABC to Android R. But verity support was not
    # backported, so if VABC is used and we are on Android R, disable
@@ -930,6 +931,19 @@ def GenerateAbOtaPackage(target_file, output_file, source_file=None):
    assert "ab_partitions" in OPTIONS.info_dict, \
        "META/ab_partitions.txt is required for ab_update."
    source_info = None
    if not target_info.vabc_cow_version:
        OPTIONS.vabc_cow_version = 2
    elif target_info.vabc_cow_version >= "3" and target_info.vendor_api_level < 35:
      logger.warning(
            "This full OTA is configured to use VABC cow version"
            " 3 which is supported since"
            " Android API level 35, but device is "
            "launched with {} . If this full OTA is"
            " served to a device running old build, OTA might fail due to "
            "unsupported vabc cow version. For safety, version 2 is used because "
            "it's supported since day 1.".format(
                target_info.vendor_api_level))
      OPTIONS.vabc_cow_version = 2
    if OPTIONS.vabc_compression_param is None and vabc_compression_param:
      minimum_api_level_required = VABC_COMPRESSION_PARAM_SUPPORT[
          vabc_compression_param]