Thursday, October 14, 2010

Jailbreaking Kindle

* Jailbreak

Download the attached kindle-jailbreak-0.3.N.zip file, and unpack it. In here, you'll find a bunch of .bin files, and a src directory.
Leave the directory alone, and upload the correct update_*_install.bin file for your kindle 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] and k3gb means K3 3G (UK [B00A]).
For a Kindle 2 International, that would be update_jailbreak_k2i_install.bin for example.

Now, eject your Kindle, and go to [HOME] -> [MENU] > Settings -> [MENU] > Update Your Kindle. It should be quick, and it should FAIL (With a U004 error on fw 3.x or with a U006 error on fw 2.x, 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

Download the attached kindle-ss-0.15.N.zip file, and unpack it. In here, you'll find a bunch of .bin files, and a src directory.

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_ss_0.15.N_k2i_install.bin for example.

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

You shouldn't even need to do a full restart after that .

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!

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.

* Fonts

Download the attached kindle-fonts-3.9.N.zip file, and unpack it. In here, you'll find a bunch of .bin files, and a src directory.
NOTE: Since v3.9.N, this package has been split in two (solely because we were over the attachment size limit ).
The K2, K2I, DX, DXI and DXG packages are in the kindle-fonts-3.9.N-k2.zip archive, and the K3G, K3W and K3GB packages are in the kindle-fonts-3.9.N-k3.zip archive.

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_3.9.N_k2i_install.bin for example.

Now, eject 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, 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.

You shouldn't even need to do a full restart after that .

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. You'll find a bunch of other prepackaged, ready to use, font sets here, and in the next few replies:

* Droid_Sans.zip > Same as the default, only use Droid Sans instead of Droid Serif.

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: 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, 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 with the 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 before. 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.

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.

FW 3.x: Apparently, even when using the autoreboot feature, some of you are still encountering some of these weird issues (on FW 3.x only!). To workaround this, I have packaged some of these fonts as an update file. Check this post for more details.

If you have some trouble with by briefs instructions, the MR wiki has been updated (with some screenshots):
Fonts Hack: http://wiki.mobileread.com/wiki/Kind...nd_3.x_Kindles
SS Hack: http://wiki.mobileread.com/wiki/Kind...nd_3.x_Kindles

NogDog also wrote several blog posts about these hacks (also with screenshots):
Fonts Hack: http://www.kindleminds.net/2010/06/2...e-version-2-5/.
SS Hack: http://www.kindleminds.net/2010/07/0...eensaver-hack/

NOTES:
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 .

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.

Also note that, while there is a zipfile for the usbnetwok hack attached here, I won't provide any 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.

It might be an old news, but I recently came by this guide to jailbreaking your Kindle. Normally, you do not need that, as far as I remember, the majority of hacks already embedded with jailbreak, but if you want - you can have it.

# Posted via email from opportunity__cost