Enthusiast
Posts: 48
Karma: 6489
Join Date: Dec 2014
Location: Slovakia
Device: Onyx M96, Kobo Glo HD
|
The characters "ß" and "ƒ" in the Keyboard template are still replaceable
Hi,
I've just found that the characters "ß" and "ƒ" in the Keyboard template are still replaceable.
Kobo added new string "goKey" + 3x0b00 in keyboard layout in the libnickel.so file.
Some changes must be made in the libnickel patch:
ß: -48 -> -56 (FFFFFFD0 -> FFFFFFC8)
ReplaceString: {Offset: -56, Find: "ß\0", Replace: "ß"}
ƒ: -44 -> -52 (FFFFFFD4 -> FFFFFFCC)
ReplaceString: {Offset: -52, Find: "ƒ\0", Replace: "ƒ"}
I tried it on my Kobo GloHD and it works well.
Spoiler:
Code:
Keyboard template (GloHD/ClaraHD/AuraOne/H2O2):
- Enabled: no
- PatchGroup: Keyboard alternatives
## Replaces keys on the Extended Latin keypad with custom alternatives.
##
## Note that after the device boots, the keypad might just show blank squares
## until after the first book has been opened.
## Also note that long-pressing keys on the base keypad will no longer show
## the appropriate list of Extended Latin keys.
#
# Enable uppercase for `ß` (sharp s) key
- ReplaceBytes: {Offset: 0x8F4B88, FindH: 00 24, ReplaceH: 01 24}
# Replace layout sign
- FindBaseAddressString: "ÉÀÇ"
- ReplaceString: {Offset: 0, Find: "ÉÀÇ", Replace: "ÉÀÇ"}
# Change keyboard layout
- FindBaseAddressString: "ý\0\0ÿ\0\0š\0\0ž\0\0"
# Top row, left to right (10 keys):
- ReplaceString: {Offset: 0x00, Find: "ý\0", Replace: "ý"}
- ReplaceString: {Offset: 0x04, Find: "ÿ\0", Replace: "ÿ"}
- ReplaceString: {Offset: 0x08, Find: "š\0", Replace: "š"}
- ReplaceString: {Offset: 0x0C, Find: "ž\0", Replace: "ž"}
- ReplaceString: {Offset: 0x10, Find: "æ\0", Replace: "æ"}
- ReplaceString: {Offset: 0x14, Find: "œ\0", Replace: "œ"}
- ReplaceString: {Offset: 0x18, Find: "þ\0", Replace: "þ"}
- ReplaceString: {Offset: -56, Find: "ß\0", Replace: "ß"}
- ReplaceString: {Offset: 0x1C, Find: "ij\0", Replace: "ij"}
- ReplaceString: {Offset: 0x20, Find: "ŀ\0", Replace: "ŀ"}
# Second row, left to right (10 keys):
- ReplaceString: {Offset: 0x30, Find: "à\0", Replace: "à"}
- ReplaceString: {Offset: 0x34, Find: "á\0", Replace: "á"}
- ReplaceString: {Offset: 0x38, Find: "â\0", Replace: "â"}
- ReplaceString: {Offset: 0x3C, Find: "ä\0", Replace: "ä"}
- ReplaceString: {Offset: 0x40, Find: "ã\0", Replace: "ã"}
- ReplaceString: {Offset: 0x44, Find: "å\0", Replace: "å"}
- ReplaceString: {Offset: 0x48, Find: "è\0", Replace: "è"}
- ReplaceString: {Offset: 0x4C, Find: "é\0", Replace: "é"}
- ReplaceString: {Offset: 0x50, Find: "ê\0", Replace: "ê"}
- ReplaceString: {Offset: 0x54, Find: "ë\0", Replace: "ë"}
# Third row, left to right (10 keys):
- ReplaceString: {Offset: 0x5C, Find: "ò\0", Replace: "ò"}
- ReplaceString: {Offset: 0x68, Find: "ó\0", Replace: "ó"}
- ReplaceString: {Offset: 0x70, Find: "ô\0", Replace: "ô"}
- ReplaceString: {Offset: 0x74, Find: "ö\0", Replace: "ö"}
- ReplaceString: {Offset: 0x78, Find: "õ\0", Replace: "õ"}
- ReplaceString: {Offset: 0x7C, Find: "ø\0", Replace: "ø"}
- ReplaceString: {Offset: 0x58, Find: "ì\0", Replace: "ì"}
- ReplaceString: {Offset: 0x64, Find: "í\0", Replace: "í"}
- ReplaceString: {Offset: 0x80, Find: "î\0", Replace: "î"}
- ReplaceString: {Offset: 0x84, Find: "ï\0", Replace: "ï"}
# Fourth row, left to right (8 keys):
- ReplaceString: {Offset: 0x60, Find: "ù\0", Replace: "ù"}
- ReplaceString: {Offset: 0x6C, Find: "ú\0", Replace: "ú"}
- ReplaceString: {Offset: 0x88, Find: "û\0", Replace: "û"}
- ReplaceString: {Offset: 0x8C, Find: "ü\0", Replace: "ü"}
- ReplaceString: {Offset: 0x90, Find: "ñ\0", Replace: "ñ"}
- ReplaceString: {Offset: 0x94, Find: "ç\0", Replace: "ç"}
- ReplaceString: {Offset: 0x98, Find: "đ\0", Replace: "đ"}
- ReplaceString: {Offset: 0x9C, Find: "ł\0", Replace: "ł"}
Last edited by helour; 12-18-2018 at 05:57 AM.
Reason: Added example
|