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

Commit c547a4d5 authored by Ed Heyl's avatar Ed Heyl
Browse files

Please do not merge (already submitted downstream); check entire recovery partition on startup

Checksum the entire recovery partition at boot time to see if we need
to rewrite it, rather than just the first 2kb.

Bug: 5668350
Change-Id: I777754f92e8da630ae3c09bb0d4c41884ff62f39
parent 50d6f97c
Loading
Loading
Loading
Loading
+1 −8
Original line number Diff line number Diff line
@@ -336,13 +336,8 @@ def MakeRecoveryPatch(output_zip, recovery_img, boot_img):
  boot_type, boot_device = common.GetTypeAndDevice("/boot", OPTIONS.info_dict)
  recovery_type, recovery_device = common.GetTypeAndDevice("/recovery", OPTIONS.info_dict)

  # Images with different content will have a different first page, so
  # we check to see if this recovery has already been installed by
  # testing just the first 2k.
  HEADER_SIZE = 2048
  header_sha1 = common.sha1(recovery_img.data[:HEADER_SIZE]).hexdigest()
  sh = """#!/system/bin/sh
if ! applypatch -c %(recovery_type)s:%(recovery_device)s:%(header_size)d:%(header_sha1)s; then
if ! applypatch -c %(recovery_type)s:%(recovery_device)s:%(recovery_size)d:%(recovery_sha1)s; then
  log -t recovery "Installing new recovery image"
  applypatch %(boot_type)s:%(boot_device)s:%(boot_size)d:%(boot_sha1)s %(recovery_type)s:%(recovery_device)s %(recovery_sha1)s %(recovery_size)d %(boot_sha1)s:/system/recovery-from-boot.p
else
@@ -350,8 +345,6 @@ else
fi
""" % { 'boot_size': boot_img.size,
        'boot_sha1': boot_img.sha1,
        'header_size': HEADER_SIZE,
        'header_sha1': header_sha1,
        'recovery_size': recovery_img.size,
        'recovery_sha1': recovery_img.sha1,
        'boot_type': boot_type,