Custom screensavers on a Kindle 4

After seeing the fairly pedestrian and pretty crappy default screensavers one time too many, I figured it was time to bust open the Kindle and put my own on there.

A quick google reveals that you don’t even need one of the firmware hacks on the new devices. It’s pretty easy, but the set up is done on a Windows PC, which will put some people off trying it. Fear not. It still works for us Mac OS X users.

Basically, you create a file on the Kindle with a specific name. This kicks the Kindle into diagnostic mode, allowing you to set USBnet on (you connect to the Kindle like it was another computer), ssh in, rename the old screensaver folder, make a new one, and symlink it to the area of the Kindle that mounts on your desktop.

Easy eh?

So taking it a bit more slowly, connect the Kindle via USB to your Mac. In TextEdit, create a new file, then save it with the filename ENABLE_DIAGS (no .txt or anything) and just save it into the mounted Kindle drive and reboot (Settings > Menu > Restart)

Next, with the diagnostics menu up, select the following—

usb networking > Misc individual diagnostics > Utilities > Enable USBnet — then click the right button on the directional pad.

Next, I plugged the Kindle in again, and was alerted by System Prefs / Networking that a new device had been located, and should I continue and set it up. Yes. Go into the Advanced menu and set the TCP/IP settings as follows—

IP: 192.168.15.1
Subnet mask: 255.255.255.0

Leave everything else blank.

Next, fire up Terminal, and ssh into the Kindle. Things to know: the login/pass is root/mario!

$ ssh root@192.168.15.244

and enter the password, mario.

Now there’s a bunch of terminal commands that you have to run, firstly to make the drive’s filesystem writeable, then to move the old screensaver to a backup, create a new one, then do the aliasing into the mounting Kindle drive space. I didn’t discover these commands, they’re out there. Copy/paste them one at a time, and hit enter after each one.

mntroot rw
mkdir /mnt/us/screensaver
mount /dev/mmcblk0p1 /mnt/base-mmc
mv /mnt/base-mmc/opt/amazon/screen_saver/600x800 /mnt/base-mmc/opt/amazon/screen_saver/600x800.old
ln -sfn /mnt/us/screensaver /mnt/base-mmc/opt/amazon/screen_saver/600x800

Screen shot 2012-03-26 at 17.21.50
That’s it. Time to exit diagnostics mode and reboot. To do this, hit the right button on the directional pad until you see Exit, Reboot or Disable Diags. Choose this, and confirm by clicking the left button on the diagonal pad. The Kindle should reboot.

Plug the Kindle back in via USB, and when the drive mounts, you should see a screensavers folder. Copy your 600×800 sized PNG or JPGs in there, and reboot the Kindle. I’ve used full colour or black and white pics, in both formats, with any filename, with no issues.

You may be limited to just 34 screensaver images. No, I don’t know why! This might be incorrect, will have a tinker with this soon. Also, be sure to wait a few minutes if you don’t see the screensavers instantly after the reboot. I think the system scans the folder contents.