diff options
author | Koushik Dutta <koushd@gmail.com> | 2012-06-19 16:51:46 -0700 |
---|---|---|
committer | Ricardo Cerqueira <cyanogenmod@cerqueira.org> | 2012-07-10 23:09:00 +0100 |
commit | 898dd021c941dd1a437f2da8b013f284f01d4c71 (patch) | |
tree | 9581b229194b00bd5006464f39d96f2792d7d909 /mkbootimg | |
parent | f3e86113ceae0e58735ca99754d77b1b9d1a83b5 (diff) | |
download | system_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.c | 13 |
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); |