Add dumpimage, a tool to extract data from U-Boot images
Given a multi-file image created through the mkimage's -d option:
$ mkimage -A x86 -O linux -T multi -n x86 -d vmlinuz:initrd.img:System.map \
multi.img
Image Name: x86
Created: Thu Jul 25 10:29:13 2013
Image Type: Intel x86 Linux Multi-File Image (gzip compressed)
Data Size: 13722956 Bytes = 13401.32 kB = 13.09 MB
Load Address: 00000000
Entry Point: 00000000
Contents:
Image 0: 4040128 Bytes = 3945.44 kB = 3.85 MB
Image 1: 7991719 Bytes = 7804.41 kB = 7.62 MB
Image 2: 1691092 Bytes = 1651.46 kB = 1.61 MB
It is possible to perform the innverse operation -- extracting any file from
the image -- by using the dumpimage's -i option:
$ dumpimage -i multi.img -p 2 System.map
Although it's feasible to retrieve "data files" from image through scripting,
the requirement to embed tools such 'dd', 'awk' and 'sed' for this sole purpose
is cumbersome and unreliable -- once you must keep track of file sizes inside
the image. Furthermore, extracting data files using "dumpimage" tool is faster
than through scripting.
Signed-off-by: Guilherme Maciel Ferreira <guilherme.maciel.ferreira@gmail.com>
Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
committed by
Tom Rini
parent
f86ed6a8d5
commit
a804b5ce2d
@@ -34,7 +34,9 @@ struct image_tool_params {
|
||||
int dflag;
|
||||
int eflag;
|
||||
int fflag;
|
||||
int iflag;
|
||||
int lflag;
|
||||
int pflag;
|
||||
int vflag;
|
||||
int xflag;
|
||||
int skipcpy;
|
||||
@@ -50,6 +52,7 @@ struct image_tool_params {
|
||||
char *datafile;
|
||||
char *imagefile;
|
||||
char *cmdname;
|
||||
const char *outfile; /* Output filename */
|
||||
const char *keydir; /* Directory holding private keys */
|
||||
const char *keydest; /* Destination .dtb for public key */
|
||||
const char *comment; /* Comment to add to signature node */
|
||||
@@ -96,6 +99,15 @@ struct image_type_params {
|
||||
*/
|
||||
void (*set_header) (void *, struct stat *, int,
|
||||
struct image_tool_params *);
|
||||
/*
|
||||
* This function is used by the command to retrieve a data file from
|
||||
* the image (i.e. dumpimage -i <image> -p <position> <data_file>).
|
||||
* Thus the code to extract a file from an image must be put here.
|
||||
*
|
||||
* Returns 0 if the file was successfully retrieved from the image,
|
||||
* or a negative value on error.
|
||||
*/
|
||||
int (*extract_datafile) (void *, struct image_tool_params *);
|
||||
/*
|
||||
* Some image generation support for ex (default image type) supports
|
||||
* more than one type_ids, this callback function is used to check
|
||||
|
||||
Reference in New Issue
Block a user