Thread: Kobo Patcher
View Single Post
Old 12-08-2013, 02:18 AM   #580
GeoffR
Wizard
GeoffR ought to be getting tired of karma fortunes by now.GeoffR ought to be getting tired of karma fortunes by now.GeoffR ought to be getting tired of karma fortunes by now.GeoffR ought to be getting tired of karma fortunes by now.GeoffR ought to be getting tired of karma fortunes by now.GeoffR ought to be getting tired of karma fortunes by now.GeoffR ought to be getting tired of karma fortunes by now.GeoffR ought to be getting tired of karma fortunes by now.GeoffR ought to be getting tired of karma fortunes by now.GeoffR ought to be getting tired of karma fortunes by now.GeoffR ought to be getting tired of karma fortunes by now.
 
GeoffR's Avatar
 
Posts: 3,821
Karma: 19162882
Join Date: Nov 2012
Location: Te Riu-a-Māui
Device: Kobo Glo
Quote:
Originally Posted by DNSB View Post
Just to disagree, I checked the output libnickel.so.1.0.0 file and the entry for the footer patch was what is in the kpg.conf file with the terminating } followed by the pair of LFs.

The bytes at 13FA550 (fw 3.1.0) were:

Code:
2A 20 7B 0A 09 68 65 69 67 68 74 3A 20 32 35 70 78 3B 0A 09 66 6F 6E 74 2D 73 69 7A 65 3A 20 32 30 70 78 3B 0A 7D 0A 0A 68 65 69 67 68 74 3A 20
I mean the replacement string is not terminated by a null character. Would the two LF's be enough to tell the CSS interpreter to stop processing the rest of the string? I don't think so, as the original footer string is structured like

ReadingFooter { ... }\n\n ReadingFooter[deviceCodeName="dragon"] { ... }\n\n

which I think means that the first clause is applied to all devices, then the second is read but only applied for AuraHD devices. So if the replacement string was the right length to overwrite the first clause but leave the second intact, and there was no terminating null to end the string, then the second clause from the original string would still be applied to AuraHD devices, possibly overriding the first clause.

Edit: I added code to my own program to test, if I terminate the replacement string with a null then I get binary output that differs from what kpg.exe produces, but if I don't terminate the string then I get output identical to kpg.exe.

Last edited by GeoffR; 12-08-2013 at 02:24 AM. Reason: tested this with my program
GeoffR is offline   Reply With Quote