-
Notifications
You must be signed in to change notification settings - Fork 25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
JojoDiff 8.0.4 (Sept 2020) changed diff format #16
Comments
After reviewing the code, I didn't see any changes. I emailed Joris and he gave me this data on the updated implementation:
After reading this, the new code makes sense, at the beginning of the file read and the end of the operations the current opcode is set back to ESC. A simple change but it would indeed break parsing. This is just an FYI in case anyone wants to implement this in this version. |
@Mgamerz Thanks for the update. I'm not actively maintaining this at the moment, but if someone reads this and opens a PR without looking at the GPL source I'd be happy to land it. |
This should solve janjongboom#16. Note that this patch was produced without looking at the JojoDiff sourcecode.
I have just created a PR to add support for the latest JojoDiff format. Note that since I discovered both janpatch and JojoDiff today, I have been very careful not to look at any part of the JojoDiff source code, so that there can't be any issue with the licensing. For good measure, I have also updated Btw, I suggest adding a header with the license, author and a link to the project in Thanks again for creating janpatch! |
I implemented the changes of this pull request and ran some tests. Unfortunately I could not find JojoDiff v0.8.4 but I found v0.8.5 which is a successor. Most test files passed patching and provided an 100% identical new-file, but a few of my test files with pseudo random data failed:
The content of the files can be found in janpatch-testfiles.zip. I found that @mykhailo.cherkes has implemented a similar update at uniquwy/janpatch which produced the same output. |
Hi guys, so I took a look at the fix origintaing from @pbatard and ran some tests with real firmware binaries. I ended up having issues in some cases - i.e. with some patch binaries it worked perfectly, however in some cases the Without looking at the source code to respect the GPL license, I adjusted the implementation so that it handles the default ESC-MOD operation described by @Mgamerz. I tested it with various "real-life" firmware binaries successfully (however I haven't run any random or pseudo-random tests yet). My PR #22 contains only the minimum required changes without touching any other part of the code. I excluded further improvements focusing on readability and quality. If this PR gets approved, I will push those improvements if requested. For anyone who is involved: can you please run tests on your ends as well to verify the functionality of the new processing logic to support the (breaking) changes introduced with v0.8.5? Thanks a lot for all of your work and contributions. |
Don't know if this project is still maintained, but as of September 2020 there is an update to jdiff that produces slightly different patch files.
https://sourceforge.net/projects/jojodiff/files/
I write my own implementation of JPatch for C# (however, my project is GPL, so I have no problems with the license) - I am still looking into seeing what's changed, but I think it should be noted that unless the patch code is updated, implementations of jpatch/janpatch may not work with the latest version of jdiff.
The text was updated successfully, but these errors were encountered: