aboutsummaryrefslogtreecommitdiffstats
path: root/mkbootimg
diff options
context:
space:
mode:
authorKoushik Dutta <koushd@gmail.com>2012-06-19 16:51:46 -0700
committerRicardo Cerqueira <cyanogenmod@cerqueira.org>2012-07-10 23:09:00 +0100
commit898dd021c941dd1a437f2da8b013f284f01d4c71 (patch)
tree9581b229194b00bd5006464f39d96f2792d7d909 /mkbootimg
parentf3e86113ceae0e58735ca99754d77b1b9d1a83b5 (diff)
downloadsystem_core-898dd021c941dd1a437f2da8b013f284f01d4c71.zip
system_core-898dd021c941dd1a437f2da8b013f284f01d4c71.tar.gz
system_core-898dd021c941dd1a437f2da8b013f284f01d4c71.tar.bz2
Update unpackbootimg to verify the Android boot image magic value. It will also search the first 512 bytes for padding.
Change-Id: I490cba05f2bb616a3f64e3271ecaa61eb9e64be8
Diffstat (limited to 'mkbootimg')
-rw-r--r--mkbootimg/unpackbootimg.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/mkbootimg/unpackbootimg.c b/mkbootimg/unpackbootimg.c
index 6e60718..ff6b046 100644
--- a/mkbootimg/unpackbootimg.c
+++ b/mkbootimg/unpackbootimg.c
@@ -80,6 +80,19 @@ int main(int argc, char** argv)
boot_img_hdr header;
//printf("Reading header...\n");
+ int i;
+ for (i = 0; i < 512; i++) {
+ fread(tmp, BOOT_MAGIC_SIZE, 1, f);
+ if (memcmp(tmp, BOOT_MAGIC, BOOT_MAGIC_SIZE) == 0)
+ break;
+ }
+ total_read = i;
+ fread(tmp, BOOT_MAGIC_SIZE, 1, f);
+ if (memcmp(tmp, BOOT_MAGIC, BOOT_MAGIC_SIZE) == 0) {
+ printf("Android boot magic not found.\n");
+ return 1;
+ }
+
fread(&header, sizeof(header), 1, f);
printf("BOARD_KERNEL_CMDLINE %s\n", header.cmdline);
printf("BOARD_KERNEL_BASE %08x\n", header.kernel_addr - 0x00008000);