Giter Club home page Giter Club logo

ispe's Introduction

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

ispe's People

Contributors

dmitrydvorkin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

galaxy4public

ispe's Issues

Неверный размер разделов

https://drive.google.com/file/d/1Zx1yTYIkMa6r7joTX6SVAvB0NE9Q021N/view?usp=sharing
dbg1: Verbose mode3 dbg1: IMG: ./ISPBOOOT 2.BIN dbg1: CMD list dbg1: Rhdr R 16384 bytes at 0x100000 HEADER 0x100000 : sign (str,32/32): Gemini_ISP_image sign (hex,32/32): 47656D696E695F4953505F696D6167650000000000000000 init script (str,16/1976): if test "$isp_if<skipped...> init script size: 1311 init script (str,80/2048): 'V�ar�b�j� ' (a4� Init ISP script if test "$isp_ flags: 0x1 PARTITION[0] filename: xboot1 md5sum: 01f31ade0b38ad8386eea4dc1140bbfc file offset: 0x104000 file size: 34816 part start addr: 0x100000 part size: 5 flags: 0x0 emmc part start block: 0x0 PARTITION[1] filename: uboot1 md5sum: 0e18d55b81d5b0be2c2fe2d43e5ba476 file offset: 0x10C800 file size: 573440 part start addr: 0x100000 part size: 5 flags: 0x0 emmc part start block: 0x0 PARTITION[2] filename: uboot2 md5sum: 0e18d55b81d5b0be2c2fe2d43e5ba476 file offset: 0x198800 file size: 573440 part start addr: 0x100000 part size: 3 flags: 0x0 emmc part start block: 0x0 PARTITION[3] filename: env md5sum: d41d8cd98f00b204e9800998ecf8427e file offset: 0x224800 file size: 0 part start addr: 0x80000 part size: 0 flags: 0x0 emmc part start block: 0x0 PARTITION[4] filename: env_redund md5sum: d41d8cd98f00b204e9800998ecf8427e file offset: 0x224800 file size: 2251799813685248 part start addr: 0x80000 part size: 0 flags: 0x0 emmc part start block: 0x0 PARTITION[5] filename: ecos md5sum: a91e07493e536d97927a60d72db0966f file offset: 0x224800 file size: 4503599632296960 part start addr: 0x800000 part size: 0 flags: 0x0 emmc part start block: 0x0 PARTITION[6] filename: kernel md5sum: e1939383c094c92190238f2f1b3aea65 file offset: 0x6D7400 file size: 40532396648518656 part start addr: 0x600000 part size: 0 flags: 0x0 emmc part start block: 0x0 PARTITION[7] filename: rootfs md5sum: 729395453f2e74748dc210e88ab07ec0 file offset: 0x8EC800 file size: 67553994415243264 part start addr: 0x5A0000 part size: 0 flags: 0x0 emmc part start block: 0x0 PARTITION[8] filename: spsdk md5sum: 9e5b7fd2357afadab71b0637823c5018 file offset: 0xD64800 file size: 92886742361640960 part start addr: 0x34E0000 part size: 0 flags: 0x0 emmc part start block: 0x0 PARTITION[9] filename: spapp md5sum: 7b6fdde233762cb39a0eb84fa397adf1 file offset: 0x3A55800 file size: 331014572627361792 part start addr: 0x1400000 part size: 0 flags: 0x0 emmc part start block: 0x0 PARTITION[10] filename: nvm md5sum: d41d8cd98f00b204e9800998ecf8427e file offset: 0x493D800 file size: 421086565159141376 part start addr: 0x1000000 part size: 0 flags: 0x0 emmc part start block: 0x0 PARTITION[11] filename: pq md5sum: b21ad977e87a2bb6a504317599ef3992 file offset: 0x493D800 file size: 493144159197104128 part start addr: 0x20000 part size: 0 flags: 0x0 emmc part start block: 0x0 PARTITION[12] filename: logo md5sum: 38ff0484b8835ef5553f30a429c423f3 file offset: 0x4946000 file size: 493707109152027648 part start addr: 0x400000 part size: 0 flags: 0x0 emmc part start block: 0x0 PARTITION[13] filename: tcon md5sum: 2b816f882583316b49e98120457dd91b file offset: 0x4ABD400 file size: 511721507660018688 part start addr: 0x20000 part size: 0 flags: 0x0 emmc part start block: 0x0 PARTITION[14] filename: iop_car md5sum: e2f6dcdaf95bd75af26b54c3c1fa48ea file offset: 0x4AC8800 file size: 512284457613405184 part start addr: 0x200000 part size: 0 flags: 0x0 emmc part start block: 0x0 PARTITION[15] filename: runtime_cfg md5sum: 006fa5f0d1e8f6cba5e6559e2f1cb0e1 file offset: 0x4ACB400 file size: 521291656868143104 part start addr: 0x100000 part size: 0 flags: 0x0 emmc part start block: 0x0 PARTITION[16] filename: vi md5sum: eb8ea58af22172a1c9160078bb7600b6 file offset: 0x4ACD400 file size: 525795256495506432 part start addr: 0x20000 part size: 0 flags: 0x0 emmc part start block: 0x0 PARTITION[17] filename: isp_logo md5sum: 18cffb56b85e96faafeb2eeff83dc4f1 file offset: 0x4ACD800 file size: 526358206453535744 part start addr: 0x500000 part size: 0 flags: 0x0 emmc part start block: 0x0 PARTITION[18] filename: vendordata md5sum: f582c5363bc03bf7d9520880db1aac36 file offset: 0x4F32C00 file size: 548876204585782272 part start addr: 0x40000 part size: 0 flags: 0x0 emmc part start block: 0x0 PARTITION[19] filename: pat_logo md5sum: 8c89f7704ad118fdceee60f5242825ac file offset: 0x4F33800 file size: 550002104504910848 part start addr: 0xD00000 part size: 0 flags: 0x0 emmc part start block: 0x0 PARTITION[20] filename: version_info md5sum: c95418566772803ce8070de25c5b48eb file offset: 0x5AEBC00 file size: 608548899648439296 part start addr: 0x20000 part size: 0 flags: 0x0 emmc part start block: 0x0 PARTITION[21] filename: vd_restore md5sum: f582c5363bc03bf7d9520880db1aac36 file offset: 0x5AEC000 file size: 609111849601862656 part start addr: 0x40000 part size: 0 flags: 0x0 emmc part start block: 0x0 PARTITION[22] filename: anm_logo md5sum: d41d8cd98f00b204e9800998ecf8427e file offset: 0x5AECC00 file size: 610237749508702208 part start addr: 0x540000 part size: 0 flags: 0x0 emmc part start block: 0x0 PARTITION[23] filename: setting md5sum: 135dce33af0f2bb6c8426c0d95cc23f0 file offset: 0x5AECC00 file size: 633881647552405504 part start addr: 0x200000 part size: 0 flags: 0x0 emmc part start block: 0x0 PARTITION[24] filename: resource md5sum: c5afcfa8a2c3c27baaa936cb6b14d59f file offset: 0x5AEEC00 file size: 642888846812532736 part start addr: 0xF00000 part size: 0 flags: 0x0 emmc part start block: 0x0 PARTITION[25] filename: readOnlyData md5sum: 7911ff4bee700890f79c90318c4d6857 file offset: 0x6013C00 file size: 710442841218031616 part start addr: 0x400000 part size: 0 flags: 0x0 emmc part start block: 0x0 PARTITION[26] filename: theme md5sum: ef24b6cd3e663fe63abb0737b01f48d1 file offset: 0x6065C00 file size: 728457239727845376 part start addr: 0xA00000 part size: 0 flags: 0x0 emmc part start block: 0x0 PARTITION[27] filename: accessory md5sum: 83d0dff9660551c1e8bbb3bfa443ed8b file offset: 0x6108C00 file size: 773493236001148928 part start addr: 0x100000 part size: 0 flags: 0x0 emmc part start block: 0x0 Last part EOF: 0xABC000006149C00 Image EOF: 0x6161400 Tail data len: -773493236000786432

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.