I wrote an article earlier this month called "Rooting your Kindle Fire: A cautionary tale." This outlined my efforts to root my first generation Kindle Fire in order to install the Android 4.2"Jelly Bean" operating system using instructions by Brad Linder of liliputing.com. I wanted to do this for the sake of science and also to expand the capabilities of my Kindle since the full Android OS can offer options not available under the Amazon-based Kindle OS - the use of the Google Play store for instance.
The rooting process was based on a program called the "Kindle Fire Utility"which can root the Kindle and add bootup or configuration options so you can then install a different OS (known as a "ROM").
I described the issues I had with my laptop not recognizing the driver for the Kindle, stating that my desktop did so successfully and allowed me to [attempt to] install a function called "TWRP Recovery." TWRP is a boot manager which provides backup/restore and ROM installation functionality needed to put the full Android OS on the device.
I ran the Kindle Fire Utility from PC with the Kindle hooked up to it then selected option #3 for TWRP Recovery:
Unfortunately, things went poorly at this stage. After trying to install TWRP my Kindle rebooted and would only show the "Kindle Fire" logo. I couldn't connect to the device with the Kindle Fire Utility since it showed the Kindle status as "Offline." On an obviously related note, my desktop computer kept complaining it couldn't find the driver for the Kindle even though it had previously recognized it just fine.
The unhappy conclusion of my article was eerily similar to the ending of the film "The Empire Strikes Back," in that the bad guys (or Murphy's Law, at least) seemed to have triumphed by encasing my Kindle in what might as well have been a block of carbonite - it was unbootable, apparently beyond recovery. No tips or tricks I encountered online seemed to help; the bulk of the available material assumed a valid driver for the Kindle was present and working. For example, an article on AndroidAuthority.com titled "How to Unbrick your AmazonKindle Fire" (also recommended by a commenter on my article named I_Creech) provides some great rescue tips but requires functional connectivity to the Kindle.
I put the Kindle in a drawer and thought about my next step. A line from one of Brad's related articles kept popping to the surface of my mind: "While it's tough to truly damage your Kindle Fire or leave it in an unbootable state, it's pretty easy to leave it in a state that's difficult to recover from without trying a half dozen different recovery techniques."
I thought to myself "the failed process hadn't been tough at all; rather, it was extraordinarily easy. I don't see too many other techniques to try since the desktop PC can't communicate with the... wait a second, what's the first law in IT troubleshooting (besides rebooting)?"
If something won't work on one system, try it from another.
I plugged the Kindle into my laptop, fired up the Kindle Fire Utility, and beheld the following screen:
That "ADB Status: Online" indicator means the program saw the Kindle successfully and showed a valid driver in Device Manager!
I proceeded to access the "Bootmode Menu," where an online tip had advised me to choose "Normal," in order to return the Kindle to its prior functional state. It rebooted and the Kindle came back to life. I didn't even lose any apps or data!
Now, I said in my prior article that I doubted I would attempt rooting the Kindle again, but the context of that remark was "If I had to buy another one." Since I now knew how to restore the Kindle if the same issue occurred again, I decided to proceed with rooting and putting the full Android OS onto it. After all, if I didn't there wouldn't be a story to tell here today, would there?
Let's continue with our regularly scheduled programming
When I was ready to proceed I downloaded the Android 4.2.2 ROM and Google Apps package (needed if you plan to use Google Apps, which seems necessary for accessing Google Play) from the xda-developers forum. The Android ROM was called "jb-4.2.2-kfire2-hashcode-2013-02-12.zip." I saved these files to the internal storage of the Kindle Fire to make them accessible when booting into recovery mode.
I launched the Kindle Fire Utility and once more chose option #3 - Install Latest TWRP Recovery:
The utility downloaded the app from the internet then rebooted the Kindle. Windows announced it saw the driver and had installed it properly. The Kindle Fire screen then showed me the following:
The Kindle had the normal logon screen after it came up, which made me breathe a bit easier even though I knew how to fix things this time if they went wrong again.
The instructions stated I then had to install the FireFireFire Bootloader. This is a custom bootloader which allows you to get into recovery mode (among other things). I did this by choosing option #5 in the Kindle Fire Utility. This worked as well:
It got a bit like following a trail of bread crumbs in the forest from here on out. The original instruction article led me to a related article with further details called "How to root a Kindle Fire with Software Version 6.3.1." Those guidelines advised me to install "Permanent Root" using the Kindle Fire Utility:
I chose option #2, which worked successfully:
Things got more interesting after that. The Kindle now showed a tiny notice at the bottom upon startup which read "Press power button for boot menu." I left it alone, figuring the permanent root installation was still going, and then beheld the following screen:
The next recommendation was to boot to the recovery menu and make a backup of the device, just in case something went horribly wrong. Seemed like a good idea to me.
I powered off the Kindle, powered it on then saw the "Press power button for boot menu" notice again. I held down the power button and then the following selections appeared:
- Normal Boot
- Reset Boot Mode
Pressing the power button toggled among these options, so I went to "Recovery" and when I released the power button the Kindle booted TWRP. I then saw the TWRP recovery mode screen:
I chose "Backup":
I swiped to start the backup. It proceeded to do so and completed successfully.
The instructions said to perform a full wipe of the device, so I went back to the main TWRP menu and tapped "Wipe" then "Factory Reset." I swiped to confirm the action, then went back to the main menu and chose the "Install" option.
I browsed for the jb-4.2.2-kfire2-hashcode-2013-02-12.zip file I had downloaded and saved onto the storage volume of the Kindle. All I had to do was tap it and then swipe to confirm the flash.
Unfortunately, it failed. I got the error message that the ROM couldn't be installed. Ok....
Back to the drawing board
No problem, there are plenty of fish in the sea in the way of ROMS for the Kindle. I rebooted my device so I could connect it to my PC and load another ROM (I had to press the power button then choose "Normal Boot"). I downloaded the HellFire Jelly 2.4 ROM per another article I found discussing the topic - as a bonus, this ROM contains Android 4.3 and has Dropbox already installed!
I rebooted the device into recovery mode, tapped Install then selected the .zip file (AmazonHFJ2.4hf-10.2-Release-otter.zip). Things worked much better this time; I viewed status messages stating "Finding update package," "Opening update package," "Installing update," and so forth.
The screen then displayed the message "verifying partition sizes" for an unsettling amount of time and then nothing seemed to happen. I used the TWRP menu to reboot it figuring I'd give it another try, but apparently the ROM had actually installed properly; I saw a "Hellfire" logo upon startup then saw the message: "Android is upgrading."
This seemed to complete successfully then produced the error: "Unfortunately, the process com.android.phone has stopped." This made sense to me since the Kindle doesn't have phone functionality. I tapped "OK" to that message but it just kept coming back in an annoying loop. I was tantalizingly close to my destination; the Kindle screen displayed the familiar Android layout:
I rebooted the Kindle into recovery mode then reinstalled the Android OS ROM and the Google Apps package as well. I restored the Kindle backup I had taken, choosing only to restore apps and data (not system, which would put my Kindle back to the original Amazon-based OS). I rebooted the Kindle via normal mode... and it hung. This stuff isn't for the faint-hearted or impatient.
I used recovery mode to wipe the Kindle. Then I installed just the Hellfire ROM and rebooted. This time it came up with the same "Hellfire" Logo, and when the device finished booting it worked just fine! The Android OS was fully functional and provided apps such as the Amazon Appstore, a music player, a web browser, calendar/contact apps, an email client, Facebook, Flash Player, a file manager, terminal emulator and more. There was no native client to read PDF files, but I can install it from the Amazon Appstore - or Google Play.
Since I can't leave well enough alone (and I wasn't done testing yet), I rebooted the device into recovery mode one more time, installed the Google Apps package then rebooted. I saw the status message "Android is upgrading," then logged in. The prompt "Unfortunately, Setup Wizard has stopped" kept coming up even after multiple reboots.
Wiping the slate clean
Although I hadn't gotten as far as working with Google Play on the Hellfire ROM, I was satisfied that testing had been successful - the ROM itself might have been a bit flaky, but the rooting/OS installation procedure is sound. I restored the Kindle back to the default Amazon-based OS (the way it was before I started experimenting) by booting into TWRP recovery mode and running a restore of apps, data AND system. That's the beauty of the process; while it is challenging and has some snags, you can easily get back to where you were if you follow the steps appropriately.
Now that I know the technique works I'll try other ROMs with other features to see what they can do; it's great to have this kind of flexibility - not to mention the chance to learn how the innards of these devices work!
Scott Matteson is a senior systems administrator and freelance technical writer who also performs consulting work for small organizations. He resides in the Greater Boston area with his wife and three children.