diff options
author | atinm <atinm.dev@gmail.com> | 2011-07-21 18:41:49 -0400 |
---|---|---|
committer | atinm <atinm.dev@gmail.com> | 2011-07-21 18:41:49 -0400 |
commit | 7e70b6be7fdb94d91bfb9d3555add1f852ae8d7b (patch) | |
tree | df1d8a961a543526ae566e121e9b7be346fa5e36 /mtdutils | |
parent | 45df699a5e03676a33afdd84c47a2bcaa6072b82 (diff) | |
download | bootable_recovery-7e70b6be7fdb94d91bfb9d3555add1f852ae8d7b.zip bootable_recovery-7e70b6be7fdb94d91bfb9d3555add1f852ae8d7b.tar.gz bootable_recovery-7e70b6be7fdb94d91bfb9d3555add1f852ae8d7b.tar.bz2 |
Deleted check for equality in flash image header and partition
header.
Skipping flash after just checking a 1K header is
incorrect in the case where something scribbles over
the partition after the header because flash_image
would not be able to rewrite the whole
partition due to this check.
Also, Samsung devices use a combined boot and
recovery image where the header is the same even if the
initramfs changes and these do not get flashed even
if the boot.img is actually different due to different
appended initramfs.
Change-Id: I53ab0a23347cdf1fa7ff58dff37e812fd84645be
Diffstat (limited to 'mtdutils')
-rw-r--r-- | mtdutils/mtdutils.c | 19 |
1 files changed, 0 insertions, 19 deletions
diff --git a/mtdutils/mtdutils.c b/mtdutils/mtdutils.c index c8dbba4..4e259cd 100644 --- a/mtdutils/mtdutils.c +++ b/mtdutils/mtdutils.c @@ -586,8 +586,6 @@ int cmd_mtd_restore_raw_partition(const char *partition_name, const char *filena return -1; } - // If the first part of the file matches the partition, skip writing - int fd = open(filename, O_RDONLY); if (fd < 0) { @@ -603,23 +601,6 @@ int cmd_mtd_restore_raw_partition(const char *partition_name, const char *filena return -1; } - MtdReadContext *in = mtd_read_partition(partition); - if (in == NULL) { - printf("error opening %s: %s\n", partition, strerror(errno)); - // just assume it needs re-writing - } else { - char check[HEADER_SIZE]; - int checklen = mtd_read_data(in, check, sizeof(check)); - if (checklen <= 0) { - printf("error reading %s: %s\n", partition_name, strerror(errno)); - // just assume it needs re-writing - } else if (checklen == headerlen && !memcmp(header, check, headerlen)) { - printf("header is the same, not flashing %s\n", partition_name); - return 0; - } - mtd_read_close(in); - } - // Skip the header (we'll come back to it), write everything else printf("flashing %s from %s\n", partition_name, filename); |