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

Commit bd2dadc2 authored by Doug Zongker's avatar Doug Zongker
Browse files

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 b83d8f15
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,