Loading tools/releasetools/edify_generator.py +23 −14 Original line number Diff line number Diff line Loading @@ -72,24 +72,31 @@ class EdifyGenerator(object): """Assert that the current system build fingerprint is one of *fp.""" if not fp: raise ValueError("must specify some fingerprints") cmd = ('assert(' + ' ||\0'.join([('file_getprop("/system/build.prop", ' cmd = ( ' ||\n '.join([('file_getprop("/system/build.prop", ' '"ro.build.fingerprint") == "%s"') % i for i in fp]) + ');') self.script.append(self._WordWrap(cmd)) ' ||\n abort("Package expects build fingerprint of %s; this ' 'device has " + getprop("ro.build.fingerprint") + ".");' ) % (" or ".join(fp),) self.script.append(cmd) def AssertOlderBuild(self, timestamp): def AssertOlderBuild(self, timestamp, timestamp_text): """Assert that the build on the device is older (or the same as) the given timestamp.""" self.script.append(('assert(!less_than_int(%s, ' 'getprop("ro.build.date.utc")));') % (timestamp,)) self.script.append( ('(!less_than_int(%s, getprop("ro.build.date.utc"))) || ' 'abort("Can\'t install this package (%s) over newer ' 'build (" + getprop("ro.build.date") + ").");' ) % (timestamp, timestamp_text)) def AssertDevice(self, device): """Assert that the device identifier is the given string.""" cmd = ('assert(getprop("ro.product.device") == "%s" ||\0' 'getprop("ro.build.product") == "%s");' % (device, device)) self.script.append(self._WordWrap(cmd)) cmd = ('getprop("ro.product.device") == "%s" || ' 'abort("This package is for \\"%s\\" devices; ' 'this is a \\"" + getprop("ro.product.device") + "\\".");' ) % (device, device) self.script.append(cmd) def AssertSomeBootloader(self, *bootloaders): """Asert that the bootloader version is one of *bootloaders.""" Loading @@ -115,9 +122,10 @@ class EdifyGenerator(object): """Check that the given file (or MTD reference) has one of the given *sha1 hashes, checking the version saved in cache if the file does not match.""" self.script.append('assert(apply_patch_check("%s"' % (filename,) + self.script.append( 'apply_patch_check("%s"' % (filename,) + "".join([', "%s"' % (i,) for i in sha1]) + '));') ') || abort("\\"%s\\" has unexpected contents.");' % (filename,)) def FileCheck(self, filename, *sha1): """Check that the given file (or MTD reference) has one of the Loading @@ -129,7 +137,8 @@ class EdifyGenerator(object): def CacheFreeSpaceCheck(self, amount): """Check that there's at least 'amount' space that can be made available on /cache.""" self.script.append("assert(apply_patch_space(%d));" % (amount,)) self.script.append(('apply_patch_space(%d) || abort("Not enough free space ' 'on /system to apply patches.");') % (amount,)) def Mount(self, mount_point): """Mount the partition with the given mount_point.""" Loading tools/releasetools/ota_from_target_files +2 −1 Original line number Diff line number Diff line Loading @@ -387,7 +387,8 @@ def WriteFullOTAPackage(input_zip, output_zip): if not OPTIONS.omit_prereq: ts = GetBuildProp("ro.build.date.utc", OPTIONS.info_dict) script.AssertOlderBuild(ts) ts_text = GetBuildProp("ro.build.date", OPTIONS.info_dict) script.AssertOlderBuild(ts, ts_text) AppendAssertions(script, OPTIONS.info_dict) device_specific.FullOTA_Assertions() Loading Loading
tools/releasetools/edify_generator.py +23 −14 Original line number Diff line number Diff line Loading @@ -72,24 +72,31 @@ class EdifyGenerator(object): """Assert that the current system build fingerprint is one of *fp.""" if not fp: raise ValueError("must specify some fingerprints") cmd = ('assert(' + ' ||\0'.join([('file_getprop("/system/build.prop", ' cmd = ( ' ||\n '.join([('file_getprop("/system/build.prop", ' '"ro.build.fingerprint") == "%s"') % i for i in fp]) + ');') self.script.append(self._WordWrap(cmd)) ' ||\n abort("Package expects build fingerprint of %s; this ' 'device has " + getprop("ro.build.fingerprint") + ".");' ) % (" or ".join(fp),) self.script.append(cmd) def AssertOlderBuild(self, timestamp): def AssertOlderBuild(self, timestamp, timestamp_text): """Assert that the build on the device is older (or the same as) the given timestamp.""" self.script.append(('assert(!less_than_int(%s, ' 'getprop("ro.build.date.utc")));') % (timestamp,)) self.script.append( ('(!less_than_int(%s, getprop("ro.build.date.utc"))) || ' 'abort("Can\'t install this package (%s) over newer ' 'build (" + getprop("ro.build.date") + ").");' ) % (timestamp, timestamp_text)) def AssertDevice(self, device): """Assert that the device identifier is the given string.""" cmd = ('assert(getprop("ro.product.device") == "%s" ||\0' 'getprop("ro.build.product") == "%s");' % (device, device)) self.script.append(self._WordWrap(cmd)) cmd = ('getprop("ro.product.device") == "%s" || ' 'abort("This package is for \\"%s\\" devices; ' 'this is a \\"" + getprop("ro.product.device") + "\\".");' ) % (device, device) self.script.append(cmd) def AssertSomeBootloader(self, *bootloaders): """Asert that the bootloader version is one of *bootloaders.""" Loading @@ -115,9 +122,10 @@ class EdifyGenerator(object): """Check that the given file (or MTD reference) has one of the given *sha1 hashes, checking the version saved in cache if the file does not match.""" self.script.append('assert(apply_patch_check("%s"' % (filename,) + self.script.append( 'apply_patch_check("%s"' % (filename,) + "".join([', "%s"' % (i,) for i in sha1]) + '));') ') || abort("\\"%s\\" has unexpected contents.");' % (filename,)) def FileCheck(self, filename, *sha1): """Check that the given file (or MTD reference) has one of the Loading @@ -129,7 +137,8 @@ class EdifyGenerator(object): def CacheFreeSpaceCheck(self, amount): """Check that there's at least 'amount' space that can be made available on /cache.""" self.script.append("assert(apply_patch_space(%d));" % (amount,)) self.script.append(('apply_patch_space(%d) || abort("Not enough free space ' 'on /system to apply patches.");') % (amount,)) def Mount(self, mount_point): """Mount the partition with the given mount_point.""" Loading
tools/releasetools/ota_from_target_files +2 −1 Original line number Diff line number Diff line Loading @@ -387,7 +387,8 @@ def WriteFullOTAPackage(input_zip, output_zip): if not OPTIONS.omit_prereq: ts = GetBuildProp("ro.build.date.utc", OPTIONS.info_dict) script.AssertOlderBuild(ts) ts_text = GetBuildProp("ro.build.date", OPTIONS.info_dict) script.AssertOlderBuild(ts, ts_text) AppendAssertions(script, OPTIONS.info_dict) device_specific.FullOTA_Assertions() Loading