I have a Kindle Fire and it is a pretty nice piece of hardware. I use it for reading and watching videos while I travel weekly. But lately I saw that the new Android OS 4.1 (Jelly Bean) was available for it so I wanted to try it out. Needless to say it was an interesting experiment and I thought at one point that I had broken it forever. Luckily, I did not. In the end I decided to not use the Android 4.1, but to drop back to 4.0.4 because it was a little more polished and all my applications worked on it. After the upgrade the Kindle Fire feels like a new device. It responds better, does things I never expected it to do and still does all the great Kindle things I wanted it originally for.
Tools you Need:
On Windows use Kindle File Utility, I would recommend that you not run this in a VM and connect the Fire directly to a motherboard USB port. I had better luck running this tool on Windows .
Run the "install permanent root" part of the setup and that should install FireFireFire (bootloader) and TWRP (recovery tool)
On Linux use FireKit and run the install_fff_twrp_from_stock script as root (this is the actual method I used)
Once FireFireFire and TWRP are installed you now have complete control of what OS to put on the device.
So what I did next is to copy a ROM to a folder on the Kindle, doesn't matter where as TWRP will be able to navigate to it.
I got the Android 4.0.4 ROM (CM9 based) from here: http://rombot.droidhive.com/ROMs/otter/cm9/
I also got the Google apps from here: http://goo.im/gapps make sure to use the 20120429 version of them for CM9.
After the files are copied on to the Kindle, disconnection the Kindle and power it off.
Boot the Kindle (the logo should be blue now, from FireFireFire) and press the power button to boot it into "recovery" mode. This will start TWRP. First thing you should do is make a backup. This will take about 1GB of space on the Kindle so make sure you have room. After the backup is done, wipe the device including data, cache, dalvik (this will not wipe the SD card). After the wipe is done, install the ROM you just downloaded from the directory on the Kindle. Then install the gapps file you downloaded. I would recommend not flashing them at the same time, but to do one at a time.
After that you should be able to reboot your Kindle Fire and have a working Android 4.0.4 system after a few minutes of bootup.
You may also want to install the Amazon Market from here: https://www.amazon.com/app-email so that you can redownload and install the apps you have purchased before.
To enable USB storage access go to Settings -> (Device) Storage and in the top right click on the three dots and select USB Mass Storage
Kindle for Android - Book reading
Next Issue - for reading my Entertainment Weekly subscription
MX Player - for playing videos, works great with subtitled .mkv files
Netflix and HBO Go work fine