kobopatch cfae583
https://github.com/geek1011/kobopatch
KoboPatch::LoadConfig
reading config file from *os.File
unmarshaling yaml
| {
| "Version": "4.18.13737",
| "In": "src/kobo-update-4.18.13737.zip",
| "Out": "out/KoboRoot.tgz",
| "Log": "out/log.txt",
| "PatchFormat": "kobopatch",
| "Patches": {
| "src/libadobe.so.yaml": "usr/local/Kobo/libadobe.so",
| "src/libnickel.so.1.0.0.yaml": "usr/local/Kobo/libnickel.so.1.0.0",
| "src/librmsdk.so.1.0.0.yaml": "usr/local/Kobo/librmsdk.so.1.0.0",
| "src/nickel.yaml": "usr/local/Kobo/nickel"
| },
| "Overrides": {
| "src/libadobe.so.yaml": null,
| "src/libnickel.so.1.0.0.yaml": null,
| "src/librmsdk.so.1.0.0.yaml": null,
| "src/nickel.yaml": null
| },
| "Lrelease": "",
| "Translations": null,
| "Files": null
| }
KoboPatch::OutputInit
KoboPatch::ApplyPatches
KoboPatch::openIn
Opening firmware zip 'src/kobo-update-4.18.13737.zip'
Looking for KoboRoot.tgz in zip
--> found KoboRoot.tgz
--> opening KoboRoot.tgz
Opening gzip reader
Creating tar reader
patching entry name:'./usr/local/Kobo/libnickel.so.1.0.0' size:17688356 mode:'509' typeflag:'48' with files: src/libnickel.so.1.0.0.yaml
reading entry contents
loading patch file 'src/libnickel.so.1.0.0.yaml' (detected format kobopatch)
| parsing patch file: unmarshaling to map[string]yaml.Node
| parsing patch file: converting to map[string]*parsedPatch
| unmarshaling patch "Change Browse Kobo home screen link target - Articles" to PatchNode ([]yaml.Node)
| converting to []InstructionNode (map[string]yaml.Node)
| converting to *parsedPatch
| unmarshaling instruction 1 to Instruction
| converting to SingleInstruction...
| type=kobopatch.Enabled
| unmarshaling instruction 2 to Instruction
| converting to SingleInstruction...
| type=kobopatch.PatchGroup
| unmarshaling instruction 3 to Instruction
| converting to SingleInstruction...
| type=kobopatch.Description
| unmarshaling instruction 4 to Instruction
| converting to SingleInstruction...
| type=kobopatch.ReplaceBytes
| converting to PatchableInstruction
| unmarshaling instruction 5 to Instruction
| converting to SingleInstruction...
| type=kobopatch.ReplaceBLX
| converting to PatchableInstruction
| unmarshaling patch "Un-force link decoration in KePubs" to PatchNode ([]yaml.Node)
| converting to []InstructionNode (map[string]yaml.Node)
| converting to *parsedPatch
| unmarshaling instruction 1 to Instruction
| converting to SingleInstruction...
| type=kobopatch.Enabled
| unmarshaling instruction 2 to Instruction
| converting to SingleInstruction...
| type=kobopatch.Description
| unmarshaling instruction 3 to Instruction
| converting to SingleInstruction...
| type=kobopatch.FindBaseAddressString
| converting to PatchableInstruction
| unmarshaling instruction 4 to Instruction
| converting to SingleInstruction...
| type=kobopatch.ReplaceString
| converting to PatchableInstruction
| unmarshaling instruction 5 to Instruction
| converting to SingleInstruction...
| type=kobopatch.ReplaceString
| converting to PatchableInstruction
| unmarshaling patch "Don't uppercase header/footer text and change page number text" to PatchNode ([]yaml.Node)
| converting to []InstructionNode (map[string]yaml.Node)
| converting to *parsedPatch
| unmarshaling instruction 1 to Instruction
| converting to SingleInstruction...
| type=kobopatch.Enabled
| unmarshaling instruction 2 to Instruction
| converting to SingleInstruction...
| type=kobopatch.Description
| unmarshaling instruction 3 to Instruction
| converting to SingleInstruction...
| type=kobopatch.PatchGroup
| unmarshaling instruction 4 to Instruction
| converting to SingleInstruction...
| type=kobopatch.ReplaceBLX
| converting to PatchableInstruction
| unmarshaling instruction 5 to Instruction
| converting to SingleInstruction...
| type=kobopatch.ReplaceBLX
| converting to PatchableInstruction
| unmarshaling instruction 6 to Instruction
| converting to SingleInstruction...
| type=kobopatch.FindReplaceString
| converting to PatchableInstruction
| unmarshaling patch "Disable all tutorial dialogs" to PatchNode ([]yaml.Node)
| converting to []InstructionNode (map[string]yaml.Node)
| converting to *parsedPatch
| unmarshaling instruction 1 to Instruction
| converting to SingleInstruction...
| type=kobopatch.Enabled
| unmarshaling instruction 2 to Instruction
| converting to SingleInstruction...
| type=kobopatch.Description
| unmarshaling instruction 3 to Instruction
| converting to SingleInstruction...
| type=kobopatch.ReplaceBytesAtSymbol
| converting to PatchableInstruction
| unmarshaling instruction 4 to Instruction
| converting to SingleInstruction...
| type=kobopatch.ReplaceBytesAtSymbol
| converting to PatchableInstruction
| unmarshaling instruction 5 to Instruction
| converting to SingleInstruction...
| type=kobopatch.ReplaceBytesAtSymbol
| converting to PatchableInstruction
| unmarshaling instruction 6 to Instruction
| converting to SingleInstruction...
| type=kobopatch.ReplaceBytesAtSymbol
| converting to PatchableInstruction
| unmarshaling instruction 7 to Instruction
| converting to SingleInstruction...
| type=kobopatch.ReplaceBytesAtSymbol
| converting to PatchableInstruction
| unmarshaling instruction 8 to Instruction
| converting to SingleInstruction...
| type=kobopatch.ReplaceBytesAtSymbol
| converting to PatchableInstruction
| unmarshaling instruction 9 to Instruction
| converting to SingleInstruction...
| type=kobopatch.ReplaceBytesAtSymbol
| converting to PatchableInstruction
| unmarshaling instruction 10 to Instruction
| converting to SingleInstruction...
| type=kobopatch.ReplaceBytesAtSymbol
| converting to PatchableInstruction
| unmarshaling instruction 11 to Instruction
| converting to SingleInstruction...
| type=kobopatch.ReplaceBytesAtSymbol
| converting to PatchableInstruction
| unmarshaling instruction 12 to Instruction
| converting to SingleInstruction...
| type=kobopatch.ReplaceBytesAtSymbol
| converting to PatchableInstruction
| unmarshaling instruction 13 to Instruction
| converting to SingleInstruction...
| type=kobopatch.ReplaceBytesAtSymbol
| converting to PatchableInstruction
| unmarshaling instruction 14 to Instruction
| converting to SingleInstruction...
| type=kobopatch.ReplaceBytesAtSymbol
| converting to PatchableInstruction
| unmarshaling instruction 15 to Instruction
| converting to SingleInstruction...
| type=kobopatch.ReplaceBytesAtSymbol
| converting to PatchableInstruction
| unmarshaling instruction 16 to Instruction
| converting to SingleInstruction...
| type=kobopatch.ReplaceBytesAtSymbol
| converting to PatchableInstruction
| unmarshaling instruction 17 to Instruction
| converting to SingleInstruction...
| type=kobopatch.ReplaceBytesAtSymbol
| converting to PatchableInstruction
| unmarshaling instruction 18 to Instruction
| converting to SingleInstruction...
| type=kobopatch.ReplaceBytesAtSymbol
| converting to PatchableInstruction
| unmarshaling instruction 19 to Instruction
| converting to SingleInstruction...
| type=kobopatch.ReplaceBytesAtSymbol
| converting to PatchableInstruction
| unmarshaling instruction 20 to Instruction
| converting to SingleInstruction...
| type=kobopatch.ReplaceBytesAtSymbol
| converting to PatchableInstruction
| unmarshaling instruction 21 to Instruction
| converting to SingleInstruction...
| type=kobopatch.ReplaceBytesAtSymbol
| converting to PatchableInstruction
| unmarshaling instruction 22 to Instruction
| converting to SingleInstruction...
| type=kobopatch.ReplaceBytesAtSymbol
| converting to PatchableInstruction
| unmarshaling instruction 23 to Instruction
| converting to SingleInstruction...
| type=kobopatch.ReplaceBytesAtSymbol
| converting to PatchableInstruction
| unmarshaling patch "Only show stats SmartLink" to PatchNode ([]yaml.Node)
| converting to []InstructionNode (map[string]yaml.Node)
| converting to *parsedPatch
| unmarshaling instruction 1 to Instruction
| converting to SingleInstruction...
| type=kobopatch.Enabled
| unmarshaling instruction 2 to Instruction
| converting to SingleInstruction...
| type=kobopatch.PatchGroup
| unmarshaling instruction 3 to Instruction
| converting to SingleInstruction...
| type=kobopatch.Description
| unmarshaling instruction 4 to Instruction
| converting to SingleInstruction...
| type=kobopatch.ReplaceBytes
| converting to PatchableInstruction
| unmarshaling patch "Hide top-left menu item - Wishlist" to PatchNode ([]yaml.Node)
| converting to []InstructionNode (map[string]yaml.Node)
| converting to *parsedPatch
| unmarshaling instruction 1 to Instruction
| converting to SingleInstruction...
| type=kobopatch.Enabled
| unmarshaling instruction 2 to Instruction
| converting to SingleInstruction...
| type=kobopatch.Description
| unmarshaling instruction 3 to Instruction
| converting to SingleInstruction...
| type=kobopatch.FindBaseAddressSymbol
| converting to PatchableInstruction
| unmarshaling instruction 4 to Instruction
| converting to SingleInstruction...
| type=kobopatch.ReplaceBytes
| converting to PatchableInstruction
| unmarshaling instruction 5 to Instruction
| converting to SingleInstruction...
| type=kobopatch.ReplaceBytes
| converting to PatchableInstruction
| unmarshaling instruction 6 to Instruction
| converting to SingleInstruction...
| type=kobopatch.ReplaceBytes
| converting to PatchableInstruction
| unmarshaling instruction 7 to Instruction
| converting to SingleInstruction...
| type=kobopatch.ReplaceBytes
| converting to PatchableInstruction
| unmarshaling patch "Hide top-left menu item - Activity" to PatchNode ([]yaml.Node)
| converting to []InstructionNode (map[string]yaml.Node)
| converting to *parsedPatch
| unmarshaling instruction 1 to Instruction
| converting to SingleInstruction...
| type=kobopatch.Enabled
| unmarshaling instruction 2 to Instruction
| converting to SingleInstruction...
| type=kobopatch.Description
| unmarshaling instruction 3 to Instruction
| converting to SingleInstruction...
| type=kobopatch.FindBaseAddressSymbol
| converting to PatchableInstruction
| unmarshaling instruction 4 to Instruction
| converting to SingleInstruction...
| type=kobopatch.ReplaceBytes
| converting to PatchableInstruction
| unmarshaling instruction 5 to Instruction
| converting to SingleInstruction...
| type=kobopatch.ReplaceBytes
| converting to PatchableInstruction
| unmarshaling instruction 6 to Instruction
| converting to SingleInstruction...
| type=kobopatch.ReplaceBytes
| converting to PatchableInstruction
| unmarshaling instruction 7 to Instruction
| converting to SingleInstruction...
| type=kobopatch.ReplaceBytes
| converting to PatchableInstruction
| unmarshaling patch "Increase TOC level indentation" to PatchNode ([]yaml.Node)
| converting to []InstructionNode (map[string]yaml.Node)
| converting to *parsedPatch
| unmarshaling instruction 1 to Instruction
| converting to SingleInstruction...
| type=%!s(<nil>)
| converting to PatchableInstruction