Mobileread
Font, ScreenSaver & USBNetwork Hacks for Kindle 2.x, 3.x & 4.x
#1  NiLuJe 06-22-2010, 09:10 PM
This is a giant thread in which you'll find the custom ScreenSavers, custom Fonts & USBNetwork hacks for all non Touch Kindle devices (Kindle 2/DX/DXG/3/4), along with the Kindle 2/DX/DXG/3 JailBreak.
I know it's a bit daunting, but please bear with me, it'll be worth it .

First things first, a huge thanks to the original creators/updaters of these hacks, all the people who, at some point, worked on these hacks, and some of the pioneers! In no particular order:
Latest Updates (08/19/2015):

JB v0.13.N, SS v0.47.N, Python 0.14.N, Fonts v5.16.N, USBNet v0.57.N (Updated binaries).

Note for Kindle >= 3.1 Users:

If you haven't done so already (either with >= 0.5.N or yifanlu's jailbreak), please update your jailbreak hack.

IMPORTANT NOTE REGARDING UPDATES:
Spoiler Warning below







Here are general update instructions for these hacks:


INSTALL:

Jailbreak:
What Does It Do?:

The JailBreak opens the door to pretty much everything you'll find on this forum .

As for USBNetwork, besides bundling a couple of useful tools, it will grant you remote shell access to your Kindle, be it over USB or WiFi.

Spoiler Warning below








Note for Kindle 4 Users

Please skip this section and refer to the Wiki instead.

Note for Kindle 3.0.x, 3.1.x & 3.2 Users

Please use the file corresponding to your kindle model suffixed by -3.0-to-3.2, the other one won't work on these older FW versions, while this one won't work on newer FW versions. Check your Settings page if you're unsure of what FW your Kindle is running.

Download the attached kindle-jailbreak-0.13.N.zip file, and unpack it. In here, you'll find a few files.
Leave the directory alone, and upload the correct Update_*_install.bin file for your kindle & FW version to the root directory of your Kindle.
(As always, k2 means K2 US, k2i means K2 GW, dx means KDX US, dxi means KDX GW, dxg means KDX Graphite, k3g means K3 3G (US [B006]), k3w means K3 WiFi [B008], k3gb means K3 3G (UK [B00A]) and k4 means K4 [B00E]. The ones suffixed by -3.0-to-3.2 are meant for devices running old FW <= 3.2 *only*!).
For a Kindle 3 WiFi running firmware 3.3.x or 3.4.x, that would be Update_jailbreak_0.13.N_k3w_install.bin for example.

Now, eject & unplug your Kindle, and go to [HOME] -> [MENU] > Settings -> [MENU] > Update Your Kindle. It should be quick. (And, on FW 2.x only, it should FAIL (With a U006 error, in the bottom left corner of the screen). It's completely normal, intended, and harmless).

And that's it, your Kindle is now ready to install custom hacks!


ScreenSavers:
What Does It Do?:

This will allow you to customize the screensavers (or sleep screens) used by your Kindle, replacing them either with your choice of images or the cover of the last book you opened .

Spoiler Warning below








Note for Kindle Special Offers Users:

This doesn't, and won't ever, help you bypass something you agreed to (screensaver ads), so please stop asking.

If you still have questions, please read this post.

That said, you can unsubscribe to Special Offers at any point of the process with no ill effect.

If you intend to use the cover feature:

It will use the cover of the last book opened as the current screensaver.
You'll need to first install the Python package attached to this post.

NOTE: You'll need a recent version of the JailBreak (0.11.N or newer) to install this update package!

Download the appropriate kindle-python-0.14.N.zip file for your device (the K2 and K2I packages are in the kindle-python-0.14.N-k2.zip archive, the DX & DXI packages are in the kindle-python-0.14.N-dx.zip archive, the DXG packages are in the kindle-python-0.14.N-dxg.zip archive, the K3W packages are in the kindle-python-0.14.N-k3w.zip archive, the K3G & K3GB packages are in the kindle-python-0.14.N-k3g.zip archive, and the K4 packages are in the kindle-python-0.14.N-k4.zip archive), and then unpack it. In here, you'll find a few files.

First, upload the correct Update_*_install.bin file for your kindle to the root directory of your Kindle.
For a Kindle 2 International, that would be Update_python_0.14.N_k2i_install.bin for example.

Now, eject & unplug your Kindle, and go to [HOME] -> [MENU] > Settings -> [MENU] > Update Your Kindle. It should take a few minutes.

Note that if you have KUAL set up and running, you're welcome to use our very own MR Package Installer, which may speed up the process if you're installing multiple things .

Download the attached kindle-ss-0.47.N.zip file, and unpack it. In here, you'll find a few files.

First, upload the correct Update_*_install.bin file for your kindle to the root directory of your Kindle.
For a Black Kindle 4, that would be Update_ss_0.47.N_k4_install.bin for example.

Now, eject & unplug your Kindle, and go to [HOME] -> [MENU] > Settings -> [MENU] > Update Your Kindle. It should take a couple dozen of seconds.

Note that if you have KUAL set up and running, you're welcome to use our very own MR Package Installer, which may speed up the process if you're installing multiple things .

Once your device is back to your Homescreen, check that everything went fine by putting your Kindle to sleep: on a fresh install, you should now see a special screensaver to confirm that the installation was successful . Carry on if you do, otherwise, check the FAQ at the bottom of this message.

You now have a couple of choices to make:

Do you want to use the cover of the last book opened as a screensaver? Make sure you've installed the Python package first, then just drop a blank file named cover in the linkss folder. Restart your Kindle ([HOME] -> [MENU] > Settings -> [MENU] > Restart), and you're done .

A couple of things to note on this mode: It's only available since v0.31.N, and if you don't rely on the autoreboot feature for third-party tools (Calibre?), the autoreboot feature is probably useless to you in this mode, so you should also delete the autoreboot file in the linkss folder.

If you simply want to use a set of custom screensavers, like usual, keep on reading .

To change your custom screensavers, plug your Kindle to your computer via USB, and upload them to the linkss/screensavers folder that has been created by the hack. You'll have to restart your Kindle in order to take your new screensavers into account. To that effect, you can either use the autoreboot feature, or simply do a full restart of your Kindle.

To use the autoreboot feature: Just drop a blank file named reboot in the linkss folder (by copying and renaming the already existing "autoreboot" blank file, for example) (or in the linkfonts folder if you also have the fonts hack installed!), and your Kindle will do a quick reboot 10s after you've unplugged it!
For those of you using meme's wonderful Kindle Collections plugin for Calibre, that's exactly what its 'fast reboot' setting does when you eject your Kindle from Calibre .

If you want to randomize the sequence in which your screensavers will be shown, create a blank file named random in the linkss folder (right alongside the "auto" file), and then do a full restart of your Kindle! This will shuffle your screensavers around on each boot.

Since v0.23.N: In addition to this, you can also shuffle your screensavers each time a framework restart is triggered through the autoreboot feature. Be advised that this may significantly (a few dozen of seconds) delay the framework restart procedure, depending on the number of screensavers you're using. To enable this feature, create a blank file named shuffle in the linkss folder (right alongside the "auto" file), and then restart your Kindle (either through the autoreboot feature, or a full restart).

Since v0.35.N: All of these settings are now available in a friendly KUAL menu . Running at least KUAL 2.1 is recommended for the best user experience.


Fonts:
What Does It Do?:

This will allow you to customize the fonts used by your Kindle, be it in books, or the UI, and optionally grant you deeper control over the font rendering engine.

Spoiler Warning below







Please read this section in full before installing this hack, there are a few important things to be aware of: most notably that in order to avoid potential issues, you'll probably want to disable any & all password & parental control protections until you're satisfied with your fonts settings!

Download the appropriate kindle-fonts-5.16.N.zip file for your device (the K2, K2I, DX, DXI and DXG packages are in the kindle-fonts-5.16.N-k2.zip archive, the K3G, K3W and K3GB packages are in the kindle-fonts-5.16.N-k3.zip archive, and the K4 packages are in the kindle-fonts-5.16.N-k4.zip archive), and unpack it. In here, you'll find a few files.

First, upload the correct Update_*_install.bin file for your kindle to the root directory of your Kindle.
For a Kindle 2 International, that would be Update_fonts_5.16.N_k2i_install.bin for example.

Now, eject & unplug your Kindle, and go to [HOME] -> [MENU] > Settings -> [MENU] > Update Your Kindle. It should take a few dozen of seconds. If you're on FW 3.x or 4.x, and this is your first install, it may seem to hang for about a minute or two on the "Update successful, Your Kindle is restarting…" screen, that's okay.

Note that if you have KUAL set up and running, you're welcome to use our very own MR Package Installer, which may speed up the process if you're installing multiple things .

If you want to change the fonts used by the hack, you'll have to upload them in the linkfonts/fonts directory, strictly following the usual naming scheme. (Type_Style.ttf) (for details on where each font is used, please see this post). The default fonts installed by the hack are the usual non-cjk unicode fonts (Droid Sans, Droid Serif & DejaVu Sans Mono), with the addition of the CJK-aware Droid Fallback if you're on FW 3.x or 4.x. You'll find a bunch of other prepackaged, ready to use, font sets here, and in the next few replies.

You'll have to restart your Kindle in order to properly take your new fonts into account.

By default, the autoreboot feature is enabled. If you wish to make use of it, don't forget to drop a blank file named reboot in the linkfonts folder (right alongside the "autoreboot" file, by copying and renaming it, for example). When that file is present, your Kindle should automatically do a quick reboot 10s after you've unplugged it.

FW 3.x & 4.x: If you chose to handle the browser fonts, this will add a considerable overhead to this process (we need to regenerate FontConfig's config & cache). That can take more than a couple of minutes! It'll happen each time you update your fonts, either during the framework startup if you did a full restart, or before the framework restart when using the autoreboot feature!. So, if you're switching fonts on a K3 or K4, and you have enabled the browser fonts handling (more on that later), and you use the autoreboot feature, don't be surprised if it takes considerably more than 10s before the framework restarts!

Another thing to take into account since FW 3.x is that the settings of the rendering engine have changed a bit. It now makes use of the TrueType bytecode hinting instructions of your fonts, and uses them to hint at the most aggressive level. (In terms of FT/FC settings: hinting=true, hintstyle=hintfull, autohint=false). What this means is that fonts without hinting instructions (or with crappy code) will look considerably fuzzier than they did on previous devices. It's especially noticeable at small sizes, and in the browser.

If you really want to be able to tweak the browser fonts, and don't care about the overhead involved, just remove the nobrowser file in the linkfonts folder, and Restart your Kindle, and wait. A lot. NOTE: Because regenerating the cache takes so much time, we won't try to handle the browser fonts by default, in order not to waste 5 minutes each font switch.

Important note about KF8 files: Please note that in order to use your custom fonts in KF8 files, you will *have* to enable this feature! You'll also want your font's metadata to be consistent: for example, all the Serif fonts should be of the same family, and their styling info should be accurate, or you'll risk having strange surprises, like books rendered in all bold .

There's also two new custom fonts used for rendering non-latin scripts. CJK.ttf, like the name implies, is used to render Chinese/Japanese/Korean scripts. After that, there's I18N.ttf, which is used as a fallback. By default, the hack uses the DejaVu Sans font. While it's far more pretty than the vanilla fallback font usually used (code2000), it does seem to support a lot less different types of scripts. Long story short, if you have weird non-latin rendering issues, those are the two fonts you should look at .

If you don't use the autoreboot feature (for exemple if you removed the autoreboot file in the linkfonts folder), you'll have to do at least a framework restart each time you change the fonts. If you have no means of doing a framework restart (ie. via usbnetwork), you'll have to do a full restart via the Settings menu, or by holding the power switch for ~15 seconds). Do note that the autoreboot & Restart methods are both way cleaner (and possibly safer) than the physical hard-reboot (which basically just plugs the battery off for a little while, which explains why your Kindle needs to be unplugged from any power source for this to work).

/!\ Be careful, if you miss a font, the hack won't be applied, so you shouldn't have any problem, but if for some reason, the Kindle software doesn't like one of your custom font, they'll be garbled, or invisible. Also, it may prevent you from actually _seeing_ the Settings page to do the restart. (And actually reading any books, also.) If that happens to you, try one of the three methods described earlier to reboot your Kindle. If you want to avoid this kind of issue, use the autoreboot feature Also, don't remove the other fonts found in the linkfonts/fonts folder. We need them, and the hack won't be applied if they're missing. Using an FT override like bci is another workaround to remember if your device *really* doesn't like a font, even after a reboot.

Since v4.0.N: You can now control a bit more the settings used by the rendering engine. For example, if you want to make sure it'll be using FreeType's autohinter (like on FW 2.x) instead of native hinting on FW >= 3.x, drop a blank autohint file in the linkfonts folder. The same applies on FW 2.x if you want to make sure the renderer uses native hinting (like FW >= 3.x) instead of the autohinter on FW 2.x, drop a blank bci file in the linkfonts folder.
You will have to do a full Restart of your Kindle for the changes to be taken into account (a framework restart won't be enough).
(Note that both settings are always available (ie. you can use bci on FW 3.x, and autohint on FW 2.x), in which case while the rendering should be mostly similar to your Kindle's defaults, it won't be exactly the same, due to changes in FreeType, and possibly patches Amazon might be using. If you have both files present, autohint will take precedence. It might also impact page turns perceived speed (good or bad, YMMV).)
v4.1.N: In addition to autohint & bci, there is now a third setting available: light. It's based on autohint, but with lighter hinting and a bunch of other tweaks used in order to try to preserve each glyph's shape, at the expense of being potentially a bit fuzzier. It's a bit like font rendering on OS X. It might very well look better than both the autohint or bci settings in the latest versions of the Hack.
v5.4.N: The bci_new override was added. It's similar to bci, but it might be slightly more performant. It might also be less compatible, so if you start encountering weird rendering issues, switch back to bci .
v5.8.N: Removal of the bci_new override (if you're currently using it, the installer will migrate your config to bci). Basically, what differentiated it from bci is now enabled by default for all three variants. I haven't encounterd any issues yet, but if you suddenly experience severe rendering issues after this update, contact me!
NOTE: For obvious reasons (it's a bit more intrusive than usual), this is disabled by default. But it might very well workaround the 'blank fonts' issue some of you have been suffering on FW >= 3.x .
NOTE: If all of this is still a bit unclear, please check this post. And if you're still confused, you can of course skip this feature entirely .

Since v5.8.N: All of these settings are now available in a friendly KUAL menu . Running at least KUAL 2.1 is recommended for the best user experience.


WIKI:
Spoiler Warning below







If you have some trouble with my brief instructions, the MR wiki has been updated (with some screenshots):
Fonts Hack: http://wiki.mobileread.com/wiki/Kind...nd_4.x_Kindles
SS Hack: http://wiki.mobileread.com/wiki/Kind...26_4.x_Kindles


NOTES, TROUBLESHOOTING & FAQS:
Spoiler Warning below







Some people reported losing their collections when installing these hacks… It shouldn't happen, but apparently it's a bug in the vanilla 2.5 firmware, so make sure you do a Whispernet Sync and/or that you make a backup of your system/collections.json file before doing anything .

If you're unsure of your Kindle model (and thus of which exact .bin file to use), check this wiki page to find the nickname corresponding to your device .

Don't try to force a custom update by rebooting your Kindle. You should *always* install custom hacks via the Settings page. If the 'Update Your Kindle' link is greyed out, it's because you uploaded the wrong binfile for your device. Don't try to force an install by rebooting. It'll, at best, fail, and at worst, force you to start your Kindle in recovery mode to delete the offending update.

Again, if you're having issues with the Fonts hack (missing fonts, blank pages/menu, …), do try to use one of the new freetype override settings! In the same vein, disable your Kindle's password/parental control before switching fonts, there's been reports that a messed up font will prevent the password box from popping up, in which case you won't be able to unlock your device… And that probably means a hard reset to factory defaults will be needed to clear things up, and that's never fun ;'(.

In the ScreenSavers hack, If the cover mode seems to be behaving strangely, make sure the date and time is properly set on your device (check that, when sorting your Home screen by 'Recent', you get consistent & accurate results) and that the books you're using actually have a cover properly tagged & embedded. One other thing to keep in mind is that the switch is not done immediately on the opening of a book, but only a few seconds later, and that, when opening a book for the first time, the parsing & processing of the cover can take a noticeable amount of time (usually between 30s and a minute, depending on the CPU load).

In the ScreenSavers hack, in classic 'image cycle' mode, if your Kindle simply goes to sleep with a blank screen, it most likely means one of your custom images is broken (wrong format, weird encoding issue, weird size issue, or any number of fun & interesting ways to make the Kindle unhappy). Once you've identified the file(s) causing the issue, remove them from the screensaver folder, and restart your device.

With the ScreenSavers hack, especially on DX & DXG devices, if the cover processing seems to take an inordinate amount of time (>45s), or even triggers a framework restart, try to go back to the Home screen for a while after opening a new book, and/or consider enabling the lowmem mode.

A list of the most common ScreenSavers issues & their cause is available in this post as a kind of self-diagnostic you can do yourself to see if you missed something .

Another thing: every time I mention rebooting or restarting your device, you need to do it with the device completely *unplugged*. It may sound weird, but it affects a number of things in weird and interesting ways .

Also note that, while there is a zipfile for the USBNetwork hack attached here, I will only provide very limited support for it, and I strongly discourage anyone not well versed in bare-bone Linux CLI system administration to even try it. It's far too easy to brick your device/mess up the software with that thing.


ChangeLog:
Spoiler Warning below






[zip] Droid_Sans.zip (1.84 MB, 23120 views)
[zip] kindle-jailbreak-0.13.N.zip (1.09 MB, 32519 views)
[zip] kindle-python-0.14.N-k2.zip (16.26 MB, 2325 views)
[zip] kindle-python-0.14.N-dx.zip (16.26 MB, 2492 views)
[zip] kindle-python-0.14.N-dxg.zip (8.14 MB, 2675 views)
[zip] kindle-python-0.14.N-k3g.zip (16.26 MB, 3826 views)
[zip] kindle-python-0.14.N-k3w.zip (8.14 MB, 4727 views)
[zip] kindle-python-0.14.N-k4.zip (15.90 MB, 4629 views)
[zip] kindle-ss-0.47.N.zip (13.81 MB, 16430 views)
[zip] kindle-fonts-5.16.N-k2.zip (8.46 MB, 5718 views)
[zip] kindle-fonts-5.16.N-k3.zip (9.84 MB, 6942 views)
[zip] kindle-fonts-5.16.N-k4.zip (3.43 MB, 4819 views)
[zip] kindle-usbnetwork-0.57.N-k2.zip (8.91 MB, 2883 views)
[zip] kindle-usbnetwork-0.57.N-dx.zip (13.34 MB, 4305 views)
[zip] kindle-usbnetwork-0.57.N-k3.zip (13.34 MB, 7701 views)
[zip] kindle-usbnetwork-0.57.N-k4.zip (5.40 MB, 7422 views)
[gz] kindle-x-tc-2015.06.N.tar.gz (424.5 KB, 3303 views)
[zip] kindle-dummy-0.N.zip (49.9 KB, 2812 views)
Reply 

#2  NiLuJe 06-22-2010, 09:16 PM
And here are the usual screenshots of the result of the default font hack

And a few of the fonts sets posted in the next post adapated to the K3 (basically, we use the OpenType CFF font instead of a crappy TTF conversion when we can, and when the CFF looks good). Also, please check this post for those same files packaged as an update file, to avoid potential weird issues on FW 3.x.

UPDATE: To err on the side of caution regarding MR's rules on attachments, a bunch of those sets have been pulled. If you'd like to use these fonts, you'll have to get them from somewhere else, or extract them from packages from other hacks.

Tedsan's packages (Georgia, Helvetica, CMod*, ArialRndNrw)

To this end, you'll need to use jyavenard's packager. (Latest version available here).

It's a python script, so, if you're not on OS X/Linux, you'll have to setup a Python 2.x environment (It's fairly simple, you can find official installers here: http://www.python.org/download/).

Once that's done, put your update package & kindle_update_tool script in the same folder, and open your favorite command-line terminal (cmd by default on Windows) in this same folder.

Then, extract your package (named "update_myfonts_install.bin" in this example):

OS X & Linux
Code
python ./kindle_update_tool.py e update_myfonts_install.bin
Windows (Assuming you've downloaded & unpacked the script & binfile in C:\kindle)
Code
cd C:\kindle
kindle_update_tool.py e update_myfonts_install.bin
You'll end up with a "update_myfonts_install.tgz" file, that you'll be able to unpack with an archiver handling TAR+GZIP (tar & gunzip, 7-Zip, WinRar, ...).

In there, among a bunch of stuff, you should find your precious fonts .

Make sure they follow the usual naming scheme, and you'll be good to go .
book.gif 
[zip] Diavlo_K3.zip (1.48 MB, 7811 views)
[zip] FertigoPro_K3.zip (1.52 MB, 6326 views)
[zip] Museo_Slab_K3.zip (867.8 KB, 5903 views)
[zip] Museo_K3.zip (936.8 KB, 6079 views)
[zip] Fontin_K3.zip (764.1 KB, 6803 views)
Reply 

#3  NiLuJe 06-22-2010, 09:23 PM
And what a broken font might look like... (Calibri bold I think, from an up to date Win7). With the otherwise pretty nice Candara font on the Serif side of things.

And some font sets with fonts from the exljbris font foundry (solely based on the freely available styles).

UPDATE (07/23/10):

Also, added *BIG* variants of the Museo Slab set, for people with eye problems. It's bigger *everywhere*. Check post #278 (http://www.mobileread.com/forums/sho...&postcount=278) for more details & screenshots.
book_candara.gif diavlo.gif fertigo_pro.gif fontin.gif delicious.gif museo_free.gif museo_slab_free.gif 
[zip] Museo_Slab.zip (862.8 KB, 7242 views)
[zip] Museo.zip (849.9 KB, 6857 views)
[zip] Diavlo.zip (1.47 MB, 7672 views)
[zip] Fertigo Pro.zip (1.52 MB, 7203 views)
[zip] Fontin.zip (1.44 MB, 7695 views)
[zip] Delicious.zip (1.43 MB, 7779 views)
[zip] Museo_Slab_BIG.zip (874.9 KB, 5182 views)
[zip] Museo_Slab_BIG_125.zip (873.4 KB, 4623 views)
[zip] Museo_Slab_BIG_150.zip (876.4 KB, 4837 views)
Reply 

#4  NogDog 06-22-2010, 09:27 PM
Thanks!

Question, if after installing one font, you want to change, do you just change the font files in the new directory and restart, or do you change them and install the .bin hack file, too?
Reply 

#5  NiLuJe 06-22-2010, 09:29 PM
Just the restart, no need to reinstall the .bin, that's the whole point .

I'll make that instruction bolder in the original post.
Reply 

#6  NogDog 06-22-2010, 09:35 PM
Quote NiLuJe
Just the restart, no need to reinstall the .bin, that's the whole point .

I'll make that instruction bolder in the original post.
Great. Trying it on my K2-US now. (What the heck, they reduced the price yesterday, right? )
Reply 

#7  NogDog 06-22-2010, 09:39 PM
I now have Georgia2 on my K2us. Life is good.
Reply 

#8  NiLuJe 06-22-2010, 09:53 PM
Now, is it me, or does the screensavers always show up in the same order after a reboot?

Would it interest some people if I automatically added some randomization in the filenames at boot to avoid that?

EDIT: Scratch that, apparently, I had an uncanny stretch of bad luck in the half-dozens reboot I did to try out the fonts, with the same two images in a row each time. -_-"
Reply 

#9  daffy4u 06-22-2010, 09:57 PM
Popping out of "lurk mode" to publicly thank NiLuJe for updating the Fontin font hack. I have not upgraded to 2.5 because I did not want to lose my font. Now I have nothing to lose.

Thank you very much!
Reply 

#10  NiLuJe 06-22-2010, 10:09 PM
No problem .

FYI, it's really quick & easy to pull the fonts out of outdated hacks, provided you have a working Python environment to run jyavenard's packer.

./kindle_update_tool.py e update_i_can_haz_fonts.bin

And, voiĆ , a gzipped tarball update_i_can_haz_fonts.bin.tgz with your fonts in it!

But if you don't want to bother with that, don't be shy, reply with the the URL of the font hack you'd like to be updated, and I'll happily do it for you, and make them available here for everyone .
Reply 

  Next »  Last »  (1/387)
Today's Posts | Search this Thread | Login | Register