Kindle Jailbreaking

I thought I’d have a go at jailbreaking my spare Kindle 3G to use it as a display for my Raspberry Pi (unfortunately it seems you can’t use it like a serial console, you essentially just use the Kindle to SSH over USB to the Pi). Its unregistered and has no wifi configured, so will never get any over-the-air firmware updates from Amazon.

Anyway, after remembering that my Kindle is actually a US model, not a UK one as I bought it in France, I downloaded the lastest 3.4 firmware Update_kindle_3.4_B006.bin from here, so I could do an offline update from 3.3 that was on there.

Next I downloaded the various files from this thread on MobileRead. Below is a quick’n’easy set of instructions I made as the various threads and README files made what should have been a 15min exercise into about 3 hours of reading.

0. Update firmware:
a. Copy Update_kindle_3.4_B006.bin to Kindle
b. Eject
c. [HOME] -> [MENU] > Settings -> [MENU] > Update Your Kindle

1. Jailbreak:
a. Copy update_jailbreak_0.11.N_k3g_install.bin to Kindle
b. Eject
c. [HOME] -> [MENU] > Settings -> [MENU] > Update Your Kindle

2. Install Launchpad hotkey app launcher:
a. Copy update_launchpad_0.0.1c_k3g_install.bin to kindle
b. Eject
c. [HOME] -> [MENU] > Settings -> [MENU] > Update Your Kindle

3. Install myts terminal emulator:
a. Create a customupdates directory on the Kindle and copy myts-6.zip to it (don’t unzip it)
b. Press Shift, Shift, I (quickly) to install into Launchpad
c. Press Shift, T, T which should bring up a terminal

4. Install usbnetwork hack:
a. Copy update_usbnetwork_0.47.N_k3g_install.bin to Kindle
b. Eject
c. [HOME] -> [MENU] > Settings -> [MENU] > Update Your Kindle
d. Copy your ~/.ssh/id_rsa.pub public ssh key from your PC to usbnet/etc/authorized_keys on the Kindle
e. Set USE_OPENSSH="true" in usbnet/etc/config on the Kindle
f. Eject
g. Press Del, then type ;debugOn
h. Press Del, then type ~usbNetwork
i. Press Del, then type ;debugOff
j. On host PC type: sudo ifconfig usb0 192.168.2.1 up
k. On host PC type: ssh root@192.168.2.2
l. On Kindle type: mntroot rw then: passwd root to change the root password

Note that you can change the HOST_IP/KINDLE_IP in usbnet/etc/config on the Kindle, but it must not be the same network as your LAN, its a private network over USB.

As I didn’t want USB networking mode by default but also didn’t want to have to remember the debug commands to enable it, I created a Launchpad script to toggle USB net/disk modes:

5. usbnetwork toggle script for launchpad:
a. Create launchpad/usbnet.ini containing the following:

[Actions]
# Toggle USB Network
Shift N = !/test/bin/usbnetwork

b. Press Shift, Shift, I to reload launchpad
c. Press Shift, Shift, N to toggle net/disk modes (make sure to unmount disk or exit console sessions first)

Also I found that you can setup hotplugging on the host PC so that whenever the Kindle is plugged in in usbnetworking mode, the usb0 device is upped:

6. usbnetwork hotplugging:
a. Add this to /etc/network/interfaces on the host PC:

allow-hotplug usb0
mapping hotplug
	script grep
	map usb0

iface usb0 inet static
	address 192.168.2.1
	netmask 255.255.255.0
	broadcast 192.168.2.255

Cyanogenmod 7.1.0 nightly 59

Cyanogenmod 7.1.0 nightly 59 with Android 2.3.4 (GRJ22) is available for download. I installed it on my ZTE Blade and it doesn’t seem any better or worse than CM7.0.2 N57, of course this isn’t even 7.1 RC1 yet, its RC0.

I think the main focus of 2.3.4 was on video performance which probably won’t have much of an effect on the lowly Blade which can’t even run Flash.

I’ve also been playing with K4MobiDeDRM_v02.8_plugin.zip which is a Calibre plugin to strip the DRM crap from Amazon ebooks so that your ebooks are not tied solely to your Kindle3G, and can be opened on Linux or a non-Kindle ereader application on your Android/Mac for instance.

Plain old mobidedrm.py 0.29 no longer seems to work since the 2.5 firmware, but the K4 tools add some functionality to it and now you don’t even need a PID, just your Kindle serial number.

Update 1: Nightly 60 is out, I installed it and it seems ok now (after several reboots for some reason). Apparently 7.0.3 stable is coming soon, then development can concentrate on 7.1.0 RC1.

Update 2: Nightly 62 is out as is stable 7.0.3, here’s hoping for kernel 2.6.35 in N63…..

Update 3: Just installed Nightly 63 and its still 2.6.32 albeit with some fixes in it for battery life, I/O performance and touchscreen. There does seem to be a slight hissing after using the loudspeaker, confirmed on the issue tracker.

I also installed new gapps-gb-20110503-signed.zip which provides slightly updated Google Apps like Talk with video chat for 2.3.4

Update 4: Nightly 64 is out with some new music player features. Apparently the hissing from the loudspeaker was introduced when a new /system/lib/libaudio.so was merged in to fix some VOIP issues, sometime after moving to Gen2-only. I tried the patch on N64 but it seems to mute the speaker altogether rather than just stop the hissing!

Adblock Plus

The last few days I’ve been using my Kindle 3G for internet access and was shocked at just how many adverts you have on websites these days.

As I use Adblock+ with the Element Hiding Helper for Firefox 4, along with the EasyList and Fanboy filters, I hardly ever see adverts, in fact I thought graphical ads were dead by now lol!

It’s Dad’s 65th birthday today as well as the royal wedding.

I’ve upgraded the blog to WordPress 3.1.2

I also found out that my Android phone is actually a Gen1 OLED device – as it wouldn’t boot with ClockworkMod Recovery 3.0.2.7, so to move to Cyanogenmod 7.0.2 I’d have to upgrade the radio to Gen2 using either the TPT upgrader, or more likely I’d just go with this build of 7.0.2 Nightly 57 with the radio upgrade and GoogleApps built-in. I’ll probably wait for 7.0.3 now, although I doubt that will be Android 2.3.4 yet, although the Nfc part of the Nexus-S 2.3.4 source has been pulled in (and breaks the build!)

The OLED screen has a better viewing angle, better colours and better battery life, so it was quite a find. It seems most UK Orange San Francisco’s are Gen1 as they come with Android 2.1, but most are TFT these days.

Update: I’ve also recompiled my JtR RPM’s as John the Ripper 1.7.7 has been released, now rather annoyingly with separate and incompatible jumbo-1, omp-des-4 and omp-des-7 patches! Announcement.

Weekend Saga

It’s been a funny weekend.

I woke up Saturday to find that my server had been terminated, and after some support tickets with my web host (sent to my backup email address!) it seems they had a “problem” and had accidentally deleted everyone’s virtual servers! So they issues me with two new empty servers, which I then had to restore from backups, thankfully I rsync’ed the previous evening. They’d also allocated new IP addresses so I had to update some zone files and get reverse-DNS sorted, luckily I had set my DNS TTL to 15sec, so they instantly propagated. 8 hours later I had both servers back up and working as if nothing had happened, and that day’s emails started coming in.

Next I realised I’d left my mobile SIM card in England, so phoned my carrier and found they would courier me a replacement, so then the search began for someone who would be available to take a signed-for delivery at Sunday lunchtime and mail it to me. Well that never happened for one reason or another (mainly the inability to get anyone to answer their phones on the weekend!) but luckily PP mentioned that I had a free SIM with my recently-purchased Orange San Francisco, so I managed to convince Orange to activate it for me and send me a new PIN, with the promise of topping it up with £50 worth of credit, they also gave me my free £10 topup from the Argos deal. So once again I have a UK mobile phone number with enough credit for a good few calls at 38p/minute including roaming charges!

Mum’s got addicted to Wii Sports tennis, so we were up until 2am playing mixed doubles. I’m now a pro with a score of over 1200 and have played computer players with 1900 scores.

After having a play with Mum’s Kindle3, I’ve decided to get one for myself, not least to take advantage of free 3G internet usage. I tried to read Stephen Fry’s autobiography, The Fry Chronicles using FBReader and Kobo Desktop on my netbook the other night, and it was just too bright, and like on my Android phone it had too much glare in the sun during the day, so not really successful. Of course if I go on holiday anywhere now I’m going to need a rucksack to carry my netbook, Kindle and smartphone alone!

I’ve upgraded the blog to WordPress 3.1.1

Kobo Desktop

I quite like the Kobo application on Android, so was disappointed to see that there isn’t a Linux client. Until I found there soon will be!

You can download the pre-release Ubuntu binary from here.

I’ve got it working on Fedora14 by roughly using these instructions.

Essentially you extract the .deb file into /opt/kobodesktop and create a shell script to set the environment variables to point to the statically-linked Qt/OpenSSL libs, and a desktop launcher file to run that from your Applications->Office menu.

/opt/kobodesktop/kobo.sh

#!/bin/sh

QT_PLUGIN_PATH=/opt/kobodesktop/usr/local/Trolltech/Qt-4.6.2/plugins 

LD_LIBRARY_PATH=/opt/kobodesktop/usr/lib:/opt/kobodesktop/usr/local/Kobo:/opt/kobodesktop/usr/local/Trolltech/Qt-4.6.2/lib 

/opt/kobodesktop/usr/local/Kobo/Kobo

/opt/kobodesktop/kobo.desktop

[Desktop Entry]
Name=Kobo Desktop eReader
Exec=/opt/kobodesktop/kobo.sh
Terminal=false
Type=Application
Icon=/opt/kobodesktop/usr/local/Kobo/Kobo.png
Categories=Office;

Apparently you can run the Amazon Kindle for PC app under WINE (instructions) but that’s no solution to me, and the ebook reader that comes with Calibre I don’t really like and FBReader is pretty basic too, so this is quite useful – you can even browse the Kobo store and sync with your Android.

Update: Calibre is now at version 0.7.52