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

Commit aecbda7f authored by Tao Bao's avatar Tao Bao
Browse files

resolved conflicts for merge of 22311914 to master

Change-Id: I8684191fa3efea0ed546bbad076f8760a13c5c81
parents 13f2eff6 22311914
Loading
Loading
Loading
Loading
+14 −9
Original line number Diff line number Diff line
@@ -1069,17 +1069,25 @@ class BlockDifference:
        script.AppendExtra('if range_sha1("%s", "%s") == "%s" then' %
                            (self.device, self.src.care_map.to_string_raw(),
                            self.src.TotalSha1()))
      script.Print("Verified %s image..." % (partition,))
      script.Print('Verified %s image...' % (partition,))
      script.AppendExtra('else');

      # When generating incrementals for the system and vendor partitions,
      # explicitly check the first block (which contains the superblock) of
      # the partition to see if it's what we expect. If this check fails,
      # give an explicit log message about the partition having been
      # remounted R/W (the most likely explanation) and the need to flash to
      # get OTAs working again.
      if self.check_first_block:
        self._CheckFirstBlock(script)

      script.AppendExtra(('(range_sha1("%s", "%s") == "%s") ||\n'
                          '  abort("%s partition has unexpected contents");\n'
                          'endif;') %
                         (self.device, self.tgt.care_map.to_string_raw(),
                          self.tgt.TotalSha1(), self.partition))
      # Abort the OTA update. Note that the incremental OTA cannot be applied
      # even if it may match the checksum of the target partition.
      # a) If version < 3, operations like move and erase will make changes
      #    unconditionally and damage the partition.
      # b) If version >= 3, it won't even reach here.
      script.AppendExtra(('abort("%s partition has unexpected contents");\n'
                          'endif;') % (partition,))

  def _WriteUpdate(self, script, output_zip):
    partition = self.partition
@@ -1109,14 +1117,11 @@ class BlockDifference:
  def _CheckFirstBlock(self, script):
    r = RangeSet((0, 1))
    srchash = self._HashBlocks(self.src, r);
    tgthash = self._HashBlocks(self.tgt, r);

    script.AppendExtra(('(range_sha1("%s", "%s") == "%s") || '
                        '(range_sha1("%s", "%s") == "%s") || '
                        'abort("%s has been remounted R/W; '
                        'reflash device to reenable OTA updates");')
                       % (self.device, r.to_string_raw(), srchash,
                          self.device, r.to_string_raw(), tgthash,
                          self.device))

DataImage = blockimgdiff.DataImage