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—

Subnet mask:

Leave everything else blank.

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

$ ssh root@

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.

  • Zach

    Man, I tried this, but it doesn’t seem to be loading the images.. here’s the terminal info:

    ‘[root@[192_168_15_244] root]# mntroot rw
    system: I mntroot:def:Making root filesystem writeable
    [root@[192_168_15_244] root]# mkdir /mnt/us/screensaver
    [root@[192_168_15_244] root]# mount /dev/mmcblk0p1 /mnt/base-mmc
    [root@[192_168_15_244] root]# mv /mnt/base-mmc/opt/amazon/screen_saver/600×800 /
    mv: can’t rename ‘/mnt/base-mmc/opt/amazon/screen_saver/600×800’: No such file or directory
    [root@[192_168_15_244] root]# ln -sfn /mnt/us/screensaver /mnt/base-mmc/opt/amaz
    [root@[192_168_15_244] root]# Connection to closed by remote host.
    Connection to closed.


  • Jan

    The whole thing is working really well for me and my screensavers are showing up, there is only one problem.

    It shows each picture one after another, I’ve got about 20 in the folder, after it showed the last one of them it just shows a blank screen and no picture until I reboot the Kindle.

    Is there any way to make it cycle through the images, I think it should be doing that anyway, how can I fix that?

  • Crallion

    Zach: The blog seems to have automatically changed certain characters.

    Manually change all occurrences of ‘x’ (the multiplication sign) with ‘x’ (the letter).

  • Thanks Zach, I’ll fix that now.

  • sigh9

    thanks for this – I’m getting an error on sshing to the kindle:
    “ssh: connect to host port 22: Connection refused”

    any thoughts on what that might mean? it’s a brand new fresh-out-the-box kindle4

  • Aimee

    Please help!
    The terminal is not accepting the paswword.

    Last login: Sat Aug 18 10:31:43 on ttys000
    MacBook-Pro-de-Aimee:~ Aimee$ ssh root@
    root@‘s password:
    Permission denied, please try again.
    root@‘s password:

    if i type in “mario” i get “Permission denied, please try again.” ……what am I doing wrong??

  • Savanna

    I completed the instructions and everything seemed to be fine except when I rebooted my kindle the screen savers didn’t show. Even after waiting and another reboot and more waiting. Any suggestions?

  • @Aimee, I wonder if they’ve updated passwords with newer versions of the OS on the Kindle? See if this page helps you —

    @Savanna – I had the same problem. I left the Kindle alone for a while, maybe turned it on and off, and they eventually worked. How many images have you put in the folder? Too many and it does take quite a while.

  • same here. any ideas?

  • Good contribution

    Sweet copy pasta article. A shame there are so many people in the comments having trouble — looks like you’re a no-show. No surprise there.

  • Tbone

    I got a white screen and couldn’t figure it out for ages. Turns out the command:

    ln -sfn /mnt/us/screensaver /mnt/base-mmc/opt/amazon/screen_saver/600×800
    if copy pasted has a strange character instead of the ‘x’ – replace that and you should be gravy.

  • Thanks! I’d corrected 2 instances of the rogue ‘x’, but missed the third. Thank you for taking time to comment on the post. I’ve updated the text to reflect your comment.

  • I tried this. Thanks!

  • Thanks for you’re sharing.

  • You are
    obviously knowledgeable in this area. You kept this content smart and
    very engaging.

  • danno

    Warning: this does not work with Kindle 4 running firmware 4.1 or higher! In this firmware the ssh root access by USB is not functional, and you will get a connection refused on port 22 message as reported below.

    What’s more you will find a big problem trying to exit from diagnostic mode. It will give you a message saying device info xml not found and will not exit.

    You can get out by going to the very first menu item called Device setting, then create file info on the menu that appears. then go back and exit diagnostics and reboot.

  • Thanks, I’ll fix that now.

  • andybiker

    Thanks for this, I used this with my paperwhite (but with a different directory)


    A couple of gotchas I found:

    The screensavers must start at number 00

    there must be no gaps in the numbering!