~sotirisp/kindle4-hacks

Make a Kindle 4 really yours
fc9e233d — Sotiris Papatheodorou 5 months ago
Add screensaver hack
4ada02ae — Sotiris Papatheodorou 5 months ago
Allow setting a custom name during fake registration
c7d5129d — Sotiris Papatheodorou 5 months ago
Add usage comments

refs

master
browse  log 

clone

read-only
https://git.sr.ht/~sotirisp/kindle4-hacks
read/write
git@git.sr.ht:~sotirisp/kindle4-hacks

You can also use your local clone with git send-email.

#Kindle 4NT hacks

Put the Kindle in Airplane Mode to prevent it from connecting to the Internet. Amazon will undo the jailbreak, USB networking and fake registration if this happens. Keep the WiFi disabled for the duration of the setup using ≡ Button -> Settings -> Airplane Mode

#1. Jailbreak

The jailbreak only installs an additional developer key on the device, allowing for the installation of additional packages via the Kindle's own update mechanism. This method works on Kindle 4 version 4.0.0 through 4.1.4. Guide from here.

Connect and mount the Kindle then run the following command and follow the prompts:

./scripts/kindle4_jailbreak.sh KINDLE_MOUNT_POINT

#2. USB networking

DO NOT RESTART THE DEVICE WITH A CUSTOM .bin IN THE ROOT DIRECTORY.

Connect and mount the Kindle then run the following command and follow the prompts:

./scripts/kindle4_usb_networking.sh KINDLE_MOUNT_POINT

The script assumes you have placed the public SSH key that will be used to connect to the kindle in ~/.ssh/kindle.key.pub.

#3. Fake registration

This allows using the collections feature which is otherwise restricted to registered Kindles.

Connect the Kindle with USB networking enabled and run:

./scripts/kindle4_fake_registration.sh

#4. Amazon host blocking

When connected to the Internet the Kindle will attempt to contact some Amazon servers. Contacting one of them (haven't tested which one) will result in the jailbreak being removed.

The simplest way to do this is to redirect all traffic to all the Amazon domains mentioned in some file in the Kindle's root filesystem to localhost.

Connect the Kindle with USB networking enabled and run:

./scripts/kindle4_hosts_blocking.sh

#5. SSH through WiFi

This will allow connecting to the Kindle via SSH if it's connected to the same WiFi network and at the same time easily transfer files once the Kindle is plugged-in through USB. Keep note that once the Kindle is plugged in through USB the SSH connection will be disabled until it is plugged-out again.

It is important to do this after the host blocking otherwise the previous hacks will be undone after connecting to the Internet.

  1. Disable USB networking.
  2. Connect and mount the Kindle.
  3. Edit Kindle/usbnet/etc/config.
  4. Set both K3_WIFI and K3_WIFI_SSHD_ONLY to true.
  5. Unmount and disconnect the Kindle.
  6. Re-enable USB networking. Once you connect the Kindle to a WiFi network you should be able to SSH in using the key you set-up in the USB networking script.

#6. Autostart USB Networking

Each time the Kindle is rebooted, USB networking has to be re-enabled using the cheat codes (;debugOn and ~usbNetwork).

  1. Disable USB networking.
  2. Connect and mount the Kindle.
  3. touch /path/to/Kindle/usbnet/auto
  4. Unmount and disconnect the Kindle.
  5. Restart the Kindle and USB networking should be enabled.

#Tips

  1. After copying a document onto the Kindle over SSH the library is not updated automatically. It can be updated manually by running dbus-send --system /default com.lab126.powerd.resuming int32:1 on the Kindle.

#Sources

#Keyboard commands

According to this.

;debugOn                     verbose logging
;debugOff                    non-verbose logging
~help
~usbNetwork                  starts a Dropbear SSH server
;ReadingTimeOff              switches off the reading time display
;ReadingTimeOn               switches on the reading time display
;ReadingTimeReset            resets the reading time computation
@author AuthorName keyword
@store keyword
@web keyword
@wiki keyword
@time

#Licenses

Copyright © 2021 Sotiris Papatheodorou

The scripts are available under the Creative Commons CC0 1.0 Universal license.

I do not own the copyright to the files in the archives directory.