UFHack is a hack for Amazon Kindle 2 (including the international version) and Amazon Kindle DX (including the international version) that allows replacing default Kindle fonts with different ones, including fonts that support broader range of characters like Cyrillic, Chinese, Japanese, etc. Hack comes in a form of manually installable patch and is fully reversible. Source code is included so you can customize the hack. If you do, please let me know and I’ll host or link to the modified version as I’m sure that one size doesn’t fit all.
This hack doesn’t work on Kindle 1 – check the link at the end of the page for alternate solutions.
Important!:
- Use this hack and instructions at your own risk after reading ALL OF THEM carefully! Although I tested it to the best of my ability on my own devices I can’t guarantee that it will work on yours and will not be responsible for any damage (including completely and irreversibly bricking your device) it may have caused!
- This hack works on Kindle 2 (incuding the international version) and DX. For Kindle 1 you’ll need a different one. If you are not sure which version you have it’s best not to mess with it all.
- Having this hack installed will cause installation of official Amazon.com updates to fail. This is normal. You’ll need to reverse the hack (see instuctions below), install the Amazon.com update manually and then reapply the hack.
In theory this hack should work with any version of Kindle software. However, I’ve only tested it with 2.5.2 and 2.5.3. I strongly advice you to update your Kindle to the latest software version before installing this hack. This is something you should be doing anyway.
Before installing this hack you will need to “jailbreak” your Kindle – see instructions below!
There are several versions of this hack. Functionally they are identical but they are prepacked with different sets of fonts:
- GNU FreeFont – this hack uses GNU Free Fonts that come with Linux and are free to redistribute. All font styles are preserved (serif, sans-serif, mono-spaced, bold and italic) but these fonts only support Latin, Cyrillic characters and some others (click here for full coverage data). So if you are only interested in Russian books – this is the way to go. Otherwise this patch will do you little good. Here are download links:
- Kindle 2 (serial number starts with B002) – update_ufh_gnufreefont_install-k2.bin
- Kindle 2 International (serial number starts with B003) – update_ufh_gnufreefont_install-k2i.bin
- Kindle DX (serial number starts with B004) – update_ufh_gnufreefont_install-kdx.bin
- Kindle DX International (serial number starts with B005) – update_ufh_gnufreefont_install-kdxi.bin
- GNU Free Fonts SansSerif (recommended for Cyrillic) – same fonts as before but SansSerif family is used instead of Serif. In my opinion it looks better. Bold and italic styles are preserved:
- Kindle 2 (serial number starts with B002) – update_ufh_gnufreefont_sans_install-k2.bin
- Kindle 2 International (serial number starts with B003) – update_ufh_gnufreefont_sans_install-k2i.bin
- Kindle DX (serial number starts with B004) – update_ufh_gnufreefont_sans_install-kdx.bin
- Kindle DX International (serial number starts with B005) – update_ufh_gnufreefont_sans_install-kdxi.bin
- Droid Fallback Fonts (recommened for Asian glyphs) – this hack uses open-source Droid fallback font that is part of Google Android platform. Unfortunately styles and typefaces are missing completely. You’ll only get regular Sans Serif. The upside is the broadest character support. It supports Cyrillic, Chinese, Japanese and a bunch of other languages. This font also looks very good on the Kindle screen (in my opinion way better than native Kindle fonts). This is the patch I currently have installed on my Kindle 2. Here are download links:
- Kindle 2 (serial number starts with B002) – update_ufh_droid_install-k2.bin
- Kindle 2 International (serial number starts with B003) – update_ufh_droid_install-k2i.bin
- Kindle DX (serial number starts with B004) – update_ufh_droid_install-kdx.bin
- Kindle DX International (serial number starts with B005) – update_ufh_droid_install-kdxi.bin
- Droid Fonts with Styles – Same fonts as above but all families and styles are there. However Asian characters are not supported:
- Kindle 2 (serial number starts with B002) – update_ufh_droid_styles_install-k2.bin
- Kindle 2 International (serial number starts with B003) – update_ufh_droid_styles_install-k2i.bin
- Kindle DX (serial number starts with B004) – update_ufh_droid_install-kdx.bin
- Kindle DX International (serial number starts with B005) – update_ufh_droid_install-kdxi.bin
- Droid Fallback with Styles SansSerif – Same as above but Serif fonts are replaced with Sans Serif because I believe it is more readable on Kindle screen:
- Kindle 2 (serial number starts with B002) – update_ufh_droid_styles_sans_install-k2.bin
- Kindle 2 International (serial number starts with B003) – update_ufh_droid_styles_sans_install-k2i.bin
- Kindle DX (serial number starts with B004) – update_ufh_droid_sans_install-kdx.bin
- Kindle DX International (serial number starts with B005) – update_ufh_droid_sans_install-kdxi.bin
Installing the hack:
- Download appropriate jailbreak package for your Kindle:
- Kindle 2 (serial number starts with B002) – update_jailbreak_k2_install.bin
- Kindle 2 International (serial number starts with B003) – update_jailbreak_k2i_install.bin
- Kindle DX (serial number starts with B004) – update_jailbreak_k3_install.bin
- Kindle DX International (serial number starts with B005) – update_jailbreak_k3i_install.bin
- Connect your Kindle via USB cable and copy the jailbreak package into the root directory of Kindle drive
- Use menus to initiate manual update installation: Press “Home” to fo to the home screen, press “Menu” and select “Settings”, press “Menu” again and select “Update Your Kindle”, press the 5-way controller once more to confirm the update. If “Update Your Kindle” is disabled make sure that update version corresponds to your version of Kindle.
- The installer will run and report a failure. This is expected and normal. After your Kindle reboots it will be jailbroken and you would be able to install custom hacks (including UFH)
- If you have another version of Unicode Font Hack installed – uninstall it first (instructions can be found below). If you do not the fonts may not change.
- Download appropriate update file from one of the links above.
- Connect your Kindle 2/DX to your PC via USB cable.
- Copy *install*.bin file that corresponds the the desired font family and your device version into the root of your Kindle USB drive.
- Use menus to initiate manual update installation: Press “Home” to fo to the home screen, press “Menu” and select “Settings”, press “Menu” again and select “Update Your Kindle”, press the 5-way controller once more to confirm the update. If “Update Your Kindle” is disabled make sure that update version corresponds to your version of Kindle. For Kindle DX you should use _dx.bin files.
- Your Kindle Kindle 2/DX will switch through several update screens and then reboot.
- Once it reboots, you can test that the hack installed properly and works:
- First of all you should see apparent change in all of the fonts if you didn’t install browser-only update.
- press “Menu”, select “Settings”. In the bottom portion of the settings page you should see Kindle software version and “+ UFHack 0.3”.
- Start web browser and open http://www.wikipedia.org/ – you should see Russian text in the bottom left rather than boxes with question marks. If you used droid patch – Japanese characters in the upper-left will also display.
- And of course you can now copy books in different languages and start reading them.
- Connect your Kindle Kindle 2/DX to your PC via USB cable and copy *.orig files from the root directory to a safe location. Normally you’ll not need these to reverse the hack but it’s good to keep a copy of these just in case.
Uninstalling the hack:
- Connect your Kindle 2/DX to your PC via USB cable.
- Download file that corresponds to your device and copy it to the root directory of your Kindle drive. It doesn’t matter if you have droid or liberation hack installed. The uninstaller would remove either one.
- Kindle 2 (serial number starts with B002) – update_ufh_uninstall-k2.bin
- Kindle 2 International (serial number starts with B003) – update_ufh_uninstall-k2i.bin
- Kindle DX (serial number starts with B004) – update_ufh_uninstall-kdx.bin
- Kindle DX International (serial number starts with B005) – update_ufh_uninstall-kdxi.bin
- If you have UFH 0.3 for Kindle 2.3 installed use these (old) uninstallers:
- Kindle 2 (serial number starts with B002) – update_ufh_uninstall-k2.bin (old)
- Kindle 2 International (serial number starts with B003) – update_ufh_uninstall-k2i.bin (old)
- Kindle DX (serial number starts with B004) – update_ufh_uninstall-kdx.bin (old)
- Kindle DX International (serial number starts with B005) – update_ufh_uninstall-kdxi.bin (old)
- If you have UFH 0.1 or 0.2 installed you should use the oldest uninstaller from one of the following links:
- Kindle 2 (serial number starts with B002) – update_ufh_uninstall-k2.bin (oldest)
- Kindle 2 International (serial number starts with B003) – update_ufh_uninstall-k2i.bin (oldest)
- Kindle DX (serial number starts with B004) – update_ufh_uninstall-kdx.bin (oldest)
- Optionally but highly recommended: use “Safely Remove Hardware” to “eject” Kindle 2/DX. In order for this to work you need to close all Windows Explorer and other file manager windows that display contents of Kindle drive.
- Use menus to initiate manual update installation: Press “Home” to fo to the home screen, press “Menu” and select “Settings”, press “Menu” again and select “Update Your Kindle”, press the 5-way controller once more to confirm the update.
- Your Kindle 2/DX will switch through several update screens and then reboot.
- Once it reboots, you can test that the hack installed properly and works: there should be no “+ UFHack 0.1” in the version string at the bottom of settings screen, fonts should be back to normal with boxed question marks displayed instead of unicode symbols.
- Unicode font files are not deleted from Kindle but should cause no problems. If you would like to delete them – contact me and I’ll provide a separate patch for that.
- You may also want to uninstall “jailbreak” package so that you can install official Kindle updates. Please use appropriate uninstaller from the following list:
Known issues:
- There is not perfect one-size fit all font that would preserve styles and display all characters and look nice at the same time. Finding one that is free proved to be more difficult than creating the patch. If you find such a font or even a paid one for which redistribution rights will not cost a small fortune – let me know and I’ll try to arrange a patch with that font.
- Unicode titles of .mobi and .prc books will display like garbage. This is not an issue with the hack or the fonts. Amazon eBook reader appliation assumes these fields to be ASCII rather than Unicode so they’ll not display correctly no matter what fonts until Amazon fixes this.
Using your own fonts:
- Once again I’ll stress that this is done at your own risk. Using corrupted font files in the reader app will likely brick your Kindle entirely. If you don’t know what are you doing – don’t do it!
- In order to roll your own Kindle updates you’ll need to have Python installed. One from ActiveState will do nicely.
- In the source code of the hack (you can download it here) you’ll find font files, update scripts and other related stuff. Feel free to look into any of it.
- To use your own fonts you need to replace the ones in /custom folder (preserving the file names!) and then run build-updates.cmd. This will generate installer .bin files for all versions of Amazon Kindle.
- If you use your own fonts it would be a good idea to test the browser-only update first. Keep in mind that browser-only update uses only Serif*.ttf fonts. So you will want to replace them with the ones that you are testing regardless of the actual typography. Replace all of the files even if you are using same font file.
- To uninstall use one of the standard uninstallers provided here.
- Kindle 2 (serial number starts with B002) – update_jailbreak_k2_uninstall.bin
- Kindle 2 International (serial number starts with B003) – update_jailbreak_k2i_uninstall.bin
- Kindle DX (serial number starts with B004) – update_jailbreak_k3_uninstall.bin
- Kindle DX International (serial number starts with B005) – update_jailbreak_k3i_uninstall.bin
Good luck and enjoy!
Please spread the word about this hack as it will increase chances of someone finding better fonts that can be used with it.
If you are interested in changing fonts on Kindle 1 – read this thread.
While waiting for your unicode hack for DX, I played around with various options for displaying Cyrillic fonts, and here is what I currently do:
1. Open the Cyrillic text in MS Word
2. Adjust font size (you need to play with it until you get the size that works for you, but once you find it, you can just apply it to all your files)
3. Print the document out to Adobe PDF
4. Copy the pdf file to Kindle — it displays perfectly there.
Obviously, you lose some of the features that are available in the native format vs. the pdf, but it actually doesn’t matter that much for me. I guess this should also work for other languages. You may want to let your readers know.
I have a font hack request… How about fictional fonts? I’m certain there would be a certain market for Klingon and Elvish.
Hi, thanks for the link to Kindle 1 font hack. However, I’m still unable to use it since I don’t have droid sans fallback font. Where can I get it?
You can get it from Kindle 2 droid hack that you can download here.
we purchased a Kindle for my Mother in law who is visually impaired and the font size only goes up to 20 which isn’t enough. Is there a way to increase the size of the font? She can’t use it as is.
I just wanted to thank you for this hack. You’re a saint! I wouldn’t have been able to get lib.ru text onto my Kindle 2 without you. Many thanks!
I instoled the hack on my kindle 2 and it’s a dream come true, however on kindle DX it instoles successfully but still not able to read Russian books. Please HELP!!
Perhaps you installed browser-only hack (update_unicode_fonts_droid_install_browser_dx.bin). Check if you see russian letters on http://ru.wikipedia.org/ if so you need to install full hack (update_unicode_fonts_droid_install_dx.bin)
Thank you a million!! it was my mistake. It WORKS Now !
Thank you again for the hack, its fantastic! Unfortunately the 2nd Kindle that I purchased recently has been having issues and I am about to send it back to Amazon. You mentioned in Step 7 of the uninstalling instructions that the fonts are not removed from the Kindle and that you could provide a separate patch if someone needs to take the fonts off. I would really appreciate it if I could get a patch that would completely remove the hack so I could send this back to Amazon in a pristine condition. THANKS AGAIN!!
Fantastic! The unicode font hack for the DX is great, it works on my DX. I can read web pages and books in multiple languages now!
Thanks!
Thanks for this hack. I tried it out and was really impressed with how well it works in principle, although for my purposes the results weren’t quite what I wanted. (I wanted perfect.) The issue for me is not the hack, but the fact that the K2’s small size requires reducing the font size in order to get my preferred number of words on the screen. What I read are Russian legal documents (mostly laws), where you want to see the paragraph in context, not just read along in linear fashion. But reducing to the 2nd font size renders the text too difficult to read, because of the rendering of the font. Conclusion: I need a DX so I can rely on Unicode fonts being embedded in PDFs. I wish I’d known the DX were coming out when I bought the K2.
To be honest, I tried using my own font (Times New Roman copied from my PC) and may not have followed the instructions about build-updates.cmd correctly, although no harm was done. (Others should not be so reckless as I was — follow the advice not to mess with what you don’t understand.) I then tried to run the hack again using Liberation, but the font looked identical to Times. So I cannot be sure whether I actually saw Liberation on the K2 screen.
PS: Have you tried Roman Cyrillic Standard with the hack? See http://kodeks.uni-bamberg.de/AKSL/Schrift/RomanCyrillicStd.htm.
I’m not sure whether Ted-san is working on making his darker fonts available for the DX and I can’t find any way to contact him. If he has moved on to other things, could you could tap him on the shoulder for us and let him know of your modified scripts for the DX?
Thanks
I’m not sure that you need to darken fonts on Kindle DX. It looks like Amazon fixed it themselves
Thanks a lot for your great work.
It’s working.
Just a stupid question, how I can load the books into Kindle (russian) and what format it has to be.Do I have to convert them some how?
Would be very appreciated for the help.
Nadia
“I’m not sure that you need to darken fonts on Kindle DX. It looks like Amazon fixed it themselves”
I put that notion to the test with a side by side and with a microscope and by golly you are right! Good on ’em.
Thanks
I mostly use txt files that I download from lib.ru and the like.
Another question if you don’t mind. I understand that the fonts used in a PDF document are contained within the file itself. Is it possible to replace those with, for example, the ones developed by you and by Ted?
I have a Sci. Amer. article I downloaded as a PDF to my DX and without magnification and bright illumination it is unreadably light. This concerns me about the basic viability of the DX to perform as a PDF reader as Amazon claims it does.
The example article is at:
http://www.sns.ias.edu/~malda/sciam-maldacena-3a.pdf
I’m using the droid hack on kindle 2. I copy the text from lib.ru into microsoft word and save the file as a cyrillic txt file.
The problem i’m having is that once every 5 pages or so, kindle messes up page numbers competely, showing NUMBER1 – NUMBER2 where the numbers are in reverse (i.e. 45 – 37).. then when you scroll back and forward the numbers restore but they shift (scrolling from 20-37-45 for example, then i see the problem where it shows 45-37, then when i scroll back i wind up on page number 23)
Can you give step by step instructions how you’re converting lib.ru, since it looks like the biggest russian literature source, to kindle 2 and which hack you are using?
I save *.txt file from lib.ru to disk and then remove HTML markup from beginning and end. Then I run it though custom tool that removes double spaces and restores paragraps so I can change font size without messing them up. Unfortunately I don’t have this tool at hand but this step is optional. Try simply downloading .txt file from lib.ru and copying to Kindle without using MS WinWord at all.
Thank you for your hack :)
Is it possible to use actual serif Droid fonts and if so may I ask why you decided not to do it?
Thank you!!
Serif Droid fonts have much fewer characters than sans serif fallback. For example they don’t support asian languages. If you would like to have serif and monospaced fonts – you should use liberation hack.
As a Chinese linguist by schooling (English speaker by birth) and an avid reader I have been _very_ interested in any ability to read Chinese characters on the kindle2. After getting that to work the next step was trying to get a dictionary(zh) with the same on-the-fly lookup ability as the native version. I worked on it for about 5 hours and now I got to a point where it is an actual dictionary file with “lookup” function enabled. Only the lookup ‘page’ (with the list of the words) must be hard-coded so the updated fonts do not display correctly. I know I can’t be the only one who is working to make this a reality; and at that I am probably the worst suited to do it with no prior java experience. SO I am wondering… has anyone been able to get supplemental dictionaries to work as expected? – and what luck (or maybe even if there is a single Chinese-specific-kindle-group) is there to be had or what other people have accomplished?
-hattable
In most places except book reader (home page, document list, etc) kindle software treats all text as ASCII so unicode characters will not display correctly no matter what font you install. Unfortunately to fix this you need to decompile java binaries, fix them and recompile again.
Would you please tell me how to find the root directory? I want to use my kindle for chinese book.. Thanks
Most likely it’s K:\ or whatever drive letter Kindle mounts as
I open the kindle drive,it only has three folds:audio, ducoment,picture. which one sshall I copy the hack file to. And also, My kindl is version 2.03, the update key is grey out, can you tell me what shall I do after I install the hack file. Thanks a lot
Eddie
The hack works great and finally displays Chinese on my Kindle 2, but in the Droid font the German umlauts (ä,ö,ü) are apparently missing…
What’s the requirement for fonts if I want to build my own one? I saw some Unicode TTF fonts in Windows are much bigger.
Admin,
thanx for providing the instructions. I tried it out and while the hack worked, it didn’t provide the language fix that I was looking for. Since I just got the Kindle, I’m going to return it. Before doing so, I wanted to make sure that extraneous unicode fonts are removed. Would you be so kind as to send me the bin that will remove these files.
Thanx in advance.
A question?
Does it work with Korean?
Thank you,
Hi!
Do you think you could make the instructions for using different fonts (Hebrew and Arabic for example) a bit more detailed for those of us who have less experience in these things?
Thanks
Does the hack work with the newer version, v2.1?
2.1 is the version of software used for Kindle DX. There is a separate set of hacks (found also on this page) that work on Kindle DX.
The font hack does NOT support the Arabic language. Is there a way to fix this. Thanks.
I installed the font hack, then copied the txt file in russian and at first it looked as the hack worked out perfectly. But when I started to read the book from my Kindle2 I got a problem – russian language was only on the first three pages, then the rest is unreadible (some simbols). On my computer the txt file is fine, I can see and read it, it is in russian. Why on my Kindle2 the hack works for first several pages only? Did I do something wrong?
Thanks in advance for any advice.
P.S.: this is where I got the file I am trying to read http://bookz.ru/authors/tolkien-djon-ronal_d-ruel/lordring.html
Do I need to be in US to install Cyrillic fonts and update my Kindle?
Did anyone try to use UFHack and Savory together? I have tried to install UFHack into kindle2 with Savory already installed, and it fails to install it.
How exactly does it fail?
I try to change the font as a font to read the Thai language. But it failed as a square character. What should I do to read thai.
Thanks very much for your solution.
If I uninstall the hack and want to remove the android font file from DX, how to proceed it? Do you have any simple patch file to do it, because I knew little about linux.
Thx again.
Great work. Thank you for this hack. Quick couple of questions:
1. Can you provide scripts which will remove font packs which remain after hack has been uninstalled.
2. If the hack has been uninstalled would amazon updates continue functioning uninterrupted.
Thanks again.
I have the same problem as Vera (August 8): First several pages of a txt file look great, and then all Russian charaters appear as garbage. It’s interesting that latin characters are still readable. Please help! Thanks!
You may want to try ebook text formatter to convert lib.ru texts to be usable on Kindle. Let me know if it works. Also let me know what specific book do you have problems with. You can also send converted file to [email protected]. Since this is a common problem it’s about time I took a look into it.
This happens with all UTF8 txt files – no matter how I create them. It can be as simple as a multiple replication of “English, Русский” phrase in notepad. After saving it with UTF8 encoding and copying into the Kindle (over USB), the text appears correct on the couple of first pages and then Russian is screwed from some point going on, while the English stays readable (which is strange because it looked like the file structure was corrupted from some point). The point of corruption is approximately the same for all files – after two or three pages.
I found a work around for the problem – using Mobipocket Creator, but it takes annoyingly long time.
I have the same problem as Eugene, its good on the first few pages but then it turn out garbage after…
Vera, Eugene- I found a work around to your problem!
You need to change your computer’s regional settings. You need to select Russian as your default non-unicode language on the computer’s control panel. (start menu, control panel, regional/language settings, administrative tab)
Then, go back to your .txt files you wish to store on the kindle, open and save them as ANSI format, not unicode.
The kindle will read ANSI format cyrillic just fine but for some reason stops reading unicode after 4 KB of information. I have no idea why this is, but it is.
You can use eBook Text Formatter to download and convert texts from lib.ru. It does all of the conversions automatically
To Justin: many thanks Justin, the trick did the magic. Just one small remark: I did not have the ANSI format in my list, I used the Cyrillic (ISO) format instead – worked out great.
Hello,
First, thank you for the hack – working very good.
However, I see 2 problems, that I was not able to solve:
1. I used “eBook Text Formatter” to get txt file from lib.ru. I used 1251 encoding for output and can read book nicely. The only problem is page numbers – they messed up and not showing correctly – the same problem that Mike reported on June 30th. This problem affect “previous page” button as it brings you to wrong page.
2. If I use “eBook Text Formatter” to get txt file from lib.ru but config it to UTF8 I can read few pages, then gibberish, then after few pages I can read ok, then gibberish and so on – the same problem that Eugene reported on Sep 1.
Do you know if there are any solutions for that problems ?
Thank you !