Skip to content

tibbotech/ispe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ISPEditor

ISPBOOOT.BIN file editor good for scripting and automation.

Usage: ./ispe <img> [-v] <cmd> [cmdparams]
        [-v] verbose mode (-vvv.. increase verbosity)
        <cmd> [params] one of the following:
        list - list partitions in the image
        crea - create an empty image
        extb <0xXX> <dlen> - extract <dlen> (dec) bytes at XX offset
        setb <0xXX> <name> - save raw binary file <name> at <0xXX> offset
        head exts - extract header script
        head flag <0xXX> - set image header flag
        head sets <file> - update header script from script image file
        part <name> dele - delete the partition from the image
        part <name> addp - create new partition
        part <name> extp - extract partition to ...
        part <name> file <file> - load data for the partition from the raw file
        part <name> flag <0xXX> - set flag = 0xXX to partition <name>
        part <name> size <0xXX> - set size = 0xXX to partition <name>
        part <name> nand <0xXX> - set NAND offset = 0xXX to partition <name>
        part <name> emmc <0xXX> - set EMMC start block off = 0xXX

EXIT_CODE == 0 on success:

./ispe ./myimage ...
if [ $? -ne 0 ]; then  echo "Failed";
else  echo "OP is done";  fi;

Please, see test0.sh for more examples.

Building

make

for Plus1 (sp70*) SoCs or

make CFLAGS+="-DSOC_SPHE"

Build Requirements:

  • openssl-dev package (libssl, libcrypto + headers)

Runtime Requirements:

  • bash >= 3.0
  • mkimage (u-boot-tools package)

Examples

Generate EMMC ISP script for the existing image

ISPEDIR=. ispe-helpers/genisp.emmc.sh ./ISPBOOOT.BIN ./emmc.txt

Generate NAND ISP script for the existing image

ISPEDIR=. ispe-helpers/genisp.nand.sh ./ISPBOOOT.BIN ./nand.txt

Show ISPBOOOT.BIN data

./ispe ./ISPBOOOT.BIN list

Create new empty image

./ispe ./ISPBOOOT.BIN -vvv crea

Set image header flag

./ispe ./ISPBOOOT.BIN head flag 0x01

0x01 means MTD_ONLY

Add new empty partition

./ispe ./ISPBOOOT.BIN part "part0" addp

Load data to the partition

./ispe ./ISPBOOOT.BIN part "dtb" file ./isp.p.dtb

Extract script

./ispe ./ISPBOOOT.BIN head exts

sript will be dumped into isp.h.script.raw - raw script buffer dump (need to cut last \0 to operate) isp.h.script.txt - attempt to extract clear text

Encode plain text in 'isp.h.script.txt' file to image script

./script_enc.sh ./isp.h.script.txt ./isp.h.script.raw

Attempt to get script RAW image information from 'isp.h.script.raw':

sed 's/\x00*$//' ./isp.h.script.raw > ./isp.h.script.raw.tmp
mkimage -l ./isp.h.script.raw.tmp

Update the header script from script text file:

./ispe-helpers/script_enc.sh "Init ISP Script" ./myscript.txt ./myscript.raw
./ispe ./ISPBOOOT.BIN head sets ./mysript.raw

Extract binary raw data

./ispe ./ISPBOOOT.bin extb 0x100 16

Extracts 16 bytes starting at 0x100 offset into 'isp.b.100.16' file

Set binary raw data

./ispe ./ISPBOOOT.bin setb 0x100 ./isp.b.100.16

Saves the raw file contents from the file 'isp.b.100.16' to the image starting at 0x100 offset. IMG Header is protected.

Hope it helps

Releases

No releases published

Packages

No packages published