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

Commit 58683b1b authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "releasetools: Handle the case of not having ro.vendor.build.fingerprint."

parents 48a575c0 ea6cbd07
Loading
Loading
Loading
Loading
+19 −5
Original line number Diff line number Diff line
@@ -284,6 +284,17 @@ class BuildInfo(object):
  def fingerprint(self):
    return self._fingerprint

  @property
  def vendor_fingerprint(self):
    if "vendor.build.prop" not in self.info_dict:
      return None
    vendor_build_prop = self.info_dict["vendor.build.prop"]
    if "ro.vendor.build.fingerprint" in vendor_build_prop:
      return vendor_build_prop["ro.vendor.build.fingerprint"]
    if "ro.vendor.build.thumbprint" in vendor_build_prop:
      return vendor_build_prop["ro.vendor.build.thumbprint"]
    return None

  @property
  def oem_props(self):
    return self._oem_props
@@ -706,10 +717,13 @@ def AddCompatibilityArchiveIfTrebleEnabled(target_zip, output_zip, target_info,
  target_fp = target_info.fingerprint
  system_updated = source_fp != target_fp

  source_fp_vendor = source_info.GetVendorBuildProp(
      "ro.vendor.build.fingerprint")
  target_fp_vendor = target_info.GetVendorBuildProp(
      "ro.vendor.build.fingerprint")
  source_fp_vendor = source_info.vendor_fingerprint
  target_fp_vendor = target_info.vendor_fingerprint
  # vendor build fingerprints could be possibly blacklisted at build time. For
  # such a case, we consider the vendor images being changed.
  if source_fp_vendor is None or target_fp_vendor is None:
    vendor_updated = True
  else:
    vendor_updated = source_fp_vendor != target_fp_vendor

  AddCompatibilityArchive(system_updated, vendor_updated)
+17 −0
Original line number Diff line number Diff line
@@ -255,6 +255,23 @@ class BuildInfoTest(unittest.TestCase):
    self.assertRaises(common.ExternalError, target_info.GetVendorBuildProp,
                      'ro.build.nonexistent')

  def test_vendor_fingerprint(self):
    target_info = BuildInfo(self.TEST_INFO_DICT, None)
    self.assertEqual('vendor-build-fingerprint',
                     target_info.vendor_fingerprint)

  def test_vendor_fingerprint_blacklisted(self):
    target_info_dict = copy.deepcopy(self.TEST_INFO_DICT_USES_OEM_PROPS)
    del target_info_dict['vendor.build.prop']['ro.vendor.build.fingerprint']
    target_info = BuildInfo(target_info_dict, self.TEST_OEM_DICTS)
    self.assertIsNone(target_info.vendor_fingerprint)

  def test_vendor_fingerprint_without_vendor_build_prop(self):
    target_info_dict = copy.deepcopy(self.TEST_INFO_DICT_USES_OEM_PROPS)
    del target_info_dict['vendor.build.prop']
    target_info = BuildInfo(target_info_dict, self.TEST_OEM_DICTS)
    self.assertIsNone(target_info.vendor_fingerprint)

  def test_WriteMountOemScript(self):
    target_info = BuildInfo(self.TEST_INFO_DICT_USES_OEM_PROPS,
                            self.TEST_OEM_DICTS)