Loading tools/releasetools/ota_from_target_files.py +19 −5 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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) Loading tools/releasetools/test_ota_from_target_files.py +17 −0 Original line number Diff line number Diff line Loading @@ -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) Loading Loading
tools/releasetools/ota_from_target_files.py +19 −5 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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) Loading
tools/releasetools/test_ota_from_target_files.py +17 −0 Original line number Diff line number Diff line Loading @@ -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) Loading