pgaskin / kobopatch-patches

Patches for use with kobopatch.
https://pgaskin.net/kobopatch-patches/
MIT License
242 stars 22 forks source link

Patches for 4.39.22801 #128

Open pgaskin opened 7 months ago

pgaskin commented 7 months ago
pgaskin commented 7 months ago

packages

FS kobo11 21908 -> kobo11 22801

FS kobo11 22801 -> kobo12 22801

qrc 21908 -> 22801

libnickel strings 21908 -> 22801

libnickel symbols 21908 -> 22801


see https://github.com/pgaskin/kobopatch-patches/issues/128#issuecomment-2050588806

pgaskin commented 7 months ago

Resource extraction:

go run github.com/pgaskin/qrc/cmd/qrc2zip@latest --output nickel.21908.qInitResources_styles.zip --recursive --verbose nickel 1 26762560 26622584 26750920
go run github.com/pgaskin/qrc/cmd/qrc2zip@latest --output nickel.21908.qInitResources_resources.zip --recursive --verbose nickel 1 21737592 101096 21736112
go run github.com/pgaskin/qrc/cmd/qrc2zip@latest --output nickel.21908.qInitResources_certificates.zip --recursive --verbose nickel 1 26923968 26765808 26919792
go run github.com/pgaskin/qrc/cmd/qrc2zip@latest --output nickel.21908.qInitResources_translations.zip --recursive --verbose nickel 1 26622256 21738816 26621512

Output Diff


https://krc.storage.pgaskin.net/nickel.21908.qInitResources_certificates.zip https://krc.storage.pgaskin.net/nickel.21908.qInitResources_resources.zip https://krc.storage.pgaskin.net/nickel.21908.qInitResources_styles.zip https://krc.storage.pgaskin.net/nickel.21908.qInitResources_translations.zip

jackiew1 commented 7 months ago

@pgaskin I don't see 4.39 on your fw page. How do I get a copy?

pgaskin commented 7 months ago

I'll be adding it once I figure out which device is which, and whether the Tolino install instructions are the same.

jackiew1 commented 7 months ago

OK.

pgaskin commented 7 months ago

I am currently about 90% certain the kobo11 variant of this firmware should be safe to install on older devices, but I'll confirm it myself later today.

Update: Do not install this firmware on older devices until I look into a few things. I found some stuff which may cause nickel to fail to start correctly.

jackiew1 commented 7 months ago

I don't need to actually install 4.39 to be able to make some progress. I just need to be able to extract nickel, libnickel.so.1.0.0 and librmsdk.so.1.0.0, particularly nickel.

pgaskin commented 7 months ago

I'm going to start figuring out which device is which, then I'll take a break until this evening (~5h) since there's some other stuff I need to do.

I don't plan to release the patches for this version until next week at the earliest, even if they're done.

I think we should probably support Tolino, put a note that it's not fully tested, and put comments in the patches which are for only tolino/kobo (I don't think there should bee to many of those).

jackiew1 commented 7 months ago

I should be able to have a good look at nickel in 5 hours. I may not still be awake by the time you resume but I'll add some notes here if there's anything worth saying. 😄

jackiew1 commented 7 months ago

The 4 patchable files seem to be identical in mark11 and mark12. That's a good thing isn't it?

pgaskin commented 7 months ago

Yep

pgaskin commented 7 months ago

0x1624760

codename family id name
monza dragon 00000000-0000-0000-0000-000000000390 Kobo Libra Colour
monzaTolino dragon 00000000-0000-0000-0000-000000000690 tolino vision color
spaBW dragon 00000000-0000-0000-0000-000000000391 Kobo Clara BW
spaColour dragon 00000000-0000-0000-0000-000000000393 Kobo Clara Colour
spaTolinoBW dragon 00000000-0000-0000-0000-000000000691 tolino shine
spaTolinoColour dragon 00000000-0000-0000-0000-000000000693 tolino shine color
pgaskin commented 7 months ago

might be interesting: MR:post-4414049 https://forum-alles--ebook-de.translate.goog/threads/tolino-beta-firmware-zukuenftige-entwicklungen.7830/?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=es&_x_tr_pto=wapp#post-92706

pgaskin commented 7 months ago

libnickel 21908 -> 22801

jackiew1 commented 7 months ago

Throughout nickel CSS:

Based on changes in librmsdk.so.1.0.0 it looks like DefaultSerif & DefaultSansSerif may be mapped to 'Rakuten Serif' & 'Rakuten Sans' respectively.

So far, these are the only nickel patch changes I've had to make to get kobopatch to run without error. Whether the patches still do what they're supposed to do is another matter!

ATM I'm not sure what the best way to support Tolino might be. The change re Tolino and font Bariol is repeated very many times in nickel CSS. Every hard-coding of font-family: Bariol also has [qApp_tolino=true] in the same CSS style.

However some [qApp_tolino=true] styles are used to set a Tolino-specific font-size. I haven't had time yet to assess how that might affect existing patches if we want to include Tolino in the same patch.

I'm glad we've got some extra time available before having to release 4.39 patches.

pgaskin commented 7 months ago

Based on changes in librmsdk.so.1.0.0 it looks like DefaultSerif & DefaultSansSerif may be mapped to 'Rakuten Serif' & 'Rakuten Sans' respectively.

Yes, kobo seems to have revamped the fonts in general (see my earlier content).

Whether the patches still do what they're supposed to do is another matter!

Main thing to look for is tolino overrides in the same CSS file.

ATM I'm not sure what the best way to support Tolino might be

For patches which change the font, remove the tolino override. For patches which don't, add another option to replace that.

However some [qApp_tolino=true] styles are used to set a Tolino-specific font-size. I haven't had time yet to assess how that might affect existing patches if we want to include Tolino in the same patch.

Yeah, tolino seems to use a larger font size by default for many things, including the dictionary. I'll need to look at bariol to figure out whether Kobo thinks German users have impaired vision, or if bariol just looks smaller at the same size.

I think for now, we should just replace it with the Kobo value by removing the tolino override in the font size patches.

pgaskin commented 7 months ago
  /home/patrick/kp/src/kobopatch-patches/src/versions/4.39.22801/nickel.yaml/pgaskin.yaml: Increase size of kepub chapter progress chart: could not apply patch "Increase size of kepub chapter progress chart": line 28: inst 4: ReplaceZlib: not a zlib stream
  /home/patrick/kp/src/kobopatch-patches/src/versions/4.39.22801/nickel.yaml/pgaskin.yaml: Remove forgot pin button from lock screen: could not apply patch "Remove forgot pin button from lock screen": line 20: inst 4: ReplaceZlib: not a zlib stream
  /home/patrick/kp/src/kobopatch-patches/src/versions/4.39.22801/nickel.yaml/jackie_w.yaml: Custom page navigation scrubber: could not apply patch "Custom page navigation scrubber": line 303: inst 4: ReplaceZlib: find string not found in stream ({font-family:Avenir;font-weight:bold;font-style:normal;})
  /home/patrick/kp/src/kobopatch-patches/src/versions/4.39.22801/nickel.yaml/jackie_w.yaml: Customise Header back button: could not apply patch "Customise Header back button": line 383: inst 4: ReplaceZlib: find string not found in stream (#backLabel #label{font-family:Avenir;font-style:normal;font-weight:bold;)
  /home/patrick/kp/src/kobopatch-patches/src/versions/4.39.22801/libadobe.so.yaml/pgaskin.yaml: Remove PDF map widget shown during panning: could not apply patch "Remove PDF map widget shown during panning": line 9: inst 4: ReplaceBytes: could not find specified bytes
  /home/patrick/kp/src/kobopatch-patches/src/versions/4.39.22801/librmsdk.so.1.0.0.yaml/geoffr.yaml: Default ePub sans-serif font (Gill Sans): could not apply patch "Default ePub sans-serif font (Gill Sans)": line 69: inst 3: FindReplaceString: FindBaseAddressString: FindBaseAddress: could not find bytes
  /home/patrick/kp/src/kobopatch-patches/src/versions/4.39.22801/librmsdk.so.1.0.0.yaml/geoffr.yaml: Default ePub serif font (Amasis): could not apply patch "Default ePub serif font (Amasis)": line 42: inst 3: FindReplaceString: FindBaseAddressString: FindBaseAddress: could not find bytes
  /home/patrick/kp/src/kobopatch-patches/src/versions/4.39.22801/libnickel.so.1.0.0.yaml/pgaskin.yaml: Replace adobe page numbers toggle with invert screen: could not apply patch "Replace adobe page numbers toggle with invert screen": line 44: inst 4: ReplaceBytes: could not find specified bytes at offset
  /home/patrick/kp/src/kobopatch-patches/src/versions/4.39.22801/libnickel.so.1.0.0.yaml/pgaskin.yaml: Hide browser from beta features: could not apply patch "Hide browser from beta features": line 82: inst 3: ReplaceBytes: could not find specified bytes
  /home/patrick/kp/src/kobopatch-patches/src/versions/4.39.22801/libnickel.so.1.0.0.yaml/pgaskin.yaml: Allow rotation on all devices: could not apply patch "Allow rotation on all devices": line 406: inst 4: ReplaceBytes: could not find specified bytes at offset
  /home/patrick/kp/src/kobopatch-patches/src/versions/4.39.22801/libnickel.so.1.0.0.yaml/pgaskin.yaml: Customize ComfortLight settings: could not apply patch "Customize ComfortLight settings": line 529: inst 4: ReplaceInt: could not find specified bytes at offset
  /home/patrick/kp/src/kobopatch-patches/src/versions/4.39.22801/libnickel.so.1.0.0.yaml/pgaskin.yaml: Remove line from bottom tab bar: could not apply patch "Remove line from bottom tab bar": line 166: inst 3: ReplaceBytes: could not find specified bytes
  /home/patrick/kp/src/kobopatch-patches/src/versions/4.39.22801/libnickel.so.1.0.0.yaml/geoffr.yaml: Set KePub hyphenation: could not apply patch "Set KePub hyphenation": line 327: inst 3: ReplaceBytes: could not find specified bytes
  /home/patrick/kp/src/kobopatch-patches/src/versions/4.39.22801/libnickel.so.1.0.0.yaml/geoffr.yaml: My 24 line spacing values: could not apply patch "My 24 line spacing values": line 54: inst 9: ReplaceBytes: could not find specified bytes at offset

A bunch more than usual, some expected, most easy, but some will be annoying to update.

Will need to pay extra attention when updating things in places near tolino-specific code.

jackiew1 commented 7 months ago

I think I already fixed these 4:

  /home/patrick/kp/src/kobopatch-patches/src/versions/4.39.22801/nickel.yaml/jackie_w.yaml: Custom page navigation scrubber: could not apply patch "Custom page navigation scrubber": line 303: inst 4: ReplaceZlib: find string not found in stream ({font-family:Avenir;font-weight:bold;font-style:normal;})
  /home/patrick/kp/src/kobopatch-patches/src/versions/4.39.22801/nickel.yaml/jackie_w.yaml: Customise Header back button: could not apply patch "Customise Header back button": line 383: inst 4: ReplaceZlib: find string not found in stream (#backLabel #label{font-family:Avenir;font-style:normal;font-weight:bold;)
  /home/patrick/kp/src/kobopatch-patches/src/versions/4.39.22801/librmsdk.so.1.0.0.yaml/geoffr.yaml: Default ePub sans-serif font (Gill Sans): could not apply patch "Default ePub sans-serif font (Gill Sans)": line 69: inst 3: FindReplaceString: FindBaseAddressString: FindBaseAddress: could not find bytes
  /home/patrick/kp/src/kobopatch-patches/src/versions/4.39.22801/librmsdk.so.1.0.0.yaml/geoffr.yaml: Default ePub serif font (Amasis): could not apply patch "Default ePub serif font (Amasis)": line 42: inst 3: FindReplaceString: FindBaseAddressString: FindBaseAddress: could not find bytes

although the last two will need a patch name change due to 'Amasis' & 'Gill Sans' no longer being relevant. I'll need to test these two quite carefully once I've got a device I can safely update.

jackiew1 commented 7 months ago

The included Bariol font is locked but it (or a version of it) seems to be freely available via the web. It's a sans-serif font with "rounded ends". Quite nice, if a little "thin". Slightly worrisome that the web versions are double the filesize of the Kobo versions so I don't know how good glyph coverage will be.

pgaskin commented 7 months ago

@jackiew1

Based on changes in librmsdk.so.1.0.0 it looks like DefaultSerif & DefaultSansSerif may be mapped to 'Rakuten Serif' & 'Rakuten Sans' respectively.

pgaskin commented 7 months ago

Mostly finished looking at firmware changes.

jackiew1 commented 7 months ago

@jackiew1

Based on changes in librmsdk.so.1.0.0 it looks like DefaultSerif & DefaultSansSerif may be mapped to 'Rakuten Serif' & 'Rakuten Sans' respectively.

  • Device::usingMonotype is true for monza and spa, kobo only

    • When false, DefaultSerif is Rakuten Serif
    • When true, DefaultSerif is Georgia
    • When false, DefaultSans is Rakuten Sans
    • When true, DefaultSans is Avenir Next

How does this work if Georgia and Avenir are no longer listed in fw fonts?

pgaskin commented 7 months ago

How does this work if Georgia and Avenir are no longer listed in fw fonts?

I'm not exactly sure, but this is one of the things I noticed which caused me to change my mind about compatibility with older devices for this update.

I also just tried installing it on my Aura2Ev1 (from 21908), and it's bootlooping. I plan to figure out why, but I'm going to finish the patch updates first.

pgaskin commented 7 months ago

Pushed the initial update. Still quite a bit of work to do (see the commit message and the comment above).

diff so far ```diff diff --git a/4.38.21908/libadobe.so.yaml/pgaskin.yaml b/4.39.22801/libadobe.so.yaml/pgaskin.yaml index 14ee20e..88a1cb6 100644 --- a/4.38.21908/libadobe.so.yaml/pgaskin.yaml +++ b/4.39.22801/libadobe.so.yaml/pgaskin.yaml @@ -6,5 +6,5 @@ Remove PDF map widget shown during panning: - BaseAddress: {Sym: "N3AdobeReader::showMapWidget()"} # tail: N3AdobeReader::updatePanningMap() -> N3AdobeReader::hideMapWidget() # TODO: figure out what broke the plt parsing in kobopatch for libadobe in 18730+ - - ReplaceBytes: {Offset: 80, FindInstBW: 0x1C224, ReplaceInstBW: 0x1B51C} - - ReplaceBytes: {Offset: 192, FindInstBW: 0x1C224, ReplaceInstBW: 0x1B51C} + - ReplaceBytes: {Offset: 80, FindInstBW: 0x1C388, ReplaceInstBW: 0x1B650} + - ReplaceBytes: {Offset: 192, FindInstBW: 0x1C388, ReplaceInstBW: 0x1B650} diff --git a/4.38.21908/libnickel.so.1.0.0.yaml/geoffr.yaml b/4.39.22801/libnickel.so.1.0.0.yaml/geoffr.yaml index 4ea5a07..d1aa564 100644 --- a/4.38.21908/libnickel.so.1.0.0.yaml/geoffr.yaml +++ b/4.39.22801/libnickel.so.1.0.0.yaml/geoffr.yaml @@ -37,118 +37,7 @@ My 10 line spacing values: - ReplaceFloat: {Offset: 0x40, Find: 2.6, Replace: 1.05} - ReplaceFloat: {Offset: 0x48, Find: 2.8, Replace: 1.1} -My 24 line spacing values: - - Enabled: no - - PatchGroup: Line spacing values alternatives - - Description: | - This patch changes the values on the line spacing adjustment slider, - increasing the number of spacing options from 15 to 24, and allowing - much narrower spacing values to be set. - # basically rewrite the entire code starting where values are added: - # save r5, initialise loop counter - - BaseAddress: {Sym: "ReadingSettings::lineHeightScalars() const", Rel: 84} # starting at first QList::append(double const&) - - ReplaceBytes: {Offset: 0, FindInstBLX: {SymPLT: "QList::append(double const&)"}, ReplaceH: 00 00 00 00} # clear out the BLX - - ReplaceBytes: {Offset: 20, FindInstBLX: {SymPLT: "QList::append(double const&)"}, ReplaceH: 00 00 00 00} # clear out the BLX - - ReplaceBytes: {Offset: 0, FindH: 00 00, ReplaceH: A9 46} # mov sb, r5 - - ReplaceBytes: {Offset: 2, FindH: 00 00, ReplaceH: 00 25} # mov r5, #0 - - ReplaceBytes: {Offset: 4, FindH: 6D A3, ReplaceH: ED 00} # lsls r5, r5, #3 - # loop to load 14 vals from new table - - ReplaceBytes: {Offset: 6, FindH: D3 E9, ReplaceH: 20 46} # mov r0, r4 - - ReplaceBytes: {Offset: 8, FindH: 00 23, ReplaceH: 04 A1} # adr r1, #0x10 - - ReplaceBytes: {Offset: 10, FindH: 07 F1, ReplaceH: 29 44} # add r1, r5 - - ReplaceBytes: {Offset: 12, FindH: 80 01 20 46, ReplaceInstBLX: {SymPLT: "QList::append(double const&)"}} - - ReplaceBytes: {Offset: 16, FindH: 61 E9, ReplaceH: 08 35} # add r5, #8 (sizeof(double)) - - ReplaceBytes: {Offset: 18, FindH: 1C 23, ReplaceH: 70 2D} # cmp r5, 112 (14*sizeof(double)) - - ReplaceBytes: {Offset: 20, FindH: 00 00, ReplaceH: F7 D1} # bne #-10 - # jump to the rest of the new code - - ReplaceBytes: {Offset: 22, FindH: 00 00, ReplaceH: 7B E0} # b #250 (356 − (84 + 22)) - - ReplaceBytes: {Offset: 24, FindH: 6A A3 D3 E9, ReplaceInstNOP: true} # unused - # new table: 14 8-aligned doubles - - BaseAddress: {Sym: "ReadingSettings::lineHeightScalars() const", Rel: 112} # right after previous instruction (84 + 24 + 4) - - ReplaceBytes: {Offset: 12, FindInstBLX: {SymPLT: "QList::append(double const&)"}, ReplaceH: 00 00 00 00} # first, clear out the BLXs in the way - - ReplaceBytes: {Offset: 32, FindInstBLX: {SymPLT: "QList::append(double const&)"}, ReplaceH: 00 00 00 00} - - ReplaceBytes: {Offset: 58, FindInstBLX: {SymPLT: "QList::append(double const&)"}, ReplaceH: 00 00 00 00} - - ReplaceBytes: {Offset: 78, FindInstBLX: {SymPLT: "QList::append(double const&)"}, ReplaceH: 00 00 00 00} - - ReplaceBytes: {Offset: 100, FindInstBLX: {SymPLT: "QList::append(double const&)"}, ReplaceH: 00 00 00 00} - - ReplaceBytes: {Offset: 0, FindH: 00 23 07 f1 80 01 20 46, ReplaceH: 00 00 00 00 00 00 F0 3F} # table of 1.0f values, to be replaced later - - ReplaceBytes: {Offset: 8, FindH: 61 E9 1A 23 00 00 00 00, ReplaceH: 00 00 00 00 00 00 F0 3F} - - ReplaceBytes: {Offset: 16, FindH: 67 A3 D3 E9 00 23 07 F1, ReplaceH: 00 00 00 00 00 00 F0 3F} - - ReplaceBytes: {Offset: 24, FindH: 80 01 20 46 61 E9 18 23, ReplaceH: 00 00 00 00 00 00 F0 3F} - - ReplaceBytes: {Offset: 32, FindH: 00 00 00 00 43 F2 33 33, ReplaceH: 00 00 00 00 00 00 F0 3F} - - ReplaceBytes: {Offset: 40, FindH: 4F F0 33 32 C3 F6 F3 73, ReplaceH: 00 00 00 00 00 00 F0 3F} - - ReplaceBytes: {Offset: 48, FindH: 07 F1 80 01 20 46 61 E9, ReplaceH: 00 00 00 00 00 00 F0 3F} - - ReplaceBytes: {Offset: 56, FindH: 16 23 00 00 00 00 5E A3, ReplaceH: 00 00 00 00 00 00 F0 3F} - - ReplaceBytes: {Offset: 64, FindH: D3 E9 00 23 07 F1 80 01, ReplaceH: 00 00 00 00 00 00 F0 3F} - - ReplaceBytes: {Offset: 72, FindH: 20 46 61 E9 14 23 00 00, ReplaceH: 00 00 00 00 00 00 F0 3F} - - ReplaceBytes: {Offset: 80, FindH: 00 00 00 23 00 22 C3 F6, ReplaceH: 00 00 00 00 00 00 F0 3F} - - ReplaceBytes: {Offset: 88, FindH: F8 73 07 F1 80 01 20 46, ReplaceH: 00 00 00 00 00 00 F0 3F} - - ReplaceBytes: {Offset: 96, FindH: 61 E9 12 23 00 00 00 00, ReplaceH: 00 00 00 00 00 00 F0 3F} - - ReplaceBytes: {Offset: 104, FindH: 55 A3 D3 E9 00 23 07 F1, ReplaceH: 00 00 00 00 00 00 F0 3F} - # jump target after table - - BaseAddress: {Sym: "ReadingSettings::lineHeightScalars() const", Rel: 356} # starting right after the second-last QList::append(double const&) - - ReplaceBytes: {Offset: 18, FindInstBLX: {SymPLT: "QList::append(double const&)"}, ReplaceH: 00 00 00 00} # clear the BLX in the way of the last two replacements - # initialise loop counter - - ReplaceBytes: {Offset: 0, FindH: 00 23, ReplaceH: 00 25} # movs r5, #0 - # loop to load 10 vals from old table (CDCC CCCC CCCC F03F 1F85) - - ReplaceBytes: {Offset: 2, FindH: 00 22, ReplaceH: 20 46} # mov r0, r4 - - ReplaceBytes: {Offset: 4, FindH: C4 F2 08 03, ReplaceH: 0F F2 A4 01} # adr.w r1, #168 (old_table_start - (356 + 4) = 524 - 360) - - ReplaceBytes: {Offset: 8, FindH: 07 F1, ReplaceH: 29 44} # add r1, r5 - - ReplaceBytes: {Offset: 10, FindH: 80 01 20 46, ReplaceInstBLX: {SymPLT: "QList::append(double const&)"}} - - ReplaceBytes: {Offset: 14, FindH: 61 E9, ReplaceH: 08 35} # adds r5, #8 (sizeof(double)) - - ReplaceBytes: {Offset: 16, FindH: 02 23, ReplaceH: 50 2D} # cmp r5, #80 (sizeof(double) * 10) - - ReplaceBytes: {Offset: 18, FindH: 00 00, ReplaceH: F6 D1} # bne #-12 (18 - 2) - # restore r5 - - ReplaceBytes: {Offset: 20, FindH: 00 00, ReplaceH: 4D 46} # mov r5, sb - # finished replacements - - BaseAddress: 0 - # - # Replacement value: the number of initial line spacing values to exclude from - # the line spacing slider; minimum 0, maximum 13. E.g. 9 will result in a - # slider with 15 positions, starting from the 10th replace_float value below. - - BaseAddress: {Sym: "ReadingSettings::lineHeightScalars() const", Rel: 86} # starting at first QList::append(double const&) - - ReplaceInt: {Find: 0, Replace: 0} # the value from the MOV instruction at the beginning of this patch - # 24 replacement line spacing values: change these replace_float values to suit - # your device and preferences: - - BaseAddress: {Sym: "ReadingSettings::lineHeightScalars() const", Rel: 112} # beginning of new table from above - - ReplaceFloat: {Offset: 0, Find: 1.0, Replace: 0.75} - - ReplaceFloat: {Offset: 8, Find: 1.0, Replace: 0.78} - - ReplaceFloat: {Offset: 16, Find: 1.0, Replace: 0.8} - - ReplaceFloat: {Offset: 24, Find: 1.0, Replace: 0.82} - - ReplaceFloat: {Offset: 32, Find: 1.0, Replace: 0.84} - - ReplaceFloat: {Offset: 40, Find: 1.0, Replace: 0.86} - - ReplaceFloat: {Offset: 48, Find: 1.0, Replace: 0.88} - - ReplaceFloat: {Offset: 56, Find: 1.0, Replace: 0.9} - - ReplaceFloat: {Offset: 64, Find: 1.0, Replace: 0.92} - - ReplaceFloat: {Offset: 72, Find: 1.0, Replace: 0.94} - - ReplaceFloat: {Offset: 80, Find: 1.0, Replace: 0.96} - - ReplaceFloat: {Offset: 88, Find: 1.0, Replace: 0.98} - - ReplaceFloat: {Offset: 96, Find: 1.0, Replace: 1.0} - - ReplaceFloat: {Offset: 104, Find: 1.0, Replace: 1.02} - - FindBaseAddressHex: CDCC CCCC CCCC F03F 1F85 # beginning of old table - - ReplaceFloat: {Offset: 0, Find: 1.05, Replace: 1.05} - - ReplaceFloat: {Offset: 8, Find: 1.07, Replace: 1.07} - - ReplaceFloat: {Offset: 16, Find: 1.1, Replace: 1.1} - - ReplaceFloat: {Offset: 24, Find: 1.35, Replace: 1.15} - - ReplaceFloat: {Offset: 32, Find: 1.7, Replace: 1.2} - - ReplaceFloat: {Offset: 40, Find: 1.8, Replace: 1.25} - - ReplaceFloat: {Offset: 48, Find: 2.2, Replace: 1.3} - - ReplaceFloat: {Offset: 56, Find: 2.4, Replace: 1.35} - - ReplaceFloat: {Offset: 64, Find: 2.6, Replace: 1.4} - - ReplaceFloat: {Offset: 72, Find: 2.8, Replace: 1.5} - # The first 14 replace_float values above should allow the line spacing to be - # adjusted in increments of one pixel when using a medium sized font on a high - # resolution device. If you use a smaller font size and/or a lower resolution - # device you might find that increasing the slider one step at a time doesn't - # always result in a line spacing increase at each step. In that case, you - # might want to use replacement values that are not quite so close together. - # - # For example: (I use these values on my 758x1024 Glo) - # - # 0.7 0.725 0.75 0.775 0.8 0.825 0.85 0.875 0.9 0.925 0.95 0.975 1.0 1.025 ... - # - # or: (these might better suit the 600x800 Touch) - # - # 0.6 0.633 0.667 0.7 0.733 0.767 0.8 0.833 0.867 9.0 9.33 9.67 1.0 1.025 ... +# TODO(geek1011): My 24 line spacing values Custom left & right margins: - Enabled: no @@ -324,8 +213,8 @@ Set KePub hyphenation: (The publisher can still turn hyphenation off/on in the book's stylesheet.) # == "justify" - - ReplaceBytes: {Base: "KepubBookReader::pageStyleCss(bool)", Offset: 1904, FindInstBLX: {SymPLT: "QString::operator==(QLatin1String) const"}, ReplaceH: 01 20 01 20} # Alternative 1: Always turn KePub hyphenation on -# - ReplaceBytes: {Base: "KepubBookReader::pageStyleCss(bool)", Offset: 1904, FindInstBLX: {SymPLT: "QString::operator==(QLatin1String) const"}, ReplaceH: 00 20 00 20} # Alternative 2: Never turn KePub hyphenation on + - ReplaceBytes: {Base: "KepubBookReader::pageStyleCss(bool)", Offset: 2032, FindInstBLX: {SymPLT: "QString::operator==(QLatin1String) const"}, ReplaceH: 01 20 01 20} # Alternative 1: Always turn KePub hyphenation on +# - ReplaceBytes: {Base: "KepubBookReader::pageStyleCss(bool)", Offset: 2032, FindInstBLX: {SymPLT: "QString::operator==(QLatin1String) const"}, ReplaceH: 00 20 00 20} # Alternative 2: Never turn KePub hyphenation on Force user line spacing in KePubs: - Enabled: no diff --git a/4.38.21908/libnickel.so.1.0.0.yaml/pgaskin.yaml b/4.39.22801/libnickel.so.1.0.0.yaml/pgaskin.yaml index 849549f..931af50 100644 --- a/4.38.21908/libnickel.so.1.0.0.yaml/pgaskin.yaml +++ b/4.39.22801/libnickel.so.1.0.0.yaml/pgaskin.yaml @@ -41,7 +41,7 @@ Replace adobe page numbers toggle with invert screen: See https://github.com/pgaskin/NickelMenu/issues/111 for more information. # Settings page - BaseAddress: "N3SettingsReadingView::N3SettingsReadingView(QWidget*)" - - ReplaceBytes: {Offset: 890, FindInstBLX: {SymPLT: "ReadingSettings::getShowAdobePageNumbers()"}, ReplaceInstBLX: {SymPLT: "FeatureSettings::invertScreen()"}} + - ReplaceBytes: {Offset: 884, FindInstBLX: {SymPLT: "ReadingSettings::getShowAdobePageNumbers()"}, ReplaceInstBLX: {SymPLT: "FeatureSettings::invertScreen()"}} # Settings page controller - BaseAddress: {Sym: "N3SettingsReadingController::showAdobePageNumbersToggled()"} - ReplaceBytes: {Offset: 74, FindInstBLX: {SymPLT: "ReadingSettings::getShowAdobePageNumbers()"}, ReplaceInstBLX: {SymPLT: "FeatureSettings::invertScreen()"}} @@ -80,12 +80,12 @@ Hide browser from beta features: - Description: Hides the built-in browser from beta features. - ReplaceBytes: Base: "N3SettingsExtrasView::N3SettingsExtrasView(QWidget*)" - Offset: 1524 + Offset: 1530 FindInstBLX: {SymPLT: "Device::isParentalControlEnabled() const"} ReplaceH: 4F F0 01 00 - ReplaceBytes: Base: {Sym: "SelectionMenuController::setupMainOptions()"} - Offset: 308 + Offset: 194 FindInstBLX: {SymPLT: "Device::isParentalControlEnabled() const"} ReplaceH: 4F F0 01 00 @@ -164,7 +164,7 @@ Remove line from bottom tab bar: # Instead of setting the minimum size of the QFrame for the line, hide it. - ReplaceBytes: Base: "Ui_MainNavView::setupUi(QWidget*)" - Offset: 326 + Offset: 866 FindInstBLX: {SymPLT: "QWidget::setMinimumSize(int, int)"} ReplaceInstBLX: {SymPLT: "QWidget::hide()"} @@ -391,22 +391,7 @@ Larger Sleep/Power-off timeouts: - ReplaceInt: {Offset: 300, Find: 45, Replace: 83} - ReplaceInt: {Offset: 360, Find: 60, Replace: 165} -Allow rotation on all devices: - - Enabled: no - - Description: | - Enables rotation on all devices. This shows a rotation icon in the status - bar, which shows a menu allowing you to choose between portrait and landscape - when pressed. This icon is only shown on rotatable views (like the reader). - Unlike only the DeveloperSettings ForceAllowLandscape option, this patch - also makes the rotation icon show on the new reader as well. - # Always return true for ForceAllowLandscape: - - ReplaceBytes: {Base: "DevSettings::forceAllowLandscape()", Offset: 54, FindInstBLX: {SymPLT: "QVariant::toBool() const"}, ReplaceH: 4F F0 01 00} - # In ReadingMenuView::ReadingMenuView, replace the value of Device::hasOrientationSensor, - # which is passed to a function to hide/show the rotate icon: - - ReplaceBytes: {Base: "ReadingMenuView::updateReadingMenu()", Offset: 236, FindInstBLX: {SymPLT: "Device::hasOrientationSensor() const"}, ReplaceH: 4F F0 01 00} - # Also fix sizing of popup by doing the same in RotatePopup::RotatePopup, but - # note that this will make the Automatic option show too (and do nothing): - - ReplaceBytes: {Base: "RotatePopup::RotatePopup(QWidget*)", Offset: 190, FindInstBLX: {SymPLT: "Device::hasOrientationSensor() const"}, ReplaceH: 4F F0 01 00} +# TODO(geek1011): Allow rotation on all devices Don't uppercase header/footer text: - Enabled: no @@ -507,65 +492,7 @@ Swap reading header/footer: # Note: The "Enable advanced settings for all fonts" patch is no longer # necessary since the advanced font settings are now available for all fonts. -Customize ComfortLight settings: - - Enabled: no - - Description: | - Change the times available in the ComfortLight bedtime dropdown and the - start/end times for the color changes. All values in this patch are - customizable. - - The default values for this patch give you 21 options between 5PM and 3AM - at 30 minute intervals, with the colour change starting at 4PM, and the - change back to blue between 5AM and 7AM. The firmware default is 13 options - between 9PM-3AM at 30 minute intervals, with the transition starting at 6PM. - ## - # In an unnamed subroutine two layers into FrontLightPopupController::loadView - # (find it by going back from QTime::addSecs), the times for the dropdown are - # generated into a QVector> with a simple loop. - - BaseAddress: 0xE82E2C # find the base of the unnamed subroutine with the x-ref to _ZN5QTimeC1Eiiii - # - # Change the initial hour / first bedtime dropdown item passed to the QTime - # constructor (mov r1, #21): - - ReplaceInt: {Offset: 22, Find: 21, Replace: 17} # 21:00 (9PM) -> 17:00 (5PM) - # - # Optional: Change the increment passed to QTime::addSecs (you need to use an - # ARM assembler to change this value): - - ReplaceBytes: {Offset: 122, FindH: 4F F4 E1 61, ReplaceH: 4F F4 E1 61} # mov.w r1, #1800: 30m - # - # Change the number of increments / bedtime dropdown options (start at the - # initial time, add this number -1 more items with the above increment each - # time) (movs r5, #13): - - ReplaceInt: {Offset: 78, Find: 13, Replace: 21} # 13 [9PM..3AM]+30m -> 21 [5PM..3AM]+30m - # - # Change the number of pre-allocated elements (I don't think this is actually - # required, as Qt will realloc as necessary, but we might as well do this just - # in case) (mov r1, #21): - - ReplaceInt: {Offset: 696, Find: 13, Replace: 21} # same as prev replacement - ## - # The actual color adjustment is done in BedtimeManager::adjustTemperature. - # The color temperature is based on the current time, the bedtime, the hardcoded - # sunset, the hardcoded sunrise start, the hardcoded sunrise end, the daytime - # temperature, and the nighttime temperature. - - BaseAddress: "BedtimeManager::adjustTemperature()" - # - # Change the sunset time (the transition to a warmer temperature starts here - # and transitions until the bedtime chosen) (this should be 1-3 hours before - # the minimum bedtime from the first replacement above) (mov r1, #18): - - ReplaceInt: {Offset: 228, Find: 18, Replace: 16} # 18:00 (9PM-3=6PM) -> 16:00 (5PM-1=4PM) - # - # Change the time for the sunset timer to fire at (this is passed to a QTime - # constructor which is passed to PowerTime::fireAt) (mov r1, #18): - - ReplaceInt: {Offset: 508, Find: 18, Replace: 16} # should match the sunset time above - # - # Optional: Change the sunrise start time (the transition back to a cooler - # temperature starts here) (this should be sometime after the last bedtime, - # but before the sunset time) (mov r1, #5): - - ReplaceInt: {Offset: 262, Find: 5, Replace: 5} # 5AM - # - # Optional: Change the sunrise end time (the transition back to a cooler - # temperature ends here) (this should be 1-3 hours after the sunrise start but - # before the sunset time or bad things will happen with negative values) (mov r1, #7): - - ReplaceInt: {Offset: 208, Find: 7, Replace: 7} # 5AM+2=7AM +# TODO(geek1011): Customize ComfortLight settings # The following patches allow you to enable a config file option with a patch. diff --git a/4.38.21908/librmsdk.so.1.0.0.yaml/geoffr.yaml b/4.39.22801/librmsdk.so.1.0.0.yaml/geoffr.yaml index cd4d608..916fcb2 100644 --- a/4.38.21908/librmsdk.so.1.0.0.yaml/geoffr.yaml +++ b/4.39.22801/librmsdk.so.1.0.0.yaml/geoffr.yaml @@ -17,59 +17,9 @@ Disable orphans/widows avoidance: FindH: E6 D0 ReplaceH: E6 E7 -Default ePub serif font (Amasis): - - Enabled: no - - Description: | - This patch changes the default ePub serif font from Georgia to Amasis. - If the book's stylesheet specifies the generic 'font-family:serif;' then - the ePub reader will try to use the built-in system font Georgia. - Georgia is also the font you see if you select 'Publisher Default' from - the Kobo [Aa] menu and your epub has not specified any particular font. - This patch allows you to change the default to a different serif font - (built-in or sideloaded). - N.B. This patch does not affect kepubs. - - # fw 4.32.19501: The font-family name in Replace: must now be the WHOLE name - # not just the first few characters of the name. - # To use a different font, change "Amasis" in each replacement string - # to another font name (7 characters max). - # For example, change "Amasis" to "Bitter" to use a sideloaded Bitter font. - # - # If your new font name is longer than 7 chars you would need to: - # - Use a font editor to shorten the internal font-family name to <= 7 chars - # - Rename the 4 font filenames to match the new shortened name - # - Copy the 4 renamed font files into the Kobo sideloaded fonts folder - - FindReplaceString: {Find: "/normal/Georgia", Replace: "/normal/Amasis"} - - FindReplaceString: {Find: "/bold/Georgia", Replace: "/bold/Amasis"} - - FindReplaceString: {Find: "/italic/Georgia", Replace: "/italic/Amasis"} - - FindReplaceString: {Find: "/bolditalic/Georgia", Replace: "/bolditalic/Amasis"} +# TODO(geek1011): Default ePub serif font (Amasis) -Default ePub sans-serif font (Gill Sans): - - Enabled: no - - Description: | - This patch changes the default ePub sans-serif font from - 'Avenir Next' to 'Gill Sans'. - If the book's stylesheet specifies the generic 'font-family:sans-serif;' then - the ePub reader will try to use the built-in system font 'Avenir Next'. - This patch allows you to change the default to a different sans-serif font - (built-in or sideloaded). - N.B. This patch does not affect kepubs. - - # fw 4.32.19501: The font-family name in Replace: must now be the WHOLE name - # not just the first few characters of the name. - # To use a different font, change "Gill%20Sans" in each replacement string - # to another font name (13 characters max). - # For example change "Gill%20Sans" to "Trebuchet" to use a sideloaded Trebuchet font. - # The 3-char string, %20, represents a single space in the font-family name. - # - # If your new font name is longer than 13 chars you would also need to: - # - Use a font editor to shorten the internal font-family name to <= 13 chars - # - Rename the 4 font filenames to match the new shortened name - # - Copy the 4 renamed font files into the Kobo sideloaded fonts folder - - FindReplaceString: {Find: "/normal/Avenir%20Next", Replace: "/normal/Gill%20Sans"} - - FindReplaceString: {Find: "/bold/Avenir%20Next", Replace: "/bold/Gill%20Sans"} - - FindReplaceString: {Find: "/italic/Avenir%20Next", Replace: "/italic/Gill%20Sans"} - - FindReplaceString: {Find: "/bolditalic/Avenir%20Next", Replace: "/bolditalic/Gill%20Sans"} +# TODO(geek1011): Default ePub sans-serif font (Gill Sans) Default ePub symbol font (Symbol): - Enabled: no diff --git a/4.38.21908/nickel.yaml/jackie_w.yaml b/4.39.22801/nickel.yaml/jackie_w.yaml index ddc81e3..29d33f5 100644 --- a/4.38.21908/nickel.yaml/jackie_w.yaml +++ b/4.39.22801/nickel.yaml/jackie_w.yaml @@ -290,100 +290,9 @@ Custom header/footer captions: - {Find: "#caption[localeName=\"zh-HK\"] {\n font-family: Sans-SerifZH-Traditional, sans-serif;\n font-style: normal;\n}\n", Replace: "\n"} - {Find: "#caption[localeName=\"zh-TW\"] {\n font-family: Sans-SerifZH-Traditional, sans-serif;\n font-style: normal;\n}\n", Replace: "\n"} -Custom page navigation scrubber: - - Enabled: no - - Description: | - This patch allows you to customise various parts of the new 'scrubber'. Full details & screenshots at: - https://www.mobileread.com/forums/showpost.php?p=3897174&postcount=3 - N.B: This patch is not suitable for Japanese/Chinese locale users - fw 4.32.19501 Kobo's major changes to font handling mean that ability to customise - font-family in a kobopatch is now very limited. - - FindZlib: "#scrubberContainer" # qss/ReadingMenuScrubberView.qss - - ReplaceZlibGroup: - Replacements: - # Part 1. Customise all 3 of these buttons - # - Left & Right 'Back to page nnn' (#revertLeft, #revertRight) - # - Current chapter name (#chapter) - - # 1a. Customise font-size for desired model(s): - # Touch/Mini (Trilogy) - - Find: "[qApp_deviceIsTrilogy=true] {\n font-size: 19px;" - Replace: "[qApp_deviceIsTrilogy=true] {\n font-size: 19px;" - # Glo/Aura/Aura2/Nia (Phoenix) - - Find: "[qApp_deviceIsPhoenix=true] {\n font-size: 23px;" - Replace: "[qApp_deviceIsPhoenix=true] {\n font-size: 23px;" - # AuraHD/AuraH2O/AuraH202 (Dragon) - - Find: "[qApp_deviceIsDragon=true] {\n font-size: 29px;" - Replace: "[qApp_deviceIsDragon=true] {\n font-size: 29px;" - # GloHD (Alyssum) - - Find: "[qApp_deviceIsAlyssum=true] {\n font-size: 32px;" - Replace: "[qApp_deviceIsAlyssum=true] {\n font-size: 32px;" - # ClaraHD/Clara2E (Nova) - - Find: "[qApp_deviceIsNova=true] {\n font-size: 32px;" - Replace: "[qApp_deviceIsNova=true] {\n font-size: 32px;" - # LibraH2O/Libra2 (Storm) - - Find: "[qApp_deviceIsStorm=true] {\n font-size: 34px;" - Replace: "[qApp_deviceIsStorm=true] {\n font-size: 34px;" - # AuraOne/Forma/Sage/Elipsa/Elipsa2E (Daylight) - - Find: "[qApp_deviceIsDaylight=true] {\n font-size: 37px;" - Replace: "[qApp_deviceIsDaylight=true] {\n font-size: 37px;" - - # 1b. Customise other font properties of these 3 buttons (all models): - # - font-family. The only custom font-family values now likely to have any effect - # are Georgia, Avenir and possibly(?) some of the built-in CJK fonts - # - font-weight (bold or normal) - # - font-style (italic or normal) - - Find: "{\n font-family: Avenir;\n font-weight: bold;\n font-style: normal;\n}" - Replace: "{font-family:Avenir; font-weight:bold; font-style:normal;}" - # Users with CSS knowledge can add extra style properties as desired, - # e.g. to make them look more like buttons and less like labels, - # use this Replace instead. If it can be done with CSS you can do it here. - #Replace: "{font-family:Avenir; font-weight:normal; font-style:normal; background-color:#ddd;}" +# TODO(jackie_w): Custom page navigation scrubber - # Part 2. Customise the central 'Page x of y' label (#page) - # Provided for those who want to create a uniform look & feel - # 2a. Customise font-size for desired model(s): - # Touch/Mini (Trilogy) - - Find: "#page[qApp_deviceIsTrilogy=true] {\n font-size: 17px;" - Replace: "#page[qApp_deviceIsTrilogy=true] {\n font-size: 17px;" - # Glo/Aura/Aura2/Nia (Phoenix) - - Find: "#page[qApp_deviceIsPhoenix=true] {\n font-size: 22px;" - Replace: "#page[qApp_deviceIsPhoenix=true] {\n font-size: 22px;" - # AuraHD/AuraH2O/AuraH202 (Dragon) - - Find: "#page[qApp_deviceIsDragon=true] {\n font-size: 26px;" - Replace: "#page[qApp_deviceIsDragon=true] {\n font-size: 26px;" - # GloHD (Alyssum) - - Find: "#page[qApp_deviceIsAlyssum=true] {\n font-size: 30px;" - Replace: "#page[qApp_deviceIsAlyssum=true] {\n font-size: 30px;" - # ClaraHD/Clara2E (Nova) - - Find: "#page[qApp_deviceIsNova=true] {\n font-size: 30px;" - Replace: "#page[qApp_deviceIsNova=true] {\n font-size: 30px;" - # LibraH2O/Libra2 (Storm) - - Find: "#page[qApp_deviceIsStorm=true] {\n font-size: 30px;" - Replace: "#page[qApp_deviceIsStorm=true] {\n font-size: 30px;" - # AuraOne/Forma/Sage/Elipsa/Elipsa2E (Daylight) - - Find: "#page[qApp_deviceIsDaylight=true] {\n font-size: 34px;" - Replace: "#page[qApp_deviceIsDaylight=true] {\n font-size: 34px;" - - # 2b. Customise other font properties of 'Page x of y' label (all models) - # e.g. text-transform (uppercase or none) - # font-family, font-weight, font-style, etc. - # Un-comment next 2 lines and change Replace CSS as desired - #- Find: "#page {\n padding-left: 0px;\n}" - # Replace: "#page {padding-left:0px; font-family:Georgia; text-transform:none;}" - -Customise Header back button: - - Enabled: no - - Description: | - Customise in-book button (top left corner) for 'Back to Home', 'Back to My Books' etc - fw 4.32.19501 Kobo's major changes to font handling mean that ability to customise - font-family in a kobopatch is now very limited. - - FindZlib: "#ReadingMenuView" # qss/ReadingMenuView.qss - - ReplaceZlibGroup: - Replacements: - # 'Back to Home' button un-bolded - - Find: "#backLabel #label {\n font-family: Avenir;\n font-style: normal;\n font-weight: bold;" - Replace: "#backLabel #label {\n font-family:Avenir;\n font-style:normal;\n font-weight:normal;" +# TODO(jackie_w): Customise Header back button Series list increase cover thumbnails: - Enabled: no diff --git a/4.38.21908/nickel.yaml/pgaskin.yaml b/4.39.22801/nickel.yaml/pgaskin.yaml index 1dc4c77..1660f63 100644 --- a/4.38.21908/nickel.yaml/pgaskin.yaml +++ b/4.39.22801/nickel.yaml/pgaskin.yaml @@ -15,7 +15,7 @@ Remove forgot pin button from lock screen: Removes the Forgot PIN -> Sign Out button from the lock screen. If this is enabled and you forget your pin, you will need to hard reset your Kobo. - - BaseAddress: 0x1972E04 # qss/PinCodeInputDialog.qss + - BaseAddress: 0x1C09CE3 # qss/PinCodeInputDialog.qss - ReplaceZlib: Find: "#lblForgotPin[qApp_deviceIsDragon=true],\n#lblSignOut[qApp_deviceIsDragon=true] {\n font-size: 26px;\n}" Replace: "#lblForgotPin,#lblSignOut{qproperty-visible:false;}" @@ -23,7 +23,7 @@ Remove forgot pin button from lock screen: Increase size of kepub chapter progress chart: - Enabled: no - Description: Originally by oren64, rewritten for 4.16.13337 by pgaskin (geek1011). - - BaseAddress: 0x196E0F6 # qss/ReadingMenuStatsView.qss + - BaseAddress: 0x1C02490 # qss/ReadingMenuStatsView.qss - ReplaceZlibGroup: Replacements: # Top padding is already set to 15px, 25px, 33px, vertical aligned to middle. ```
AaronDewes commented 7 months ago

Some information regarding Tolino's API: The bosh API is deprecated and is being replaced with a new API: https://api.pageplace.de and https://api.prodref.pageplace.de for the dev version.

Here's the current tolino API config:

BASE_API_URL=https://api.pageplace.de
CONFIG_URL=https://api.pageplace.de/v1/resellers
FTU_COUNTRIES_RESELLERS_URL=https://api.pageplace.de/v1/reseller-group/devices
FTU_REPORTING_SELECTED_RESELLER_URL=https://api.pageplace.de/v1/client-metrics/reseller-selection
UPDATE_CHECK_URL=https://api.pageplace.de/v1/devices/versioncheck
HOTSPOT_NETDATA_URL=https://api.pageplace.de/v1/devices/netdata
PING_URL=https://api.pageplace.de/online-check?responseStatus=204
BOSH_TIME_URL=https://api.pageplace.de/v1/server-time
INVENTORY_URL=https://api.pageplace.de
FAMILY_URL=https://api.pageplace.de
FAMILY_RESELLERS_URL=https://api.pageplace.de/v1/reseller-group/family/resellers
FEEDBACK_URL=https://api.pageplace.de/v1/feedback
LOST_DATA_RECOVERY_URL=https://bosh.pageplace.de/bosh/rest/admin/v1/usercontentrecovery
RECOMMENDATIONS_URL=https://api.pageplace.de/v2/recommendations

So for most cases, bosh is no longer used at Tolino (The bosh API was different from this).

Weirdly, Kobo seems to only use Bosh, even though Tolino replaced it a few version ago.

AaronDewes commented 7 months ago

Homepage is https://duckduckgo.com/?ka=1 instead of https://www.google.com or whatever the affiliate default is

Does this mean duckduckgo is hardcoded or affiliates can still overwrite it? On current Tolinos, the affiliates have the ability to replace it.

pgaskin commented 7 months ago

Affiliates can still overwrite it.

jackiew1 commented 7 months ago

@pgaskin My recent commit for update to patch Custom collection/author header title font was supposed to reference this issue but I forgot. Sorry.

jackiew1 commented 7 months ago

@pgaskin Having spent more time looking at all the changes, this is my current plan for your consideration:

ETA: 4.39 doesn't seem to distinguish between Tolino Shine and Tolino Vision for font-size. It's literally one-size-fits-all.

AaronDewes commented 7 months ago

If/when necessary do a 2nd pass to add corresponding Tolino font-size customisations to nickel.yaml patches which already offer Kobo font-size customisations. Ideally I'd prefer to work with a volunteer Tolino beta-tester who's keen to help bring kobopatch to the Tolino community.

The new Tolino with Kobo firmware will only release at the beginning of May, but I'd be happy to help testing, as well as translating some stuff.

jackiew1 commented 7 months ago

If/when necessary do a 2nd pass to add corresponding Tolino font-size customisations to nickel.yaml patches which already offer Kobo font-size customisations. Ideally I'd prefer to work with a volunteer Tolino beta-tester who's keen to help bring kobopatch to the Tolino community.

The new Tolino with Kobo firmware will only release at the beginning of May, but I'd be happy to help testing, as well as translating some stuff.

Thanks very much for volunteering 😄 Which Tolino model do you (or will you) have?

Are you contactable via MobileRead or just here at GitHub?

AaronDewes commented 7 months ago

If/when necessary do a 2nd pass to add corresponding Tolino font-size customisations to nickel.yaml patches which already offer Kobo font-size customisations. Ideally I'd prefer to work with a volunteer Tolino beta-tester who's keen to help bring kobopatch to the Tolino community.

The new Tolino with Kobo firmware will only release at the beginning of May, but I'd be happy to help testing, as well as translating some stuff.

Thanks very much for volunteering 😄 Which Tolino model do you (or will you) have?

Are you contactable via MobileRead or just here at GitHub?

Just GitHub so far, but I'll sign up on MobileRead later.

I'm planning to order a shine color. I'm also active on some German tolino forums (I was previously modding & reverse engineering the older Tolinos) and can probably get some people on there to test too,also on the older models once/if Tolino starts switching from Android to Kobo's OS (They're preparing that in their beta firmware, although I don't have up-to-date builds to see how far they got).

jackiew1 commented 7 months ago

Yeah, tolino seems to use a larger font size by default for many things, including the dictionary. I'll need to look at bariol to figure out whether Kobo thinks German users have impaired vision, or if bariol just looks smaller at the same size.

I've been watching some of the YouTube early review videos. Looking at the HomeScreen and Tabs it looks like the sans-serif font used on the Tabs may be Bariol. So maybe DefaultSansSerif is also Bariol, even on Kobos?

[ETA: Hmm. Just seen a different video and now I'm not so sure. I wonder if the review devices have different fws depending on how long ago the reviewer received it?]

Also, if the version of Bariol I found on the internet is similar to what will be shipped in Kobo fw I think you can stop worrying about German users and possible impaired vision. 😄 It's simply a font which displays much smaller at the same font-size than something like Georgia or Caecilia.

NiLuJe commented 7 months ago
  • MTKMonzaDeviceConfig:: supportsEclipseWaveform supportsHWDithering touchFirmwareVersion touchHardwareVersion usbProductId (TODO: get values)

  • MTKSpaDeviceConfig:: supportsEclipseWaveform supportsHWDithering touchFirmwareVersion touchHardwareVersion usbProductId (TODO: get values)

Seems to be 0x4237 for everything (which is... mildly strange), unless I missed something?

jackiew1 commented 7 months ago
  • MTKMonzaDeviceConfig:: supportsEclipseWaveform supportsHWDithering touchFirmwareVersion touchHardwareVersion usbProductId (TODO: get values)
  • MTKSpaDeviceConfig:: supportsEclipseWaveform supportsHWDithering touchFirmwareVersion touchHardwareVersion usbProductId (TODO: get values)

Seems to be 0x4237 for everything (which is... mildly strange), unless I missed something?

Haven't seen you for ages. Have you got a secret new project? 😄

Yes, the shared product id caused a minor kerfuffle for the calibre driver. Hopefully querying the .kobo/version file instead will do the necessary.

On a different colour-related subject ... ages ago you shared some calibre code to maximise the quality of grayscale thumbnails/screensavers. Do you have any thoughts about potential for improving colour equivalents?

NiLuJe commented 7 months ago

Haven't seen you for ages. Have you got a secret new project? 😄

Nah, IRL just got busier than expected ;).

Yes, the shared product id caused a minor kerfuffle for the calibre driver. Hopefully querying the .kobo/version file instead will do the necessary.

Ah. Didn't expect people to have already gotten their hands on some and bothered calibre with it, should have checked that.

Yeah, assuming they don't reintroduce something like what happened in 4.35 with devices sharing a PCB IDs (which appears to be the case for the B&W/Color pairs...), the Nickel version tag ought to be accurate.

NiLuJe commented 7 months ago

Do you have any thoughts about potential for improving colour equivalents?

That's going to be annoying, yeah.

I suspect we'll need to blow up saturation like crazy (which probably explains why they started shipping openCV). I expect dithering to be supported on device by the MDP, though, so there's that, at least.

The only prior experience with this I've had is on PocketBook, where if you don't let InkView (the PB middleware) pre-process the images, you end up with a pretty underwhelming result (not that it's particularly great when you do, but I digress... ;p).

The good news is that, as far as calibre is concerned, this should be a non-issue, as I expect Nickel to be doing that on-device, and, IIRC, the driver has a setting that lets Nickel generates all the thumbnails (or did I dream that one up?).

jackiew1 commented 7 months ago

Ah. Didn't expect people to have already gotten their hands on some and bothered calibre with it, should have checked that.

I think "people" is restricted to a single Libra Colour user who accidentally received their new toy ridiculously early. Unless it all happened via PM they didn't appear to be particularly helpful in supplying useful info but they did go so far as to say that their device connected successfully to calibre using the incomplete beta driver. I hope the updated driver will be OK for all 3 devices. Time will tell.

jackiew1 commented 7 months ago

The good news is that, as far as calibre is concerned, this should be a non-issue, as I expect Nickel to be doing that on-device, and, IIRC, the driver has a setting that lets Nickel generates all the thumbnails (or did I dream that one up?).

The calibre KOBOTOUCH driver lets users choose whether or not to let calibre create and send all the correctly-sized thumbnails/screensavers (Colour vs. B&W, pre-optimised grayscale or not, pre-letterboxed or not). But I think you wrote most of that. 😄 My memory is that you felt quite strongly, at the time, that it was better to let calibre do as much of the B&W image manipulation as possible rather than leaving it all up to the Kobo. I really hope that's true, if not I've misrepresented you on MR in the last few days. 😊

To the best of my knowledge the following is true ... if the user opts to not let calibre send all the thumbnails then the device extracts the page 1 cover as the basis for creating all the required thumbnails. They are only created as required, so if you page through the booklist it can be a slow process populating the GUI with images after the initial book transfer.

Are you saying that with colour it might be better to let the Kobo do all the image manipulation work itself?

NiLuJe commented 7 months ago

But I think you wrote most of that. 😄 My memory is that you felt quite strongly, at the time, that it was better to let calibre do as much of the B&W image manipulation as possible rather than leaving it all up to the Kobo. I really hope that's true, if not I've misrepresented you on MR in the last few days. 😊

Yup. Nickel got better at it over the years, but for B&W, I still stand by that (i.e., properly dithered B&W PNGs).

They are only created as required.

Yup; it's not terrible on modern devices, though.

Are you saying that with colour it might be better to let the Kobo do all the image manipulation work itself?

That's what I expect, yeah. We'll have to see how it actually fares, but I have very low expectations of the Kaleido tech without heavily pre-processed images from what I've seen on PB ;p.

NiLuJe commented 7 months ago

the device extracts the page 1 cover as the basis for creating all the required thumbnails.

Or, well, the actual cover (as per ePub 2/3 metadata) for properly authored books.

I don't remember if what happens otherwise (or for PDFs) as a fallback is the "render page 1" option, or just "create a synthetic text cover" (which is something that does happen as a placeholder during thumbnail generation, at least).

jackiew1 commented 7 months ago

I just did some quick tests. You're probably right that the actual cover is extracted from kepub, if it's found, but if not, page 1 is extracted. For standard epub it's always extracted as a rendering of page 1, no matter whether it's epub2 or epub3, even if the epub3 has the correct cover-image property in the OPF. PDF looks like it's the same as epub.

pgaskin commented 7 months ago

And now we have to fix NickelHook too...

Desterly commented 7 months ago

My Libre Colour showed up today. Only thing I have loaded on it right now is NickleClock (works no problems) so let me know if you need anything off of it to help

sparajoy1 commented 6 months ago

hey all! i've been keeping up some local manually edited copies of kobopatch for the two new firmwares (.39.22801 and .22861), I don't have everything 100% working but if it would be helpful I could open a branch with my mods on it, or else help commit some updates here?

pgaskin commented 6 months ago

There's some WIP stuff in here. The details of what needs to be done are here. I still need to look at 4.39.22861 as well.

Feel free to open PRs for each patch you've updated for 22801 if it hasn't already been done, and I'll take a look.

We are currently very busy with other things, but I hope to get the patches updated and released sometime in the next week or two, then I'll be working on NickelMenu.

pgaskin commented 5 months ago

Update: I've been busy for the last month, but I hope to get to this on the weekend if I have time.