Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save santatic/9a61f27bf43800c82d6f35849060357a to your computer and use it in GitHub Desktop.
Save santatic/9a61f27bf43800c82d6f35849060357a to your computer and use it in GitHub Desktop.
How to Unbrick a Kindle Paperwhite

How to unbrick an Amazon Kindle Paperwhite?

This guide instructs you in how to unbrick an Amazon Kindle Paperwhite. The consequences of following it are your own responsibility. This method (opening the Kindle and using the serial interface) should be a last resort and should only be considered if other methods fail

Prerequisite

Hardware

  • Prying tool
  • Screw driver
  • USB to serial cable (1.8V the best, other not tried and may fried your kindle)
  • USB to micro USB cable

Software

  • Putty/Kitty/Pietty
  • Fastboot-Kindle (Pre-compiled binary for Linux and Windows available, for Mac OSX User, please download and build from the source)

Firmware

  • Download Paperwhite Image, unpack and modify as shown

        wget http://ixtab.tk/kindle-touch-images/PaperWhite/pw_5.2.0-diags_kernel.img.gz
        wget http://ixtab.tk/kindle-touch-images/PaperWhite/pw_5.2.0-main_kernel.img.gz
        wget http://ixtab.tk/kindle-touch-images/PaperWhite/pw_5.2.0-mmcblk0p1.img.gz
        wget http://ixtab.tk/kindle-touch-images/PaperWhite/pw_5.2.0-mmcblk0p2.img.gz
        gunzip pw_5.2.0-*.img.gz

How to modify pw_5.2.0-mmcblk0p2 to automatically dd pw_5.2.0-mmcblk0p1 to the system partition

Why

Unfortunately pw_5.2.0-mmcblk0p1 is too big for fastboot (or, fastboot doesn't like it for some reason). This causes us a little bit of grief because we need to use some other means to get it onto our kindle

We'd usually use the 'dd' tool on the kindle over ssh to copy this file to its respective partition; however, Amazon has removed the diagnostic partition's ssh application, so we can't use that to copy the file to the kindle and dd it.

Instead, we'll just mangle the diagnostic image to 'dd' the file after it's done initializing filesystems.

Procedure

  1. Back up then mount the diagnostics image to some directory
    cp pw_5.2.0-mmcblk0p2.img pw_5.2.0-mmcblk0p2.img.bak
    mkdir mmcblk0p2
    mount -t ext3 pw_5.2.0-mmcblk0p2.img mmcblk0p2/
  1. Open its /etc/upstart/diags file (the diagnostics boot script)
    vim mmcblk0p2/etc/upstart/diags
  1. At the end of init_filesystems function, before the "#end script" comment, add
    # INSTALL MAIN PARTITION FROM USERSTORE
    f_log I filesystems installdata "KINDLEFIX looking for /mnt/us/mmcblk0p1.img ..."
    if [ -e /mnt/us/mmcblk0p1.img ] ; then
      f_log I filesystems installdata "KINDLEFIX found mmcblk0p1.img, trying to install" I
      dd if=/mnt/us/mmcblk0p1.img of=/dev/mmcblk0p1 bs=4K
      f_log I filesystems installdata "KINDLEFIX Install successful" I
    fi
  1. Unmount mmcblk0p2
    umount mmcblk0p2/
  1. Now when we flash pw_5.2.0-mmcblk0p2.img, it'll automatically check the userstore directory for a file named 'mmcblk0p1.img' and flash it to the system partition

Procedure

  1. Pry open Kindle using a prying tool (*The cover is just sticked with double-side adhesive tape, without any snap-in joint)
  2. Unscrew the screen and remove it from the base. (*Note that there's a screw hidden under the adhesive at the top in the middle)
  3. Solder tin wire to serial ports on the bottom
  4. Attach tin wire to USB TTY device (order is ground, RX, TX, from the kindle's perspective, where GND is the smallest pad) and plug USB TTY device into your computer
  5. Open Putty/Kitty/Pietty on your computer in serial mode, with the serial port specified as your USB device and baud configured to 115200
  6. Reboot kindle
  7. When the kindle is booting, repeatedly pressed enter on your computer's keyboard
  8. Now that we're in the bootloader, run bist fastboot to put your Kindle into fastboot mode and run fastboot
  9. Connect the micro USB port of the Kindle Paperwhite to your computer by USB
  10. On your computer, open your terminal/commmand prompt, run ./fastboot (Be careful not to run fastboot, as that may use an installed Android fastboot binary). This will list the paritions on your Kindle Paperwhite
  11. Run the following commands under your terminal/commmand prompt
    ./fastboot flash system pw_5.2.0-mmcblk0p1.img
    ./fastboot flash kernel pw_5.2.0-main_kernel.img
    ./fastboot flash diags pw_5.2.0-mmcblk0p2.img

to flash all of our images to the Kindle Paperwhite EXCEPT for the main system image

  1. Run the following under your terminal/commmand prompt to reboot your Kindle and get into Diags mode
    ./fastboot setvar bootmode diags
    ./fastboot reboot
  1. Once your kindle's booted to diags mode, start USB mode
  2. Rename pw_5.2.0-mmcblk0p1.img to mmcblk0p1.img and copy it to your kindle
  3. Safely unmount your kindle
  4. Reboot your kindle into diagnostics mode again from the "Exit, Reboot or Disable Diags" menu
  5. If you're watching your Kindle's serial output as it boots, you should see something like
    /dev/loop/0: 84 files, 44940/174079 clusters
    info filesystems:installdata:KINDLEFIX looking for /mnt/us/mmcblk0p1.img ...:
    info filesystems:installdata:KINDLEFIX found mmcblk0p1.img, trying to install:I
  1. This indicates that it's flashing the system partition. It will take a while, during which the Kindle will only show the Amazon Kindle screen
  2. Once diags mode has booted, open "Exit, Reboot or Disable Diags", hit disable diagnostics, then hit continue. This will reboot your kindle.
  3. Hooray! Your kindle is now unbricked.
  4. Optionally delete the mmcblk0p1.img on your Kindle over USB. If you leave it there, every time the diags tool is run, it'll flash it to the system partition.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment