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:
```bash
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