diff options
author | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2020-01-08 23:48:51 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2020-01-08 23:48:51 +0000 |
commit | 5e77ec64b0f404c491ebbae8b088a34ea822f31e (patch) | |
tree | ba8dde5cc2f6bf52d78f62cdeef4ffea031fb65d | |
parent | 1015bb83867fd69693a270643d26e0a671f9ed62 (diff) | |
parent | 48b87d437ae105df2aaf964748509e16af56b4b6 (diff) | |
download | mkbootimg-5e77ec64b0f404c491ebbae8b088a34ea822f31e.tar.gz |
unpack_bootimg: Don't print trailing NULL characters am: f91a156535 am: 145c4c07ec am: 48b87d437a
Change-Id: I586c57cb515f66a7e0ae00b2b44dff0d2693fa86
-rwxr-xr-x | unpack_bootimg.py | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/unpack_bootimg.py b/unpack_bootimg.py index 9c4d95c..5d52646 100755 --- a/unpack_bootimg.py +++ b/unpack_bootimg.py @@ -43,6 +43,11 @@ def get_number_of_pages(image_size, page_size): return (image_size + page_size - 1) // page_size +def cstr(s): + """Remove first NULL character and any character beyond.""" + return s.split('\0', 1)[0] + + def format_os_version(os_version): a = os_version >> 14 b = os_version >> 7 & ((1<<7) - 1) @@ -86,19 +91,20 @@ def unpack_bootimage(args): print('boot image header version: %s' % version) if version < 3: - product_name = unpack('16s', args.boot_img.read(16))[0].decode() + product_name = cstr(unpack('16s', args.boot_img.read(16))[0].decode()) print('product name: %s' % product_name) - cmdline = unpack('512s', args.boot_img.read(512))[0].decode() + cmdline = cstr(unpack('512s', args.boot_img.read(512))[0].decode()) print('command line args: %s' % cmdline) else: - cmdline = unpack('1536s', args.boot_img.read(1536))[0].decode() + cmdline = cstr(unpack('1536s', args.boot_img.read(1536))[0].decode()) print('command line args: %s' % cmdline) if version < 3: args.boot_img.read(32) # ignore SHA if version < 3: - extra_cmdline = unpack('1024s', args.boot_img.read(1024))[0].decode() + extra_cmdline = cstr(unpack('1024s', + args.boot_img.read(1024))[0].decode()) print('additional command line args: %s' % extra_cmdline) if version < 3: @@ -173,13 +179,13 @@ def unpack_vendor_bootimage(args): print('ramdisk load address: %#x' % kernel_ramdisk_info[3]) print('vendor ramdisk size: %s' % kernel_ramdisk_info[4]) - cmdline = unpack('2048s', args.boot_img.read(2048))[0].decode() + cmdline = cstr(unpack('2048s', args.boot_img.read(2048))[0].decode()) print('vendor command line args: %s' % cmdline) tags_load_address = unpack('I', args.boot_img.read(1 * 4))[0] print('kernel tags load address: %#x' % tags_load_address) - product_name = unpack('16s', args.boot_img.read(16))[0].decode() + product_name = cstr(unpack('16s', args.boot_img.read(16))[0].decode()) print('product name: %s' % product_name) dtb_size = unpack('2I', args.boot_img.read(2 * 4))[1] |