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
This commit is contained in:
parent
b83d8f15cc
commit
bd2dadc21a
1 changed files with 1 additions and 8 deletions
|
@ -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,
|
||||
|
|
Loading…
Reference in a new issue