kobopatch v0.10.4
https://github.com/geek1011/kobopatch



KoboPatch::LoadConfig
reading config file from *os.File
unmarshaling yaml
  | {
  |     "Version": "4.11.11982",
  |     "In": "src/kobo-update-4.11.11982.zip",
  |     "Out": "out/KoboRoot.tgz",
  |     "Log": "out/log.txt",
  |     "PatchFormat": "kobopatch",
  |     "Patches": {
  |         "src/libnickel-PROGRESIVE.yaml": "usr/local/Kobo/libnickel.so.1.0.0",
  |         "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-363.yaml": "usr/local/Kobo/nickel",
  |         "src/sickel.yaml": "usr/local/Kobo/sickel"
  |     },
  |     "Overrides": {
  |         "src/libadobe.so.yaml": {
  |             "Remove PDF map widget shown during panning": true
  |         },
  |         "src/libnickel-PROGRESIVE.yaml": {
  |             "Dictionary, remove long winded closest match notification": true,
  |             "My Brightness fine control": false,
  |             "My Dictionary text font-family/font-size/line-height": true,
  |             "My KePub stylesheet additions": true,
  |             "My ePub/Kepub fixed font sharpness": false,
  |             "My reading footer height": true,
  |             "Wikipedia Search language": true,
  |             "unclassified (PROGRESIVE)": false
  |         },
  |         "src/libnickel.so.1.0.0.yaml": {
  |             "Allow searches on Extra dictionaries": true,
  |             "Always display chapter name on navigation menu": true,
  |             "Always show confirmation dialog before upgrading": true,
  |             "Arabic keyboard (Mini/Touch/Glo/Aura/AuraHD/H2O)": false,
  |             "Block WiFi firmware upgrade": true,
  |             "Both page turn buttons go next": false,
  |             "Brightness fine control": false,
  |             "Change dicthtml strings to micthtml": false,
  |             "Clock display duration": true,
  |             "Custom Sleep/Power-off timeouts": false,
  |             "Custom font sizes": true,
  |             "Custom footer (page number text)": true,
  |             "Custom kepub default margins": true,
  |             "Custom left \u0026 right margins": true,
  |             "Cyrillic Keyboard (GloHD/ClaraHD/AuraOne/H2O2)": false,
  |             "Cyrillic keyboard (Mini/Touch/Glo/Aura/AuraHD/H2O)": false,
  |             "Dictionary text font-family/font-size/line-height - beta": false,
  |             "Dictionary, remove long winded closest match notification": false,
  |             "Enable rotation on all devices": true,
  |             "Fix three KePub fullScreenReading bugs": true,
  |             "Force user font-family in ePubs (Part 1 of 2)": true,
  |             "Force user line spacing in KePubs": true,
  |             "Force user line spacing in ePubs (part 1 of 2)": true,
  |             "Freedom to advanced fonts control": true,
  |             "Greek Keyboard (GloHD/ClaraHD/AuraOne/H2O2)": false,
  |             "Hebrew keyboard (AuraHD/H2O)": false,
  |             "Hebrew keyboard (GloHD/ClaraHD/AuraOne/H2O2)": false,
  |             "Hebrew keyboard (Mini/Touch/Glo/Aura)": false,
  |             "Ignore .otf fonts": false,
  |             "KePub constant font sharpness": false,
  |             "KePub stylesheet additions": false,
  |             "Keyboard template (AuraHD/H2O)": false,
  |             "Keyboard template (GloHD/ClaraHD/AuraOne/H2O2)": false,
  |             "Keyboard template (Mini/Touch/Glo/Aura)": false,
  |             "My 10 line spacing values": false,
  |             "My 24 line spacing values": true,
  |             "Rename new home screen footer": false,
  |             "Rename settings": false,
  |             "Replace adobe page numbers toggle with invert screen": true,
  |             "Set KePub hyphenation": true,
  |             "Set reading footer height": false,
  |             "Set slide to unlock": true,
  |             "Un-Force user font-family in KePubs": true,
  |             "Un-Force user text-align in div,p tags in KePubs": true,
  |             "Un-force font-family override p tags (std epubs)": false,
  |             "Un-force link decoration in KePubs": true,
  |             "Wikipedia Search language": false,
  |             "ePub constant font sharpness": false,
  |             "ePub disable built-in body padding-bottom": false,
  |             "ePub fixed top/bottom margins": false,
  |             "ePub fixed/adjustable top/bottom margins": true
  |         },
  |         "src/librmsdk.so.1.0.0.yaml": {
  |             "Default ePub monospace font (Courier)": true,
  |             "Default ePub sans-serif font (Gill Sans)": false,
  |             "Default ePub serif font (Amasis)": false,
  |             "Default ePub symbol font (Symbol)": false,
  |             "Disable orphans/widows avoidance": true,
  |             "Force user font-family in ePubs (Part 2 of 2)": true,
  |             "Force user line spacing in ePubs (Part 2 of 2)": true,
  |             "Ignore ePub TOC navpoints": false,
  |             "Ignore ePub book Adobe XPGT stylesheet (page-template.xpgt)": true,
  |             "Ignore ePub book CSS and Adobe XPGT stylesheets": false
  |         },
  |         "src/nickel-363.yaml": {
  |             "Custom font-size nozlib": true,
  |             "Custom font-size zlib": true,
  |             "Only Reading and My Books": false,
  |             "Reduce reading footer and quit caption": false,
  |             "Remove Footer and Recommendations": false
  |         },
  |         "src/nickel-F.yaml": {
  |             "Custom font-size": true
  |         },
  |         "src/nickel-P.yaml": {
  |             "PROGRESIVE": true
  |         },
  |         "src/nickel-PH.yaml": {
  |             "PROGRESIVE": true
  |         },
  |         "src/nickel-PNZ.yaml": {
  |             "PROGRESIVE": true
  |         },
  |         "src/nickel-PZ.yaml": {
  |             "PROGRESIVE": true
  |         },
  |         "src/nickel-Pi.yaml": {
  |             "PROGRESIVE": true
  |         },
  |         "src/nickel.yaml": {
  |             "Change pop-up footnote font-family": false,
  |             "Changing the info panel in full size screensaver- beta 1": false,
  |             "Custom font to collection and author titles": false,
  |             "Custom menubar - reduce height by 33%": false,
  |             "Custom menubar - reduce height by 50%": true,
  |             "Custom reading footer style": true,
  |             "Custom synopsis/details line spacing": true,
  |             "Custom synopsis/font size": true,
  |             "Dictionary pop-up - increase available text area": true,
  |             "Dictionary pop-up frame size increase": false,
  |             "Disable reading footer": false,
  |             "Fix reading stats/author name cut off when series is showing": false,
  |             "Increase headlines font": false,
  |             "Increase size of kepub chapter progress chart": true,
  |             "Increase the cover size in library": true,
  |             "Increase the view details container size": true,
  |             "New home screen increasing cover size": false,
  |             "New home screen subtitle custom font": false,
  |             "Remove footer (row3) and increase cover size on new home screen": false,
  |             "Remove footer (row3) on new home screen": false,
  |             "Remove forgot pin button from lock screen": false,
  |             "Remove recommendations (row1col2) from home screen": false,
  |             "Show all games": false
  |         },
  |         "src/sickel.yaml": {
  |             "sickel reboot timeout (20 sec)": false,
  |             "sickel reboot timeout (30 sec)": true
  |         }
  |     },
  |     "Lrelease": "",
  |     "Translations": {
  |         "src/translations/trans_es.ts": "usr/local/Kobo/translations/trans_es.qm"
  |     },
  |     "Files": {
  |         "src/fonts/IBMPlexMono-Bold.ttf": [
  |             "mnt/onboard/fonts/IBMPlexMono-Bold.ttf",
  |             "mnt/onboard/.adds/koreader/fonts/ibm/IBMPlexMono-Bold.ttf"
  |         ],
  |         "src/fonts/IBMPlexMono-BoldItalic.ttf": [
  |             "mnt/onboard/fonts/IBMPlexMono-BoldItalic.ttf",
  |             "mnt/onboard/.adds/koreader/fonts/ibm/IBMPlexMono-BoldItalic.ttf"
  |         ],
  |         "src/fonts/IBMPlexMono-Italic.ttf": [
  |             "mnt/onboard/fonts/IBMPlexMono-Italic.ttf",
  |             "mnt/onboard/.adds/koreader/fonts/ibm/IBMPlexMono-Italic.ttf"
  |         ],
  |         "src/fonts/IBMPlexMono-Regular.ttf": [
  |             "mnt/onboard/fonts/IBMPlexMono-Regular.ttf",
  |             "mnt/onboard/.adds/koreader/fonts/ibm/IBMPlexMono-Regular.ttf"
  |         ],
  |         "src/fonts/IBMPlexSans-Bold.ttf": [
  |             "mnt/onboard/fonts/IBMPlexSans-Bold.ttf",
  |             "mnt/onboard/.adds/koreader/fonts/ibm/IBMPlexSans-Bold.ttf"
  |         ],
  |         "src/fonts/IBMPlexSans-BoldItalic.ttf": [
  |             "mnt/onboard/fonts/IBMPlexSans-BoldItalic.ttf",
  |             "mnt/onboard/.adds/koreader/fonts/ibm/IBMPlexSans-BoldItalic.ttf"
  |         ],
  |         "src/fonts/IBMPlexSans-Italic.ttf": [
  |             "mnt/onboard/fonts/IBMPlexSans-Italic.ttf",
  |             "mnt/onboard/.adds/koreader/fonts/ibm/IBMPlexSans-Italic.ttf"
  |         ],
  |         "src/fonts/IBMPlexSans-Regular.ttf": [
  |             "mnt/onboard/fonts/IBMPlexSans-Regular.ttf",
  |             "mnt/onboard/.adds/koreader/fonts/ibm/IBMPlexSans-Regular.ttf"
  |         ],
  |         "src/fonts/IBMPlexSerif-Bold.ttf": [
  |             "mnt/onboard/fonts/IBMPlexSerif-Bold.ttf",
  |             "mnt/onboard/.adds/koreader/fonts/ibm/IBMPlexSerif-Bold.ttf"
  |         ],
  |         "src/fonts/IBMPlexSerif-BoldItalic.ttf": [
  |             "mnt/onboard/fonts/IBMPlexSerif-BoldItalic.ttf",
  |             "mnt/onboard/.adds/koreader/fonts/ibm/IBMPlexSerif-BoldItalic.ttf"
  |         ],
  |         "src/fonts/IBMPlexSerif-Italic.ttf": [
  |             "mnt/onboard/fonts/IBMPlexSerif-Italic.ttf",
  |             "mnt/onboard/.adds/koreader/fonts/ibm/IBMPlexSerif-Italic.ttf"
  |         ],
  |         "src/fonts/IBMPlexSerif-Regular.ttf": [
  |             "mnt/onboard/fonts/IBMPlexSerif-Regular.ttf",
  |             "mnt/onboard/.adds/koreader/fonts/ibm/IBMPlexSerif-Regular.ttf"
  |         ],
  |         "src/fonts/SansForgetica-Regular.otf": [
  |             "mnt/onboard/fonts/SansForgetica-Regular.otf",
  |             "mnt/onboard/.adds/koreader/fonts/Forgetica/SansForgetica-Regular.otf"
  |         ],
  |         "src/hyphenDicts/dicthtml-e6.zip": [
  |             "mnt/onboard/.kobo/dict/dicthtml-es.zip"
  |         ],
  |         "src/hyphenDicts/hyph_de.dic": [
  |             "usr/local/Kobo/hyphenDicts/hyph_de.dic"
  |         ],
  |         "src/hyphenDicts/hyph_en_US.dic": [
  |             "usr/local/Kobo/hyphenDicts/hyph_en_US.dic"
  |         ],
  |         "src/hyphenDicts/hyph_es.dic": [
  |             "usr/local/Kobo/hyphenDicts/hyph_es.dic"
  |         ],
  |         "src/hyphenDicts/hyph_es_ES.dic": [
  |             "usr/local/Kobo/hyphenDicts/hyph_es_ES.dic"
  |         ],
  |         "src/hyphenDicts/hyph_fr.dic": [
  |             "usr/local/Kobo/hyphenDicts/hyph_fr.dic"
  |         ],
  |         "src/hyphenDicts/hyph_la.dic": [
  |             "usr/local/Kobo/hyphenDicts/hyph_la.dic"
  |         ],
  |         "src/otros/hosts-363": [
  |             "etc/hosts"
  |         ],
  |         "src/otros/jcn-t.css": [
  |             "mnt/onboard/kobo_extra.css",
  |             "mnt/onboard/.kobo/kepub/kepub-book.css"
  |         ]
  |     }
  | }


KoboPatch::OutputInit


KoboPatch::ApplyPatches
    KoboPatch::openIn
        Opening firmware zip 'src/kobo-update-4.11.11982.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/librmsdk.so.1.0.0' size:7776328 mode:'509' typeflag:'48' with files: src/librmsdk.so.1.0.0.yaml
        reading entry contents
        loading patch file 'src/librmsdk.so.1.0.0.yaml' (detected format kobopatch)
          | parsing patch file
          | parsing patch file: expanding shorthand hex values
          |   decoded hex `E6 D0` to `[230 208]`
          |   decoded hex `E6 E7` to `[230 231]`
        applying overrides
            override Force user font-family in ePubs (Part 2 of 2) -> enabled:true
            override Default ePub monospace font (Courier) -> enabled:true
            override Default ePub serif font (Amasis) -> enabled:false
            override Default ePub sans-serif font (Gill Sans) -> enabled:false
            override Ignore ePub book Adobe XPGT stylesheet (page-template.xpgt) -> enabled:true
            override Ignore ePub book CSS and Adobe XPGT stylesheets -> enabled:false
            override Ignore ePub TOC navpoints -> enabled:false
            override Disable orphans/widows avoidance -> enabled:true
            override Default ePub symbol font (Symbol) -> enabled:false
            override Force user line spacing in ePubs (Part 2 of 2) -> enabled:true
        validating patch file
          |   enabledPatchGroups:map[]
        applying patch file
          | validating patch file
          |   enabledPatchGroups:map[]
          | looping over patches
          |   ResetBaseAddress()
          |   Enabled: true
          |   applying patch `Default ePub monospace font (Courier)`
          | looping over instructions
          |   skipping non-instruction Enabled(), PatchGroup() or Description()
          |   skipping non-instruction Enabled(), PatchGroup() or Description()
          |   FindReplaceString("CourierStd.otf", "normal/Courier")
          |     FindBaseAddressString("CourierStd.otf")
          |     ReplaceString(0, "CourierStd.otf", "normal/Courier")
          |   FindReplaceString("CourierStd-Bold.otf", "bold/Courier")
          |     FindBaseAddressString("CourierStd-Bold.otf")
          |     ReplaceString(0, "CourierStd-Bold.otf", "bold/Courier")
          |   FindReplaceString("CourierStd-Oblique.otf", "italic/Courier")
          |     FindBaseAddressString("CourierStd-Oblique.otf")
          |     ReplaceString(0, "CourierStd-Oblique.otf", "italic/Courier")
          |   FindReplaceString("CourierStd-BoldOblique.otf", "bolditalic/Courier")
          |     FindBaseAddressString("CourierStd-BoldOblique.otf")
          |     ReplaceString(0, "CourierStd-BoldOblique.otf", "bolditalic/Courier")
          |   ResetBaseAddress()
          |   Enabled: false
          |   skipping patch `Default ePub serif font (Amasis)`
          |   ResetBaseAddress()
          |   Enabled: false
          |   skipping patch `Default ePub sans-serif font (Gill Sans)`
          |   ResetBaseAddress()
          |   Enabled: true
          |   applying patch `Force user line spacing in ePubs (Part 2 of 2)`
          | looping over instructions
          |   skipping non-instruction Enabled(), PatchGroup() or Description()
          |   skipping non-instruction Enabled(), PatchGroup() or Description()
          |   FindBaseAddressString("\x00line-height\x00") | hex:006c696e652d68656967687400
          |   ReplaceString(1, "l", "_")
          |   ResetBaseAddress()
          |   Enabled: true
          |   applying patch `Ignore ePub book Adobe XPGT stylesheet (page-template.xpgt)`
          | looping over instructions
          |   skipping non-instruction Enabled(), PatchGroup() or Description()
          |   skipping non-instruction Enabled(), PatchGroup() or Description()
          |   FindBaseAddressString("\x00template\x00") | hex:0074656d706c61746500
          |   ReplaceString(1, "t", "_")
          |   ResetBaseAddress()
          |   Enabled: false
          |   skipping patch `Ignore ePub book CSS and Adobe XPGT stylesheets`
          |   ResetBaseAddress()
          |   Enabled: true
          |   applying patch `Disable orphans/widows avoidance`
          | looping over instructions
          |   skipping non-instruction Enabled(), PatchGroup() or Description()
          |   skipping non-instruction Enabled(), PatchGroup() or Description()
          |   ReplaceBytes(2711204, []byte{0xe6, 0xd0}, []byte{0xe6, 0xe7})
          |   ResetBaseAddress()
          |   Enabled: false
          |   skipping patch `Default ePub symbol font (Symbol)`
          |   ResetBaseAddress()
          |   Enabled: true
          |   applying patch `Force user font-family in ePubs (Part 2 of 2)`
          | looping over instructions
          |   skipping non-instruction Enabled(), PatchGroup() or Description()
          |   skipping non-instruction Enabled(), PatchGroup() or Description()
          |   FindBaseAddressString("\x00font-family\x00") | hex:00666f6e742d66616d696c7900
          |   ReplaceString(1, "f", "_")
          |   ResetBaseAddress()
          |   Enabled: false
          |   skipping patch `Ignore ePub TOC navpoints`
        patched file - orig:7776328 new:7776328
        copying new header to output tar - size:7776328 mode:'509'
        writing patched file to tar writer
    patching entry name:'./usr/local/Kobo/sickel' size:27096 mode:'509' typeflag:'48' with files: src/sickel.yaml
        reading entry contents
        loading patch file 'src/sickel.yaml' (detected format kobopatch)
          | parsing patch file
          | parsing patch file: expanding shorthand hex values
          |   decoded hex `42 F2 10 71` to `[66 242 16 113]`
          |   decoded hex `44 F6 20 61` to `[68 246 32 97]`
          |   decoded hex `42 F2 10 71` to `[66 242 16 113]`
          |   decoded hex `44 F6 20 61` to `[68 246 32 97]`
          |   decoded hex `44 F6 20 61` to `[68 246 32 97]`
          |   decoded hex `49 F6 40 41` to `[73 246 64 65]`
          |   decoded hex `42 F2 10 71` to `[66 242 16 113]`
          |   decoded hex `47 F2 30 51` to `[71 242 48 81]`
          |   decoded hex `42 F2 10 71` to `[66 242 16 113]`
          |   decoded hex `47 F2 30 51` to `[71 242 48 81]`
          |   decoded hex `44 F6 20 61` to `[68 246 32 97]`
          |   decoded hex `4E F6 60 21` to `[78 246 96 33]`
        applying overrides
            override sickel reboot timeout (30 sec) -> enabled:true
            override sickel reboot timeout (20 sec) -> enabled:false
        validating patch file
          |   enabledPatchGroups:map[sickel reboot timeout:true]
        applying patch file
          | validating patch file
          |   enabledPatchGroups:map[sickel reboot timeout:true]
          | looping over patches
          |   ResetBaseAddress()
          |   Enabled: false
          |   skipping patch `sickel reboot timeout (20 sec)`
          |   ResetBaseAddress()
          |   Enabled: true
          |   applying patch `sickel reboot timeout (30 sec)`
          | looping over instructions
          |   skipping non-instruction Enabled(), PatchGroup() or Description()
          |   skipping non-instruction Enabled(), PatchGroup() or Description()
          |   skipping non-instruction Enabled(), PatchGroup() or Description()
          |   ReplaceBytes(13464, []byte{0x42, 0xf2, 0x10, 0x71}, []byte{0x47, 0xf2, 0x30, 0x51})
          |   ReplaceBytes(13482, []byte{0x42, 0xf2, 0x10, 0x71}, []byte{0x47, 0xf2, 0x30, 0x51})
          |   ReplaceBytes(14070, []byte{0x44, 0xf6, 0x20, 0x61}, []byte{0x4e, 0xf6, 0x60, 0x21})
        patched file - orig:27096 new:27096
        copying new header to output tar - size:27096 mode:'509'
        writing patched file to tar writer
    patching entry name:'./usr/local/Kobo/nickel' size:5255592 mode:'509' typeflag:'48' with files: src/nickel-363.yaml
        reading entry contents
        loading patch file 'src/nickel-363.yaml' (detected format kobopatch)
          | parsing patch file
          | parsing patch file: expanding shorthand hex values
        applying overrides
            override Reduce reading footer and quit caption -> enabled:false
            override Custom font-size nozlib -> enabled:true
            override Custom font-size zlib -> enabled:true
            override Only Reading and My Books -> enabled:false
            override Remove Footer and Recommendations -> enabled:false
        validating patch file
        --> i286: internal error while validating `Custom font-size zlib` (you should report this as a bug)
