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

Commit 34354032 authored by Hongguang Chen's avatar Hongguang Chen
Browse files

Skip _oem_props if oem_dicts is None.

The oem_dicts in BuildInfo is only available to ota_from_target_files
when it's called with "--oem_settings" input. However, aosp/1135332
starts to use BuildInfo in add_img_to_target_files w/o oem_dicts. An
assert is triggered due to it when oem_fingerprint_properties is in the
info_dict.
This change skips _oem_props reading if oem_dicts is None to allow this
case.

BUG: 155360923
BUG: 154171021
Test: Sign images with oem_fingerprint_properties.
Change-Id: I6a73feecd9567fd4d85f4eab3d4e11c5df28fe39
Merged-In: Idfd41c8b20b23d50e4895f24500f9a25625b7d98
parent c3b0b52e
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -360,10 +360,13 @@ class BuildInfo(object):
    self.oem_dicts = oem_dicts

    self._is_ab = info_dict.get("ab_update") == "true"
    self._oem_props = info_dict.get("oem_fingerprint_properties")

    if self._oem_props:
      assert oem_dicts, "OEM source required for this build"
    # Skip _oem_props if oem_dicts is None to use BuildInfo in
    # sign_target_files_apks
    if self.oem_dicts:
      self._oem_props = info_dict.get("oem_fingerprint_properties")
    else:
      self._oem_props = None

    def check_fingerprint(fingerprint):
      if (" " in fingerprint or any(ord(ch) > 127 for ch in fingerprint)):
+0 −4
Original line number Diff line number Diff line
@@ -175,10 +175,6 @@ class BuildInfoTest(test_utils.ReleaseToolsTestCase):
    self.assertEqual('brand3/product-name/device3:build-thumbprint',
                     target_info.fingerprint)

    # Missing oem_dict should be rejected.
    self.assertRaises(AssertionError, common.BuildInfo,
                      self.TEST_INFO_DICT_USES_OEM_PROPS, None)

  def test_init_badFingerprint(self):
    info_dict = copy.deepcopy(self.TEST_INFO_DICT)
    info_dict['build.prop']['ro.build.fingerprint'] = 'bad fingerprint'