pgaskin/kobopatch-patches

Patches for 4.37.21533

pgaskin opened this issue · 8 comments

Resource extraction:

./qrc2zip --output "nickel.21533.qInitResources_styles.zip"       --recursive --verbose "nickel" 1 26572336 26432288 26560696 || exit 1
./qrc2zip --output "nickel.21533.qInitResources_resources.zip"    --recursive --verbose "nickel" 1 21580752   101096 21579424 || exit 1
./qrc2zip --output "nickel.21533.qInitResources_certificates.zip" --recursive --verbose "nickel" 1 26733744 26575584 26729568 || exit 1
./qrc2zip --output "nickel.21533.qInitResources_translations.zip" --recursive --verbose "nickel" 1 26431960 21581792 26431216 || exit 1
Output

https://gist.github.com/pgaskin/87e57940310071b1ee118c11f34691df

$ git diff --no-index 21095 21533

https://gist.github.com/pgaskin/0cc385838abda7bb026e14b434150728


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

  /home/patrick/kp/src/kobopatch-patches/src/versions/4.37.21533/libnickel.so.1.0.0.yaml/geoffr.yaml: Custom Sleep/Power-off timeouts: could not apply patch "Custom Sleep/Power-off timeouts": line 312: inst 13: ReplaceInt: could not find specified bytes at offset
  /home/patrick/kp/src/kobopatch-patches/src/versions/4.37.21533/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.37.21533/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.37.21533/libnickel.so.1.0.0.yaml/pgaskin.yaml: Larger Sleep/Power-off timeouts: could not apply patch "Larger Sleep/Power-off timeouts": line 388: inst 16: ReplaceInt: could not find specified bytes at offset
  /home/patrick/kp/src/kobopatch-patches/src/versions/4.37.21533/libnickel.so.1.0.0.yaml/pgaskin.yaml: Customize ComfortLight settings: could not apply patch "Customize ComfortLight settings": line 535: inst 4: ReplaceInt: could not find specified bytes at offset
  /home/patrick/kp/src/kobopatch-patches/src/versions/4.37.21533/libnickel.so.1.0.0.yaml/pgaskin.yaml: Swap reading header/footer: could not apply patch "Swap reading header/footer": line 483: inst 4: ReplaceBytes: could not find specified bytes at offset

Quite a bit more than usual, and this one will need extra testing.

Resource diff doesn't look relevant to @jackiew1, but may be slightly interesting to @shermp wrt the reading header size adjustments.

Released: v81, MR:thread-354676.

$ git diff v81:src/versions/4.36.21095 v81:src/versions/4.37.21533
diff --git a/libnickel.so.1.0.0.yaml/geoffr.yaml b/libnickel.so.1.0.0.yaml/geoffr.yaml
index d997055..d14f644 100644
--- a/libnickel.so.1.0.0.yaml/geoffr.yaml
+++ b/libnickel.so.1.0.0.yaml/geoffr.yaml
@@ -306,22 +306,13 @@ Custom Sleep/Power-off timeouts:
   - ReplaceString: {Offset: 32, Find: "45 mins",  Replace: "2 hours"}
   - ReplaceString: {Offset: 38, Find: "60 mins",  Replace: "4 hours"}
     # Replace values MOVed then added to the list in N3SettingsPowerView::initChoices:
-    # Actual values used for sleep menu
-  - BaseAddress: {Sym: "N3SettingsPowerView::initChoices()", Rel: 12}
-  - ReplaceInt:  {Offset:   0, Find: 5,  Replace:  10}
-  - ReplaceInt:  {Offset:  88, Find: 10, Replace:  20}
-  - ReplaceInt:  {Offset: 148, Find: 15, Replace:  30}
-  - ReplaceInt:  {Offset: 208, Find: 30, Replace:  60}
-  - ReplaceInt:  {Offset: 268, Find: 45, Replace: 120}
-  - ReplaceInt:  {Offset: 328, Find: 60, Replace: 240}
-    # Actual values used for power menu
-  - BaseAddress: {Sym: "N3SettingsPowerView::initChoices()", Rel: 466}
-  - ReplaceInt:  {Offset:   0, Find: 5,  Replace:  10}
-  - ReplaceInt:  {Offset:  60, Find: 10, Replace:  20}
-  - ReplaceInt:  {Offset: 118, Find: 15, Replace:  30}
-  - ReplaceInt:  {Offset: 176, Find: 30, Replace:  60}
-  - ReplaceInt:  {Offset: 234, Find: 45, Replace: 120}
-  - ReplaceInt:  {Offset: 290, Find: 60, Replace: 240}
+  - BaseAddress: "N3SettingsPowerView::initChoices()"
+  - ReplaceInt: {Offset:  56, Find:  5, Replace:   10}
+  - ReplaceInt: {Offset: 118, Find: 10, Replace:   20}
+  - ReplaceInt: {Offset: 180, Find: 15, Replace:   30}
+  - ReplaceInt: {Offset: 240, Find: 30, Replace:   60}
+  - ReplaceInt: {Offset: 300, Find: 45, Replace:  120}
+  - ReplaceInt: {Offset: 360, Find: 60, Replace:  240}
 
 Set KePub hyphenation:
   - Enabled: no
diff --git a/libnickel.so.1.0.0.yaml/pgaskin.yaml b/libnickel.so.1.0.0.yaml/pgaskin.yaml
index cdbbf48..df5cc02 100644
--- a/libnickel.so.1.0.0.yaml/pgaskin.yaml
+++ b/libnickel.so.1.0.0.yaml/pgaskin.yaml
@@ -349,7 +349,7 @@ Larger Sleep/Power-off timeouts:
   - PatchGroup: Sleep/Power-off timeouts
   - Description: |
       Increase the available sleep/power-off timeouts to larger values (up to a
-      few weeks). To customize this patch, see https://pgaskin.net/kobopatch-patches/lgrpwroff-15505.html .
+      few weeks). To customize this patch, see https://pgaskin.net/kobopatch-patches/lgrpwroff-21533.html .
 
       IMPORTANT - Although this patch has been tested by multiple users and
       confirmed to be working, the interaction between the RTC timer and Nickel
@@ -383,19 +383,13 @@ Larger Sleep/Power-off timeouts:
   - ReplaceString: {Offset: 32, Find: "45 mins",  Replace: "12h5m"}
   - ReplaceString: {Offset: 38, Find: "60 mins",  Replace: "24h1m"}
   # Values (see https://www.mobileread.com/forums/showpost.php?p=3887105)
-  - FindBaseAddressSymbol: "N3SettingsPowerView::initChoices()"
-  - ReplaceInt: {Offset:  11, Find:  5, Replace:   1}
-  - ReplaceInt: {Offset: 465, Find:  5, Replace:   1}
-  - ReplaceInt: {Offset:  99, Find: 10, Replace:   4}
-  - ReplaceInt: {Offset: 525, Find: 10, Replace:   4}
-  - ReplaceInt: {Offset: 159, Find: 15, Replace:   7}
-  - ReplaceInt: {Offset: 583, Find: 15, Replace:   7}
-  - ReplaceInt: {Offset: 219, Find: 30, Replace:  28}
-  - ReplaceInt: {Offset: 641, Find: 30, Replace:  28}
-  - ReplaceInt: {Offset: 279, Find: 45, Replace:  83}
-  - ReplaceInt: {Offset: 699, Find: 45, Replace:  83}
-  - ReplaceInt: {Offset: 339, Find: 60, Replace: 165}
-  - ReplaceInt: {Offset: 755, Find: 60, Replace: 165}
+  - BaseAddress: "N3SettingsPowerView::initChoices()"
+  - ReplaceInt: {Offset:  56, Find:  5, Replace:   1}
+  - ReplaceInt: {Offset: 118, Find: 10, Replace:   4}
+  - ReplaceInt: {Offset: 180, Find: 15, Replace:   7}
+  - ReplaceInt: {Offset: 240, Find: 30, Replace:  28}
+  - ReplaceInt: {Offset: 300, Find: 45, Replace:  83}
+  - ReplaceInt: {Offset: 360, Find: 60, Replace: 165}
 
 Allow rotation on all devices:
   - Enabled: no
@@ -481,12 +475,12 @@ Swap reading header/footer:
       ReplaceH: C0 69 # LDR r0, [r0, #0x1C]
   - ReplaceBytes:
       Base:     "ReadingView::updatePercentageFooter(QString const&)"
-      Offset:   172
+      Offset:   182
       FindH:    C0 69 # LDR r0, [r0, #0x1C]
       ReplaceH: 00 69 # LDR r0, [r0, #0x10]
   - ReplaceBytes:
       Base:     "ReadingView::updatePercentageFooter(QString const&)"
-      Offset:   286
+      Offset:   296
       FindH:    C0 69 # LDR r0, [r0, #0x1C]
       ReplaceH: 00 69 # LDR r0, [r0, #0x10]
   - ReplaceBytes:
@@ -528,7 +522,7 @@ Customize ComfortLight settings:
   # 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<QPair<QString, QTime>> with a simple loop.
-  - BaseAddress: 0xE61B6C # find the base of the unnamed subroutine with the x-ref to _ZN5QTimeC1Eiiii
+  - BaseAddress: 0xE7D2D4 # 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):
diff --git a/nickel.yaml/pgaskin.yaml b/nickel.yaml/pgaskin.yaml
index aff1667..75208ff 100644
--- a/nickel.yaml/pgaskin.yaml
+++ b/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: 0x18CA152 # qss/PinCodeInputDialog.qss
+  - BaseAddress: 0x1941D42 # 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: 0x18B56F6 # qss/ReadingMenuStatsView.qss
+  - BaseAddress: 0x194BE97 # qss/ReadingMenuStatsView.qss
   - ReplaceZlibGroup:
       Replacements:
       # Top padding is already set to 15px, 25px, 33px, vertical aligned to middle.

@pgaskin

Sorry I wasn't around last night. This release looks a bit of a non-event for those without note-taking devices. All my patches should work as-is.

For completeness all the comments in nickel.yaml need to add Elipsa2E to wherever Elipsa is currently found. I can deal with this later today, but obviously too late for your earlier release.

P.S. The fw version is wrong in this heading!

@jackiew1

Thanks! I've fixed the issue title, and I'll release your changes as soon as there's either a new patch or a firmware release.

One hint for future modifications: you might find it easier to make changes via GitHub.dev, especially when they involve multiple files.

One hint for future modifications: you might find it easier to make changes via GitHub.dev, especially when they involve multiple files.

My knowledge of GitHub is very poor and I don't have any real interest in spending time learning more as it's not something I want to use for my own projects. If I could do damage by using [GitHub.dev] wrongly it's probably best if I stay away from it.