Re: Subaru ROM patching for logging
Posted: Mon Apr 26, 2010 8:26 am
How the patching works depends on the patch. In the case of the Subaru CAN logging patch, the patching code finds and matches an entire function related to logging in a way that is independent of where the function is located as well as all of the RAM variables it uses. If the entire function matches, it is confident it can replace it with the new function I wrote, re-using the same RAM areas. If the patch doesn't show up, no match was made and the patch is not possible. In the un-patchable cases I have seen, the function is radically different and much smaller, so I would need to write a different patch and relocate the patch code somewhere outside of the function.
I am working on a python-based patching language that will be hosted inside of EcuFlash. This will allow other people to contribute patches as well. The quality and accuracy of the patches will only be as good as the author makes them.
I am working on a python-based patching language that will be hosted inside of EcuFlash. This will allow other people to contribute patches as well. The quality and accuracy of the patches will only be as good as the author makes them.
mgv101 wrote:So how exactly does the patching work?
Does EcuFlash simply carries a broad set of instructions to study and determine whether the ROM loaded could be patched and build its own patch if it is able to. Or is each patch specific to a list of ROM and if the ROM's ID is not in the pre-specified list where a specific patch had been made available, EcuFlash will not give you a patch option.
I also am unable to see a patch option for my ROM too and is interested in finding out what determines a ROM could be patched or not.
Thank you for all the great work so far!