1 Star 15 Fork 27

eming / make_udiff

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

功能说明:

  • 使用bsdiff库对输入的老固件和新固件进行差分计算,然后生成中间文件diff_raw.bin.

  • 使用lzma库对中间文件进行压缩,然后按照bsdiff库的规范添加文件头.

  • 参考mkimage的规范添加文件头,并额外增加了老固件的CRC校验值字段,最终生成udiff文件.

命令参考:

make_udiff -o old.bin -n new.bin -p udiff.bin

  • 命令参数说明:
  -A, --arch     set architecture to 'arch' (string [=arm])
  -O, --os       set operating system to 'os' (string [=rtos])
  -a, --addr     set load address to 'addr' (hex) (string [=0x0])
  -e, --ep       set entry point to 'ep' (hex) (string [=0x0])
  -o, --old      input old file name (string)
  -n, --new      input new file name (string)
  -p, --patch    output patch file name (string)
  -?, --help     print this message

image头说明:

typedef struct image_header
{
    uint32_t ih_magic; /* Image Header Magic Number */
    uint32_t ih_hcrc;  /* Image Header CRC Checksum */
    uint32_t ih_time;  /* Image Creation Timestamp */
    uint32_t ih_size;  /* Image Data Size */
    uint32_t ih_load;  /* Data Load Address */
    uint32_t ih_ep;    /* Entry Point Address */
    uint32_t ih_dcrc;  /* Image Data CRC Checksum */
    uint8_t  ih_os;    /* Operating System */
    uint8_t  ih_arch;  /* CPU architecture */
    uint8_t  ih_type;  /* Image Type */
    uint8_t  ih_comp;  /* Compression Type */
    uint8_t  ih_name[28]; /* Image Name */
    uint32_t ih_ocrc;  /* Old Image Data CRC Checksum */  
} image_header_t;
  • 其中ih_ocrc即为增加的新字段,用于IAP程序校验本补丁包是否适用于当前固件.
  • 其中ih_type值固定为8.
  • 其中ih_comp值固定为3.

空文件

简介

生成差分补丁 展开 收起
C 等 5 种语言
取消

发行版 (1)

全部

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/eming/make_udiff.git
git@gitee.com:eming/make_udiff.git
eming
make_udiff
make_udiff
master

搜索帮助