How to create a PATCH file for the binary difference output file

蓝咒 提交于 2019-12-21 04:24:07

问题


I want to know how to create a PATCH for the difference file I got by comparing two binary files. $cmp -l > output file name

I checked for text files 'diff" can be used to compare and generate a PATCH file $ diff -u oldFile newFile > mods.diff # -u tells diff to output unified diff format

I want to apply the PATCH on the old binary image file to get my new binary image file.


回答1:


Diff and Patch are designed to work with text files, not arbitrary binary data. You should use something like bsdiff instead.




回答2:


JDIFF is a program that outputs the differences between two (binary) files.
Also you can use therdiff command.




回答3:


If your repository, or package is using git you can make binary diff with git diff --patch --binary old_dir patched_dir Of course you can also use it with commits git diff --patch --binary commit1 commit2




回答4:


If you still want to use diff & patch. Here is a way... Write a c program yourself to insert a newline character at the end of every 512/1024/your_choice bytes (this is just to fool the diff as it compares the files line by line). Run this script on your two input files.

Then run 'diff -au file1 file2 > mod.diff (you will get the patch here)'

Patching is simple 'patch < mod.diff'

Than again write a program to remove the newlines from the binary file. That is all...



来源:https://stackoverflow.com/questions/2415127/how-to-create-a-patch-file-for-the-binary-difference-output-file

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!