Patches for 4.37.21533
pgaskin opened this issue · 8 comments
- Upload testdata (@pgaskin)
- Extract resources (@pgaskin)
- Find libnickel offsets where necessary (@pgaskin)
- Update most patches (@pgaskin)
- Update other patches if necessary (@pgaskin, @shermp)
- Update nickel patches if necessary (@jackiew1?)
- #122
- Test patches (@pgaskin)
- Make release (@pgaskin)
- MR post (@pgaskin)
- Later (from #112): Add Clara/Elipsa 2E to koboutils (@pgaskin)
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
$ 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.
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.
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!
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.