View Single Post
Old 12-16-2018, 08:34 AM   #46
helour
Enthusiast
helour got an A in P-Chem.helour got an A in P-Chem.helour got an A in P-Chem.helour got an A in P-Chem.helour got an A in P-Chem.helour got an A in P-Chem.helour got an A in P-Chem.helour got an A in P-Chem.helour got an A in P-Chem.helour got an A in P-Chem.helour got an A in P-Chem.
 
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: "ł"}
Attached Thumbnails
Click image for larger version

Name:	Old.png
Views:	366
Size:	95.2 KB
ID:	168395   Click image for larger version

Name:	New.png
Views:	368
Size:	94.7 KB
ID:	168396  

Last edited by helour; 12-18-2018 at 05:57 AM. Reason: Added example
helour is offline   Reply With Quote