- Get to fastboot mode
- Use fastboot flash to install a recovery
- Use recovery to flash a bootloader and ROM
WARNING: Multiple users have reported problems with fastboot when using a USB 3.0 port. This is probably a bug in the fastboot program. Move the cable to a USB 2.0 port before using fastboot.
Identifying The Bootloader
Because the bootloader is responsible for enabling fastboot mode, one must be loaded and working properly to issue fastboot commands to the Kindle Fire. To determine which bootloader is booting the device, take note of the bootlogo on the display when it first powers up.
Stock Bootloader - white and orange "kindle fire" logo
FireFireFire (versions 0.9 to 1.2) - yellow triangle with flames
FireFireFire (version 1.3) - white and orange "kindle fire" logo with green android
FireFireFire (version 1.4) - white and blue "kindle fire" logo
Recognizing fastboot mode
The Display - As the bootloader loads up on the device, one of the previously mentioned bootlogos will appear on the display. With fastboot mode enabled, that bootlogo will be persistent and remain bright on the display. If the display blacks out and redisplays the bootlogo with the backlight slightly dimmed, the bootloader has bypassed fastboot mode and moved on in the boot process.
The bootlogo on the display is the easiest way to see whether or not the device is putting itself into fastboot mode. Again, when the device is in fastboot mode, the bootlogo will appear on the display upon start up, never black out, and remain bright on the screen.
The Device Manager - In the Windows Device Manager, "Android Phone -> Android ADB Interface" will appear in the list when the device drivers have loaded properly. If "Other devices -> kindle" (with 'k' in lower case) appears in the list instead, the proper device drivers have not been loaded and the device drivers must be reinstalled.
Hardware IDs - Also in the Windows Device Manager, right-click on whatever interface name appears for the connected device and select "Properties" from the contextual menu. In the window that appears, select "Hardware IDs" from the drop-down menu. When the device is in fastboot mode, one of the following sets of IDs will appear in that window.
USB\VID_18D1&PID_0100&REV_0100Windows identifies each USB device by these three numbers, the VID, PID and REV. Only these two sets of hardware identification numbers will appear when the Kindle Fire's bootloader is running. If the numbers differ at all, the bootloader no longer controls the device and therefore not in fastboot mode.
Linux users can use "lsusb -v" to get a list of all connected USB devices. The corresponding IDs are idVendor, idProduct and bcdDevice. Mac OS X users can use "system_profiler SPUSBDataType" and those IDs will be listed as Vendor ID, Product ID and Version in the list. The numbers are formatted slightly different than their Windows counterparts, but it's straightforward to determine what they are.
Methods for Enabling Fastboot Mode
Realistically, there are 3 potential methods of enabling fastboot mode on a working bootloader. There is a 4th method, but it should only be considered as a last ditch effort because the case must be opened for access to the motherboard. Let's cover the first 3 methods...
Factory cable - Using a factory cable is the most straightforward method of enabling fastboot mode on the Kindle Fire and it will work with any bootloader. With the device off, plug the cable into the Kindle Fire, then the computer and the device will boot up directly into fastboot mode. No other user intervention is required.
Temporary fastboot mode - The FireFirefire custom bootloader temporarily enables fastboot mode for a short amount of time. Issuing a fastboot command like...
fastboot getvar product
Bootmode setting - The Kindle Fire has a bootmode setting that indicates to the bootloader how to proceed in its booting process. One of these bootmodes (4002) will tell the bootloader to enable fastboot mode. The bootmode setting is recognized by all bootloaders, so even the stock bootloader will go into fastboot mode when the bootmode is set to 4002. The only place this feature is likely to be used is from the system software, but there's a catch. The system must be able to provide access to a shell prompt.
For an unrooted stock device, use pokey9000's fbmode.
For a rooted stock device...
adb shell su -c 'idme bootmode 4002'
adb shell idme bootmode 4002
exec '/system/bin/sh' failed: No such file or directory (2)appears when attempting to any of the above methods, the system cannot provide shell access. Consequently, the system will not be able to change the bootmode in this manner.
Making the decision
Then the choice of which method to use in order to enable fastboot is simple:
Do you have a factory cable available?
Does the device have a bootloader with temporary fastboot?
Can the device be booted into a system that can grant shell access?
With a working bootloader, the first question to which you can answer in the affirmative is your best choice. If the device does not have a working bootloader or you've answered "no" to all of the above, there's only one option remaining to you. Remove the back cover of the Kindle Fire to get access to the motherboard, short an exposed connection to the metal frame and employ pokey9000's Firekit. This procedure will set the device into USB bootmode and Livekit can upload a fastboot mode enabled bootloader through USB.
Getting out of fastboot mode
To get out of fastboot mode, make sure the bootmode is set to something other than 4002 and reboot the device. The examples below will set the bootmode to normal and reboot the device.
With the stock bootloader...
fastboot -i 0x1949 oem idme bootmode 4000 fastboot -i 0x1949 reboot
fastboot oem idme bootmode 4000 fastboot reboot
Using Fastboot commands and other information
There are many guides related to fastboot. Here are just a handful of starting points...
Installing Windows device drivers for fastboot
A list of fastboot commands
Using fastboot to install TWRP (See "Installing a recovery and custom bootloader")