Friday, June 8, 2012

Kindle Fire for Beginners from XDA




What is this guide?

This guide is aimed at the novice Kindle Fire owner who wants more out of their device, but has been overwhelmed by all the jargon and maze of directions on what to do and how to do it. I've read through many of the threads here and I've noticed one common problem. While user-friendly tools like Kindle Fire Utility (KFU) have managed to help countless owners modify their devices, there are still a significant percentage of users who have stumbled along the way. KFU is a great utility, but because it gets the user up and running without teaching them first how to walk, any mishap results in confusion, frustration and another post on the forum asking the same old questions. My hope is this guide will provide the novice users with a general overview, some basic knowledge, and a foundation to help them seek out the answers they need without rehashing topics that have been discussed numerous times. This is not a copy-and-paste how-to guide. I've intentionally left out any commands so the reader is not tempted to fall into the same traps I'm trying to help avoid. If this is your first time with this guide, I suggest that it be read from top to bottom because the document builds upon the knowledge from the previous sections to explain the next.


What is stock? What is rooting? What is a ROM?

Stock is how the Kindle Fire was shipped to you. The term is used interchangeably to describe the original operating system loaded at the factory and the general state of your Kindle Fire. If you've done nothing more than use your Kindle Fire in the Amazon approved way (browsing, reading eBooks, using apps from the Amazon AppStore, etc.), you are running the stock software on a stock device.

The first step outside of this stock state is to root the device. With a stock device, you are using it as a standard user and not an administrator. You have no real administrative privileges and it can only be used as Amazon intended for it to be used. Just as a Windows or Mac OS based computer can be configured to prevent the standard user account from installing new software or performing other low-level tasks, the same is true of the Kindle Fire. Whether this is to protect the user from doing harmful things or locking the device down to Amazon services is a matter of perspective. However, if you want to get outside the confining box of the stock software, you will need root privileges. The process of obtaining these administrative privileges is called rooting. If you like the standard Kindle Fire user interface, but you want some other minor enhancements, rooting may be sufficient for your needs. However, there are tradeoffs for obtaining root privileges on a stock device. While you'll be able to do things like installing apps from the Android Market (now Google Play), Amazon may block services like video streaming to a rooted device. In addition, rooting officially voids the warranty on the Kindle Fire.

The more adventurous user might want to ditch the standard Kindle Fire user interface altogether and install a 3rd party ROM. Also known as flashing, installing a ROM completely replaces the stock Amazon software in favor of an entirely different operating system. This provides a brand new user experience and puts you squarely in the driver's seat of the device, controlling what you use and how you use it. A new ROM will also provide additional features not available or possible in the stock or rooted stock configuration, but you'll have to give up Amazon's Kindle Fire services altogether. Needless to say, installing a ROM officially voids the warranty on the device.

What is a bootloader? What is a recovery?

A bootloader is the first piece of software loaded onto the Kindle Fire when it is powered on or rebooted. In a nutshell, the bootloader is responsible for setting the basic hardware configuration for the device before it hands off control to an operating system. For a stock device, when the "kindle fire" logo first pops up on the display, that's the bootloader doing its job and subsequently telling the Kindle Fire operating system to begin loading. Because the stock bootloader is so limited in its function, an alternative bootloader, FIREFIREFIRE, has been developed to provide some additional functionality. One of these features is easy access to recovery... which leads us to the next question and answer.

A recovery is a mini operating system that allows the user to perform ROM installations, backups, restores, wipes, and other maintenance tasks. For Kindle Fire users, there are two choices for recovery,Team Win Recovery Project (TWRP) and ClockworkMod Recovery (CWMR). Both provide a touch interface to mostly the same set of features, but TWRP seems to be the more popular of the two. Either one will work just fine and will be the go-to spot for flashing a 3rd party ROM. If the installed operating system is malfunctioning or you just want to try something else out for a while, you can use the recovery to backup the current ROM and flash a new one. If you change your mind at a later date, you can also use it to restore a saved backup.

What is fastboot? What is adb?

Fastboot and ADB (Android Debug Bridge) are command line tools for your computer that allow for direct interaction with the device. They are both available for Windows, Mac OS X and Linux.

The 8 GB of storage space on the Kindle Fire is divided up into predefined sections called partitions. The bootloader, recovery and operating system have their own specific partitions. The primary function of fastboot is to flash or erase these partitions on the device. For example, fastboot can be used to flash FIREFIREFIRE or TWRP onto their respective partitions. Because each of these parts has their own particular partition, fastboot can flash or erase them without affecting another. One thing to keep in mind is that while the term fastboot most commonly refers to the command line tool, it can also refer to a particular mode on the Kindle Fire used to accept fastboot commands. Essentially, the Kindle Fire must be in fastboot mode for the computer to send fastboot commands to it.

ADB, on the other hand, primarily deals with file level interactions like copying a file to and from the device. However, ADB's most powerful feature is its ability to start a linux shell and execute some powerful commands directly on the device. The types of shell commands and their usage are outside the scope of this document, but most users won't be utilizing them anyway. Most commonly, adb is involved in the process of rooting the device or preparing it to flash a 3rd party ROM, then mostly unused after the process is complete.

The fastboot and adb commands require the Kindle Fire to be in specific states for the host computer to interact with the device. The fastboot tool needs the Kindle Fire to be in fastboot mode and cannot send commands to the device otherwise. Similarly, the Kindle Fire must be in recovery or booted to an operating system (with USB debugging enabled) for it to work with the adb tool. It's not possible to go back and forth between the two without at least rebooting the device.


What is a bootmode? What is a bootloop?

As the Kindle Fire powers up or reboots, the bootloader begins to do its job and checks for the bootmode of the device. The bootmode tells the bootloader how it should proceed in the boot up process. Most users will just be concerned about three of these bootmodes: normal (4000), fastboot (4002), and recovery (5001). In a great majority of the cases, the Kindle Fire will be in the normal bootmode setting, telling the bootloader to continue right on to booting the operating system. However, there are circumstances when the device needs to be started up directly in fastboot or recovery mode. This is possible by changing the bootmode setting and rebooting the device. Bootmode is a persistent setting, meaning the Kindle Fire will remember this new setting until it is changed again. No amount of restarts or ROM flashes will change the bootmode until it is explicitly changed again. This is a very important fact to remember because it's the cause of so many help requests...

A bootloop is essentially the device booting directly into fastboot or recovery mode on every start up because the bootmode has been set to that particular setting. The posts on the forum describing problems like, "stuck on the yellow triangle" or "keeps going into recovery" are in most cases caused by the bootmode setting. Technically, the device isn't doing anything wrong since it's been told by the bootmode to boot in those modes, but if the user doesn't know about the bootmode or how to set it back, it appears to be broken. The bootmode just needs to be set back to normal using fastboot or adb (KFU uses them behind the scenes to do the same), and the device can be rebooted to the operating system.

What is a brick (hard-brick / soft-brick / unbrick)?

In the strictest sense, a brick is an irreversibly broken device and about as useful as a masonry brick, hence the name. However, this slang term has come to include any malfunctioning device, so we have slightly more descriptive terms like hard-brick or soft-brick to indicate the degree of malfunction or difficulty of repair. To unbrick a brick just means to get the device back to working order.

With respect to the Kindle Fire, it's very difficult to completely brick the device unless physical damage or component malfunction is involved. In all software related bricking circumstances, the malfunctioning device can be unbricked. In 99% of the cases, you can fix it yourself with just a computer and a USB cable (maybe 2 cables, but more on this later). Only in the other 1% of the cases that involve a broken bootloader will you need more extreme measures. Unless you've dropped your Kindle Fire into the bathtub or tossed it off a building, everything will be OK. Take a deep breath, don't panic and keep reading.
How do I unbrick my Kindle Fire?

Let's get the bootloop brick out of the way first. This shouldn't even be considered a brick by definition since the Kindle Fire is actually functioning correctly and working as expected. Regardless, it gets thrown into the realm of bricks, so it's here as well. As noted in a previous section, just getting adb or fastboot to set the bootmode back to normal will fix it. That is unless something else was done to the device after the change in bootmode preventing access to adb or fastboot commands. Then it's actually a brick at that point.

Most bricks will involve a malfunctioning operating system. These are typically caused by a bad flash or accidentally renaming / removing key components of the operating system. Most of these are probably with the rooted stock Kindle Fire software since these devices are the least likely to have a recovery installed.

The one word most often used in unbricking strategies is fastboot. If fastboot commands can be issued to the Kindle Fire, it's 80% fixed and the hard part is over. All that needs to be done then is to flash a new bootloader and recovery, reboot the device into recovery, flash a new ROM, and it's fixed. Everything else involves the question of how get the Kindle Fire into fastboot mode in the first place. Because the bootloader enables fastboot mode on the device, it plays a key role in the unbricking process and dictates what needs to be done. We'll go from easy to difficult.

With the FIREFIREFIRE (FFF) bootloader installed on the Kindle Fire, a yellow triangle logo (versions 0.9 to 1.2), a kindle fire with android logo (version 1.3) or a white and blue kindle fire logo (version 1.4 and beyond) will appear on the display as the device boots up. If you have FFF installed and running, you already have easy access to fastboot mode because FFF temporarily enables fastboot mode for a short period of time as the device boots up. Send the device a quick fastboot command during this time and it will stay in fastboot mode until it's rebooted again. For just the temporary fastboot mode alone, FFF is worth the price of admission. Even if you never install a recovery and the device will only run the stock Kindle Fire software, the temporarily fastboot will save you from a bad headache if the operating system should ever go bad.


With the stock bootloader, the standard kindle fire logo will appear on the display as the device boots up. Unlike FFF, this bootloader does not have a temporary fastboot mode, so the bootmode on the device must be manually set to fastboot mode (4002) and rebooted. To set the bootmode on a stock device, adb shell commands must be executable on the system. Because unbricking typically means attempting to replace a broken operating system, the chances of getting it done this way aren't so good. Remember FFF from the previous paragraph? This is why FFF and temporary fastboot mode is like a golden ticket to unbricking, a close second to having a factory cable...

With the stock bootloader and a broken system unable to change bootmodes, a factory cable is required. A factory cable is a special USB cable able to force the device into fastboot mode. If the bootloader is working properly, the factory cable can get the device into fastboot mode without any additional help. Anyone handy enough with a soldering iron can modify a generic USB cable with a micro connector into a factory cable. Pre-made cables are also available for purchase in various places or from an XDA member for a reasonable price. With the Kindle Fire off, plug the factory cable into the USB port of the device and then the computer. The Kindle Fire will then boot up in fastboot mode. The factory cable works with either the stock or FFF bootloaders and it's a worthwhile safety net to have around. With a factory cable, unbricking just comes down to "plug it in and flash new stuff" in almost every bricking situation, except the next one...

For the unfortunate owner of a Kindle Fire with a bad bootloader, it's the worst case scenario. Without a working bootloader, the device cannot enable fastboot mode and nothing else can be loaded onto the device. Tinkering with the bootloader partition can certainly put the device at risk, but even this problem can be fixed with some surgery. Firekit offers a set of software and scripts that allows the bootloader to be loaded via USB. However, the Kindle Fire case must first be opened up to short a circuit that enables this USB boot option. Fortunately, the situation rarely comes up and careful flashing of the bootloader partition will minimize the possibility of it affecting the device.

What next?

To all readers - If you've read this far, please provide some feedback on this guide. I'd like to know if you feel it's a useful starting point for beginners and how you think it might be improved. Again, this guide is only meant to be used to build up a new user's knowledge base, so I don't intend to provide step-by-step instructions for these tasks... the guide is already long enough as it is. Otherwise, I'd like to hear what you have to say and perhaps I'll try writing some expanded tutorials in the future.

To the novice user - If you are having problems with your device, look for threads discussing similar problems. Odds are that you are not the first to encounter your specific problem and it's likely to have been discussed already. As a general word of advice... people here (and any other forum in general) are more willing to help you if you've tried to help yourself first. Try reading and searching for things on this forum. There's a lot here… I know. Take your time and digest the information. Hopefully, the base knowledge you've gathered from this guide will help you to understand the discussions. Then if you hit a wall and just can't get anywhere, write your post detailing the problem, things you've tried and what happened as a result. A post that says "It's broken, help me" will get ignored while "I've tried A, B, C and get X, Y, Z... can someone suggest an alternative?" will get a flood of responses. Good luck!

1 comment:

  1. Thanks so much. It is of great help to get started and to built up my confidence to try more. Thank you.

    ReplyDelete