kobopatch v0.13.0
https://github.com/geek1011/kobopatch
KoboPatch::LoadConfig
reading config file from *os.File
unmarshaling yaml
| {
| "Version": "4.13.12638",
| "In": "src/kobo-update-4.13.12638.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:
penIn
Opening firmware zip 'src/kobo-update-4.13.12638.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/libadobe.so' size:283116 mode:'509' typeflag:'48' with files: src/libadobe.so.yaml
reading entry contents
loading patch file 'src/libadobe.so.yaml' (detected format kobopatch)
| parsing patch file
| parsing patch file: expanding shorthand hex values
| decoded hex `00 23` to `[0 35]`
| decoded hex `70 47` to `[112 71]`
| decoded hex `9A 42` to `[154 66]`
| decoded hex `00 2A` to `[0 42]`
| decoded hex `9A 42` to `[154 66]`
| decoded hex `00 2A` to `[0 42]`
| decoded hex `28 B1` to `[40 177]`
| decoded hex `00 20` to `[0 32]`
| decoded hex `30 B1` to `[48 177]`
| decoded hex `00 20` to `[0 32]`
validating patch file
| enabledPatchGroups:map[]
applying patch file
| validating patch file
| enabledPatchGroups:map[]
| looping over patches
| ResetBaseAddress()
| Enabled: false
| skipping patch `Keep PDF pan position`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Remove PDF map widget shown during panning`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Remove PDF page turn arrows`
patched file - orig:283116 new:283116
copying new header to output tar - size:283116 mode:'509'
writing patched file to tar writer
patching entry name:'./usr/local/Kobo/libnickel.so.1.0.0' size:15904300 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
| parsing patch file: expanding shorthand hex values
| decoded hex `2E B1` to `[46 177]`
| decoded hex `BC F5 3C EB 6D A3` to `[188 245 60 235 109 163]`
| decoded hex `A9 46 00 25 ED 00` to `[169 70 0 37 237 0]`
| decoded hex `D3 E9 00 23 07 F1` to `[211 233 0 35 7 241]`
| decoded hex `20 46 04 A1 29 44` to `[32 70 4 161 41 68]`
| decoded hex `80 01 20 46` to `[128 1 32 70]`
| decoded hex `BC F5 36 EB` to `[188 245 54 235]`
| decoded hex `61 E9 1C 23 BC F5` to `[97 233 28 35 188 245]`
| decoded hex `08 35 70 2D F7 D1` to `[8 53 112 45 247 209]`
| decoded hex `32 EB 6A A3 D3 E9` to `[50 235 106 163 211 233]`
| decoded hex `7C E0 00 BF 00 BF` to `[124 224 0 191 0 191]`
| decoded hex `00 23 07 F1 80 01 20 46` to `[0 35 7 241 128 1 32 70]`
| decoded hex `00 00 00 00 00 00 F0 3F` to `[0 0 0 0 0 0 240 63]`
| decoded hex `61 E9 1A 23 BC F5 28 EB` to `[97 233 26 35 188 245 40 235]`
| decoded hex `00 00 00 00 00 00 F0 3F` to `[0 0 0 0 0 0 240 63]`
| decoded hex `67 A3 D3 E9 00 23 07 F1` to `[103 163 211 233 0 35 7 241]`
| decoded hex `00 00 00 00 00 00 F0 3F` to `[0 0 0 0 0 0 240 63]`
| decoded hex `80 01 20 46 61 E9 18 23` to `[128 1 32 70 97 233 24 35]`
| decoded hex `00 00 00 00 00 00 F0 3F` to `[0 0 0 0 0 0 240 63]`
| decoded hex `BC F5 1E EB 43 F2 33 33` to `[188 245 30 235 67 242 51 51]`
| decoded hex `00 00 00 00 00 00 F0 3F` to `[0 0 0 0 0 0 240 63]`
| decoded hex `4F F0 33 32 C3 F6 F3 73` to `[79 240 51 50 195 246 243 115]`
| decoded hex `00 00 00 00 00 00 F0 3F` to `[0 0 0 0 0 0 240 63]`
| decoded hex `07 F1 80 01 20 46 61 E9` to `[7 241 128 1 32 70 97 233]`
| decoded hex `00 00 00 00 00 00 F0 3F` to `[0 0 0 0 0 0 240 63]`
| decoded hex `16 23 BC F5 12 EB 5E A3` to `[22 35 188 245 18 235 94 163]`
| decoded hex `00 00 00 00 00 00 F0 3F` to `[0 0 0 0 0 0 240 63]`
| decoded hex `D3 E9 00 23 07 F1 80 01` to `[211 233 0 35 7 241 128 1]`
| decoded hex `00 00 00 00 00 00 F0 3F` to `[0 0 0 0 0 0 240 63]`
| decoded hex `20 46 61 E9 14 23 BC F5` to `[32 70 97 233 20 35 188 245]`
| decoded hex `00 00 00 00 00 00 F0 3F` to `[0 0 0 0 0 0 240 63]`
| decoded hex `08 EB 00 23 00 22 C3 F6` to `[8 235 0 35 0 34 195 246]`
| decoded hex `00 00 00 00 00 00 F0 3F` to `[0 0 0 0 0 0 240 63]`
| decoded hex `F8 73 07 F1 80 01 20 46` to `[248 115 7 241 128 1 32 70]`
| decoded hex `00 00 00 00 00 00 F0 3F` to `[0 0 0 0 0 0 240 63]`
| decoded hex `61 E9 12 23 BC F5 FC EA` to `[97 233 18 35 188 245 252 234]`
| decoded hex `00 00 00 00 00 00 F0 3F` to `[0 0 0 0 0 0 240 63]`
| decoded hex `55 A3 D3 E9 00 23 07 F1` to `[85 163 211 233 0 35 7 241]`
| decoded hex `00 00 00 00 00 00 F0 3F` to `[0 0 0 0 0 0 240 63]`
| decoded hex `00 23 00 22` to `[0 35 0 34]`
| decoded hex `00 BF 00 25` to `[0 191 0 37]`
| decoded hex `C4 F2 08 03 07 F1` to `[196 242 8 3 7 241]`
| decoded hex `20 46 29 A1 29 44` to `[32 70 41 161 41 68]`
| decoded hex `80 01 20 46` to `[128 1 32 70]`
| decoded hex `BC F5 B0 EA` to `[188 245 176 234]`
| decoded hex `61 E9 02 23 BC F5` to `[97 233 2 35 188 245]`
| decoded hex `08 35 50 2D F7 D1` to `[8 53 80 45 247 209]`
| decoded hex `AC EA` to `[172 234]`
| decoded hex `4D 46` to `[77 70]`
| decoded hex `01 20 01 20` to `[1 32 1 32]`
| decoded hex `4F F0 11 00` to `[79 240 17 0]`
| decoded hex `4F F0 0F 00` to `[79 240 15 0]`
| decoded hex `01 2C` to `[1 44]`
| decoded hex `A4 42` to `[164 66]`
| decoded hex `4F F0 00 00` to `[79 240 0 0]`
| decoded hex `00 20 00 20` to `[0 32 0 32]`
| decoded hex `40 F6 B8 31` to `[64 246 184 49]`
| decoded hex `03 21 89 02` to `[3 33 137 2]`
| decoded hex `4F F0 01 00` to `[79 240 1 0]`
| decoded hex `4F F0 01 00` to `[79 240 1 0]`
| decoded hex `4F F0 01 00` to `[79 240 1 0]`
| decoded hex `4F F0 01 00` to `[79 240 1 0]`
| decoded hex `4F F0 01 00` to `[79 240 1 0]`
| decoded hex `4F F0 01 00` to `[79 240 1 0]`
| decoded hex `4F F0 01 00` to `[79 240 1 0]`
| decoded hex `4F F0 01 00` to `[79 240 1 0]`
| decoded hex `4F F0 01 00` to `[79 240 1 0]`
| decoded hex `4F F0 01 00` to `[79 240 1 0]`
| decoded hex `4F F0 01 00` to `[79 240 1 0]`
| decoded hex `4F F0 01 00` to `[79 240 1 0]`
| decoded hex `4F F0 01 00` to `[79 240 1 0]`
| decoded hex `4F F0 01 00` to `[79 240 1 0]`
| decoded hex `4F F0 01 00` to `[79 240 1 0]`
| decoded hex `4F F0 01 00` to `[79 240 1 0]`
| decoded hex `4F F0 01 00` to `[79 240 1 0]`
| decoded hex `4F F0 01 00` to `[79 240 1 0]`
| decoded hex `4F F0 01 00` to `[79 240 1 0]`
| decoded hex `4F F0 01 00` to `[79 240 1 0]`
| decoded hex `00 24` to `[0 36]`
| decoded hex `01 24` to `[1 36]`
| decoded hex `80 F0 01 00` to `[128 240 1 0]`
| decoded hex `01 20 01 20` to `[1 32 1 32]`
| decoded hex `4F F0 01 00` to `[79 240 1 0]`
| decoded hex `18 B1` to `[24 177]`
| decoded hex `C9 B0` to `[201 176]`
| decoded hex `CB B0` to `[203 176]`
| decoded hex `02 AF` to `[2 175]`
| decoded hex `04 AF` to `[4 175]`
| decoded hex `AD F8 04 20` to `[173 248 4 32]`
| decoded hex `02 92 01 92` to `[2 146 1 146]`
| decoded hex `AA F7 5E E8` to `[170 247 94 232]`
| decoded hex `8A F7 96 EF` to `[138 247 150 239]`
| decoded hex `20 22 4F F0 FF 33` to `[32 34 79 240 255 51]`
| decoded hex `00 23 01 22 0A 21` to `[0 35 1 34 10 33]`
| decoded hex `07 F1 70 0A` to `[7 241 112 10]`
| decoded hex `00 93 01 91` to `[0 147 1 145]`
| decoded hex `AD F8 04 20 00 93` to `[173 248 4 32 0 147]`
| decoded hex `42 43 92 08 01 3A` to `[66 67 146 8 1 58]`
| decoded hex `50 46 67 23` to `[80 70 103 35]`
| decoded hex `B8 BF 00 22` to `[184 191 0 34]`
| decoded hex `00 22 49 46` to `[0 34 73 70]`
| decoded hex `20 A8 49 46` to `[32 168 73 70]`
| decoded hex `96 F7 54 EA` to `[150 247 84 234]`
| decoded hex `8A F7 1E EB` to `[138 247 30 235]`
| decoded hex `51 46` to `[81 70]`
| decoded hex `20 A9` to `[32 169]`
| decoded hex `4F F0 01 00` to `[79 240 1 0]`
| decoded hex `01` to `[1]`
| decoded hex `00` to `[0]`
| decoded hex `00 24` to `[0 36]`
| decoded hex `01 24` to `[1 36]`
| decoded hex `00 24` to `[0 36]`
| decoded hex `01 24` to `[1 36]`
| decoded hex `18 B9` to `[24 185]`
| decoded hex `BB 61` to `[187 97]`
| decoded hex `BA 61` to `[186 97]`
| decoded hex `4F F0 00 00` to `[79 240 0 0]`
| decoded hex `59 46 50 46` to `[89 70 80 70]`
| decoded hex `5A 46 51 46` to `[90 70 81 70]`
| decoded hex `06 46` to `[6 70]`
| decoded hex `00 26` to `[0 38]`
| decoded hex `4F F0 04 00` to `[79 240 4 0]`
| decoded hex `4F F0 00 00` to `[79 240 0 0]`
| decoded hex `00 24` to `[0 36]`
| decoded hex `01 24` to `[1 36]`
validating patch file
| enabledPatchGroups:map[]
applying patch file
| validating patch file
| enabledPatchGroups:map[]
| looping over patches
| ResetBaseAddress()
| Enabled: false
| skipping patch `Disable all tutorial dialogs`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Un-force link decoration in KePubs`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Dictionary, remove long winded closest match notification`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Wikipedia Search language`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Set reading footer height`
| ResetBaseAddress()
| Enabled: false
| skipping patch `ePub constant font sharpness`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Hebrew keyboard (Mini/Touch/Glo/Aura)`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Block WiFi firmware upgrade`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Hide browser from beta features`
| ResetBaseAddress()
| Enabled: false
| skipping patch `ePub fixed/adjustable top/bottom margins`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Custom kepub default margins`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Un-Force user text-align in div,p tags in KePubs`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Keyboard template (Mini/Touch/Glo/Aura)`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Arabic keyboard (Mini/Touch/Glo/Aura/AuraHD/H2O)`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Dictionary text font-family/font-size/line-height - beta`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Enable rotation on all devices`
| ResetBaseAddress()
| Enabled: false
| skipping patch `My 10 line spacing values`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Force user line spacing in KePubs`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Keyboard template (GloHD/ClaraHD/AuraOne/H2O2)`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Set slide to unlock`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Force user line spacing in ePubs (part 1 of 2)`
| ResetBaseAddress()
| Enabled: true
| applying patch `Un-Force user font-family in KePubs`
| looping over instructions
| skipping non-instruction Enabled(), PatchGroup() or Description()
| skipping non-instruction Enabled(), PatchGroup() or Description()
| FindBaseAddressString("* { font-family: %1 !important; }\n") | hex:2a207b20666f6e742d66616d696c793a2025312021696d 706f7274616e743b207d0a
| ReplaceString(0, "* { font-family: %1 !important; }\n", "div,p{font-family:%1!important; }\n")
| ResetBaseAddress()
| Enabled: false
| skipping patch `KePub stylesheet additions`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Custom footer (page number text)`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Use old keyboard on all devices`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Remove beta features not supported text`
| ResetBaseAddress()
| Enabled: true
| applying patch `Freedom to advanced fonts control`
| looping over instructions
| skipping non-instruction Enabled(), PatchGroup() or Description()
| skipping non-instruction Enabled(), PatchGroup() or Description()
| ReplaceBytes(8663780, []byte{0x59, 0x46, 0x50, 0x46}, []byte{0x5a, 0x46, 0x51, 0x46})
| ReplaceBLX(8663784, 0x4073b8, 0x41f440)
| ReplaceBytesNOP.FindBLX -> Set ReplaceBytesNOP.Find to BLX(0x9FB23A, 0x422810) -> 27F6EAE2
| ReplaceBytesNOP(10465850, []byte{0x27, 0xf6, 0xea, 0xe2})
| ReplaceBytesNOP.FindBLX -> Set ReplaceBytesNOP.Find to BLX(0x9FC1D0, 0x422810) -> 26F61EE3
| ReplaceBytesNOP(10469840, []byte{0x26, 0xf6, 0x1e, 0xe3})
| ReplaceBytesNOP.FindBLX -> Set ReplaceBytesNOP.Find to BLX(0x65F7EA, 0x415B74) -> B6F5C4E9
| ReplaceBytesNOP(6682602, []byte{0xb6, 0xf5, 0xc4, 0xe9})
| ReplaceBytesNOP.FindBLX -> Set ReplaceBytesNOP.Find to BLX(0x65F7F0, 0x41D354) -> BDF5B0ED
| ReplaceBytesNOP(6682608, []byte{0xbd, 0xf5, 0xb0, 0xed})
| ReplaceBytes(6682612, []byte{0x6, 0x46}, []byte{0x0, 0x26})
| ReplaceBytesNOP.FindBLX -> Set ReplaceBytesNOP.Find to BLX(0x65F7F8, 0x40E5B4) -> AEF5DCEE
| ReplaceBytesNOP(6682616, []byte{0xae, 0xf5, 0xdc, 0xee})
| ResetBaseAddress()
| Enabled: false
| skipping patch `Custom Sleep/Power-off timeouts`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Cyrillic keyboard (Mini/Touch/Glo/Aura/AuraHD/H2O)`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Hebrew keyboard (AuraHD/H2O)`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Greek Keyboard (GloHD/ClaraHD/AuraOne/H2O2)`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Both page turn sides go next`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Set visible SmartLink`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Disable wishlist`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Keyboard template (AuraHD/H2O)`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Hebrew keyboard (GloHD/ClaraHD/AuraOne/H2O2)`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Replace adobe page numbers toggle with invert screen`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Both page turn buttons go next`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Force user font-family in ePubs (Part 1 of 2)`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Allow searches on Extra dictionaries`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Rename new home screen footer`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Ignore .otf fonts`
| ResetBaseAddress()
| Enabled: false
| skipping patch `My 24 line spacing values`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Set KePub hyphenation`
| ResetBaseAddress()
| Enabled: false
| skipping patch `KePub constant font sharpness`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Rename settings`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Only show Pocket SmartLink`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Only show stats SmartLink`
| ResetBaseAddress()
| Enabled: false
| skipping patch `ePub fixed top/bottom margins`
| ResetBaseAddress()
| Enabled: false
| skipping patch `ePub disable built-in body padding-bottom`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Cyrillic Keyboard (GloHD/ClaraHD/AuraOne/H2O2)`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Never show Kobo Plus, wishlist, and points SmartLinks`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Fix three KePub fullScreenReading bugs`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Un-force font-family override p tags (std epubs)`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Always display chapter name on navigation menu`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Always show confirmation dialog before upgrading`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Change dicthtml strings to micthtml`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Clock display duration`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Custom font sizes`
| ResetBaseAddress()
| Enabled: true
| applying patch `Custom left & right margins`
| looping over instructions
| skipping non-instruction Enabled(), PatchGroup() or Description()
| skipping non-instruction Enabled(), PatchGroup() or Description()
| FindBaseAddressString("\x00\x00\x00\x00\x02\x00\x0 0\x00\x04\x00\x00\x00\x06\x00\x00\x00\b\x00\x00\x0 0\n\x00\x00\x00\f\x00\x00\x00\x0e\x00\x00\x00\x10\ x00\x00\x00") | hex:00000000020000000400000006000000080000000a0000 000c0000000e00000010000000
| ReplaceInt(0, 0x0, 0x0)
| ReplaceInt(4, 0x2, 0x1)
| ReplaceInt(8, 0x4, 0x2)
| ReplaceInt(12, 0x6, 0x3)
| ReplaceInt(16, 0x8, 0x4)
| ReplaceInt(20, 0xa, 0x5)
| ReplaceInt(24, 0xc, 0x6)
| ReplaceInt(28, 0xe, 0x7)
| ReplaceInt(32, 0x10, 0x8)
patched file - orig:15904300 new:15904300
copying new header to output tar - size:15904300 mode:'509'
writing patched file to tar writer
patching entry name:'./usr/local/Kobo/nickel' size:10051848 mode:'509' typeflag:'48' with files: src/nickel.yaml
reading entry contents
loading patch file 'src/nickel.yaml' (detected format kobopatch)
| parsing patch file
| parsing patch file: expanding shorthand hex values
validating patch file
| enabledPatchGroups:map[Reading footer alternatives:true Home screen layout tweaks:true]
applying patch file
| validating patch file
| enabledPatchGroups:map[Reading footer alternatives:true Home screen layout tweaks:true]
| looping over patches
| ResetBaseAddress()
| Enabled: true
| applying patch `Remove extra space on selection menu`
| looping over instructions
| skipping non-instruction Enabled(), PatchGroup() or Description()
| skipping non-instruction Enabled(), PatchGroup() or Description()
| FindZlib("#SelectionMenuView") | hex:2353656c656374696f6e4d656e7556696577
| ReplaceZlibGroup(0, []struct { Find string "yaml:\"Find,omitempty\""; Replace string "yaml:\"Replace,omitempty\"" }{struct { Find string "yaml:\"Find,omitempty\""; Replace string "yaml:\"Replace,omitempty\"" }{Find:"width: 195px;", Replace:"width: 149px;"}, struct { Find string "yaml:\"Find,omitempty\""; Replace string "yaml:\"Replace,omitempty\"" }{Find:"width: 230px;", Replace:"width: 174px;"}, struct { Find string "yaml:\"Find,omitempty\""; Replace string "yaml:\"Replace,omitempty\"" }{Find:"width: 280px;", Replace:"width: 210px;"}, struct { Find string "yaml:\"Find,omitempty\""; Replace string "yaml:\"Replace,omitempty\"" }{Find:"width: 366px;", Replace:"width: 276px;"}})
| ResetBaseAddress()
| Enabled: false
| skipping patch `Disable reading footer`
| ResetBaseAddress()
| Enabled: true
| applying patch `Increase the view details container size`
| looping over instructions
| skipping non-instruction Enabled(), PatchGroup() or Description()
| skipping non-instruction Enabled(), PatchGroup() or Description()
| FindZlib("#bookInfoWidget") | hex:23626f6f6b496e666f576964676574
| ReplaceZlib(0, "#bookInfoWidget[isLandscape=false][qApp_deviceIsTrilogy=true] {\n max-height: 300px;\n min-height: 300px;\n}\n#bookInfoWidget[isLandscape=false][qApp_deviceIsPhoenix=true] {\n max-height: 390px;\n min-height: 390px;\n}\n#bookInfoWidget[isLandscape=false][qApp_deviceIsDragon=true] {\n max-height: 550px;\n min-height: 550px;\n}\n#bookInfoWidget[isLandscape=false][qApp_deviceIsDaylight=true] {\n max-height: 715px;\n min-height: 715px;\n}", "#bookInfoWidget[isLandscape=false][qApp_deviceIsTrilogy=true] {\n max-height: 200px;\n min-height: 200px;\n}\n#bookInfoWidget[isLandscape=false][qApp_deviceIsPhoenix=true] {\n max-height: 230px;\n min-height: 230px;\n}\n#bookInfoWidget[isLandscape=false][qApp_deviceIsDragon=true] {\n max-height: 400px;\n min-height: 400px;\n}\n#bookInfoWidget[isLandscape=false][qApp_deviceIsDaylight=true] {\n max-height: 600px;\n min-height: 600px;\n}")
| ReplaceZlib(0, "#bookInfoWidget[isLandscape=true][qApp_deviceIsTrilogy=true] {\n max-height: 210px;\n min-height: 210px;\n}\n#bookInfoWidget[isLandscape=true][qApp_deviceIsPhoenix=true] {\n max-height: 265px;\n min-height: 265px;\n}\n#bookInfoWidget[isLandscape=true][qApp_deviceIsDragon=true] {\n max-height: 420px;\n min-height: 420px;\n}\n#bookInfoWidget[isLandscape=true][qApp_deviceIsDaylight=true] {\n max-height: 540px;\n min-height: 540px;\n}", "#details[qApp_deviceIsTrilogy=true] {\n max-height: 390px;\n min-height: 390px;\n}\n#details[qApp_deviceIsPhoenix=true] {\n max-height: 515px;\n min-height: 515px;\n}\n#details[qApp_deviceIsDragon=true] {\n max-height: 710px;\n min-height: 710px;\n}\n#details[qApp_deviceIsDaylight=true] {\n max-height: 880px;\n min-height: 880px;\n}")
| ResetBaseAddress()
| Enabled: false
| skipping patch `Remove footer (row3) and increase cover size on new home screen`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Remove footer (row3) on new home screen`
| ResetBaseAddress()
| Enabled: false
| skipping patch `Show all games`
| ResetBaseAddress()
| Enabled: true
| applying patch `Custom reading footer style`
| looping over instructions
| skipping non-instruction Enabled(), PatchGroup() or Description()
| skipping non-instruction Enabled(), PatchGroup() or Description()
| skipping non-instruction Enabled(), PatchGroup() or Description()
| FindBaseAddressString("ReadingFooter {\n qproperty-footerMargin: 105;\n}\n") | hex:52656164696e67466f6f746572207b0a20207170726f70 657274792d666f6f7465724d617267696e3a203130353b0a7d 0a
| ReplaceString(0, "ReadingFooter {\n qproperty-footerMargin: 105;\n}\nReadingFooter[qApp_deviceIsDragon=true] {\n qproperty-footerMargin: 170;\n}\nReadingFooter[qApp_deviceIsDaylight=true] {\n qproperty-footerMargin: 221;\n}\n#caption[qApp_deviceIsTrilogy=true] {\n font-size: 19px;\n}\n#caption[qApp_deviceIsPhoenix=true] {\n font-size: 23px;\n}\n#caption[qApp_deviceIsDragon=true] {\n font-size: 29px;\n}\n#caption[qApp_deviceIsAlyssum=true] {\n font-size: 32px;\n}\n#caption[qApp_deviceIsNova=true] {\n font-size: 32px;\n}\n#caption[qApp_deviceIsDaylight=true] {\n font-size: 37px;\n}\n#caption[localeName=\"ja\"] {\n font-family: Sans-SerifJP, sans-serif;\n font-style: normal;\n}\n#caption[localeName=\"zh\"] {\n font-family: Sans-SerifZH-Traditional, sans-serif;\n font-style: normal;\n}\n#caption[localeName=\"zh-TW\"] {\n font-family: Sans-SerifZH-Traditional, sans-serif;\n font-style: normal;\n}\n", "ReadingFooter {qproperty-footerMargin:105;min-height:70px;max-height:70px}\nReadingFooter[qApp_deviceIsDragon=true] {min-height:80px;max-height:80px}\nReadingFooter[qApp_deviceIsDaylight=true] {min-height:90px;max-height:90px}\n#caption {font-size:19px;margin-top:+00px}\n#caption[qApp_deviceIsPhoenix=true] {font-size:23px}\n#caption[qApp_deviceIsDragon=true] {font-size:29px}\n#caption[qApp_deviceIsAlyssum=true], #caption[qApp_deviceIsNova=true] {font-size:32px}\n#caption[qApp_deviceIsDaylight=true] {font-size:37px}\n#caption[localeName=\"ja\"] {font-family:Sans-SerifJP,sans-serif;font-style:normal}\n#caption[localeName=\"zh\"] {font-family:Sans-SerifZH-Traditional,sans-serif;font-style:normal}\n#caption[localeName=\"zh-TW\"] {font-family:Sans-SerifZH-Traditional,sans-serif;font-style:normal}\n\x00")
| ReplaceString(42, "min-height:30px", "min-height:40px")
| could not apply patch: i6: ReplaceString: could not find specified bytes
--> ReplaceString: could not find specified bytes