The Amazon Kindle Fire is is a 7 inch tablet designed to access Amazon’s digital book, music, movie, and app stores. But we’ve already seen that you can root the device, install the Android Market, and run many third party apps which aren’t available from Amazon.
If that’s not enough for you though, it’s surprisingly easy to replace the Kindle Fire operating system with a different version of Android which isn’t as tied to Amazon’s services.
The first version of CyanogenMod 7 for the Kindle Fire was released recently, and while it’s still a little rough around the edges, the operating system works surprisingly well on the Kindle Fire. It also takes less than 10 minutes to install, assuming you already have all of the prerequsites in place.
There’s also now a tool that makes it possible to revert back to the official Amazon software, so the entire process is reversible. With that in mind, I went ahead and installed CM7 on the tablet today and switched back to the Amazon software… twice. The process isn’t really for beginners, but it’s fairly painless if you’ve ever installed a custom ROM on an Android phone or tablet before.
Update: It’s now also possible to install an early build of CyanogenMod 9 based on Android 4.0 on the Kindle Fire. It’s still rough around the edges and has a number of bugs to work out, but if you want to try it, you can follow our step-by-step installation guide.
Here’s a step-by-step guide, based on information and files released by xda-developers forum member JackpotClavin. If you want to know how to revert from CyanogenMod 7 to the stock Amazon Kindle Fire software, scroll down to the section near the bottom.
CM7 is based on Google Android 2.3 Gingerbread, but JackpotClavin is already working to bring Android 4.0 Ice Cream Sandwich to the Kindle Fire.
Before you get started, you should know that there’s at least one major bug affecting CM7 on the Kindle Fire: Audio doesn’t work. Graphics and video looks great and the tablet is excellent for surfing the web, playing games, or performing other activities, but if you need audio you might want to hold off on installing CyanogenMod for now.
Update 1: While original developer JackpotClavin has moved on to porting Android 4.0 to the Kindle Fire, another developer has picked up where he left off and audio is now working. All you need to do to get sound working is use Whistlestop’s update.zip file instead of JackpotClavin’s. The links below have been updated.
If you’ve already installed Jackpot’s CM7, you should know that you will lose data and apps if you switch to Whistlestop’s. The only easy way to install a new operating system on the Kindle Fire right now is to essentially perform a clean install, writing over any pre-existing data. Anything stored in the “sdcard” portion of your storage should still be safe though, so if you’ve downloaded apps, books, or other documents they may not be erased.
Update 1.5: The latest version also adds support for hardware-accelerated video playback.
Update 2: There’s now a much simpler way to install CyanogenMod or other operating systems. Instead of relying on modified ClockworkMod tool using the method described below, you can use the new TWRP 2.0 custom recovery which supports touchscreen input. To install it:
1. Download and run the Kindle Fire Utility on a Windows PC.
2. Root your tablet by choosing the option to install permanent root.
3. Choose the option to install latest TWRP Recovery.
4. Download the latest build of CyanogenMod 7 or another operating system and copy the update.zip to your Kindle Fire.
5. Reboot your device into TWRP by shutting down the tablet, then pressing the power button when you see a yellow triangle with a fire icon in the center.
6. At this point it’s a good idea to create a backup of your system using TWRP 2.0’s backup option. You can then restore later if you need to.
7. From the home screen choose the “install” option and use the file browser to locate your update.zip file.
8. Select the update.zip file and then choose the “flash option.”
9. Reboot your Kindle Fire and after a few minutes you should be running CyanogenMod 7.
You can still do all of this using the steps below, and it’s not a bad idea to familiarize yourself with them in case you run into trouble.
Also, you may not be able to use the Amazon Instant Video app, and the Kindle app from the Kindle Fire which supports Amazon’s eBook lending library, personal documents, and other advanced features doesn’t work. Instead you’ll have to use the official Amazon Kindle app for other Android phones and tablets.
In order to install CyanogenMod 7 on the Kindle Fire you’ll need to have the Android Software Developer Kit (or at least adb) installed on your computer. You’ll also need to have rooted your Kindle Fire.
I’ve already posted instructions for installing the SDK and rooting the Kindle Fire, so if you haven’t already done those things, you might want to follow those guides first.
I’m working on a Windows computer, so the rest of this tutorial will assume you’re using Windows 7. But the process should be very similar if you’re using a Linux or Mac machine with the Android Software Developer Kit installed.
Step 1: Download 5 files to your computer
JackpotClavin has posted links for the 5 files you need to get started. You can find download links at the xda-developers forum, and you should always check there first because the links may change if the files are updated.
But as of December 6th, 2011, here are links to the latest files you need:
Download each of those files to your computer and place them in a directory. For now I’m going to assume that directory is called c:\cmfire.
Note that you may need to rename some of the files, especially if you’re using Windows. For instance, when I downloaded the log and last_log files, they were called log.txt and last_log.txt. Just right-click on the files in Windows Explorer, choose “rename” and remove the .txt from the end so that the files are just called log and last_log.
Step 2: Copy 4 files to your Kindle Fire
Connect your Kindle Fire to your computer with a USB cable. It should automatically show up on your PC as a USB mass storage device. Just copy and past all the files except stockrecovery.img to the root directory of your Kindle Fire. (It’s probably fine if you do copy stockrecovery, but you won’t need it for a little while).
Note that “root directory” doesn’t mean a directory called “root.” What I mean is that they shouldn’t be in any folder at all. They should just be in the base directory of your tablet.
JackpotClavin also suggests confirming the md5sums of the update.zip and updaterecovery.img files to make sure they’re not corrupted or incorrect. If they don’t match the values listed at the xda-developers forum you should not proceed as you could run into trouble.
You can find instructions for verifying the md5sums at xda-developers.
Make sure to unmount your Kindle Fire when you’re done, so that it’s not treated as a USB mass storage device by your computer.
Step 3: Move log files to a /cache/recovery directory
This next step will only work if you have already installed the Android SDK and rooted your Kindle Fire. In fact, I had already rooted my tablet, but for some reason had to root it again before I could proceed. So you may also need to run SuperOneClick again if you received any errors letting you know that you don’t have permission to create folders in the steps below.
- Open a terminal or command prompt. On a Windows computer you can do this by opening the Start Menu and typing “cmd” (without quotes) into the run box.
- Navigate to the directory where adb is installed on your computer. On my PC, for instance, that means typing “cd /” and pressing return to get to the root directory, and then “cd program files\android-sdk-windows\platform-tools” and pressing enter.
Now enter the following commands, pressing enter after each:
- adb shell
- cd cache
- mkdir recovery
- cd /
- cp /sdcard/log /cache/recovery/
- cp /sdcard/last_log /cache/recovery/
That should connect you to the tablet, navigate you to the cache directory, create a new subdirectory called “recovery” and copy the log and last_log files to that directory.
Step 4: Flash ClockworkMod Recovery
Now it’s time to flash the ClockworkMod Recovery that you copied to the SD card and reboot into recovery mode.
Type the following commands and press enter after each. If you’re still using the adb shell you can skip the first one, but if you’ve exited the shell, make sure to open it again:
- adb shell
- dd if=/sdcard/updaterecovery.img of=/dev/block/platform/mmci-omap-hs.1/by-name/recovery
- idme bootmode 0x5001
Note that if you’re using Windows, you can copy and paste long lines of text into the command prompt. You can’t use Ctrl+V to paste, but you can right-click on the window with a mouse and choose the paste option after copying text from this tutorial.
Step 5: Use ClockworkMod to install the update.zip file
ClockworkMod was originally designed for devices with volume buttons and power buttons. Since the Kindle Fire has only one button, JackpotClavin has modified the utility so that you only need to press the power button.
This prevents you from accessing some of the settings, but it does allow you to install CyanogenMod.
- Once you reboot your tablet in step 4, you should see a few lines of text. The top option will be “apply update.zip from sdcard.”
- Press the power button to select that option.
- On the following screen press the power button again to select “yes” (even though it won’t be the top option.”
Once you’ve done this some text will appear on the screen and a progress bar will appear. Wait until it’s complete and you get a message letting you know the update has been successfully applied.
Unfortunately now any time we reboot the device we’ll come right back to ClockworkMod. So we need to re-flash the Kindle Fire stock recovery.
Step 6: Re-flash the stock recovery
Now we want to copy that stockrecovery.img file that we downloaded earlier to the Kindle Fire. Since you can’t treat the tablet like a USB mass storage device when it’s in recovery mode, we’ll have to keep using the command prompt for now.
At this point I found I had to reboot the Kindle Fire. Your results may vary, but I was unable to mount the sdcard without first rebooting, so that’s the first step I’ve listed here.
- adb shell
- reboot (and then wait for the device to reboot)
- adb shell (yes, again)
- mount sdcard
When you type “exit” it should return you to a normal command prompt. Now you want to make sure you know what directory the stockrecovery.img is in for the next step. I found the easiest way to do this was simply to copy it to the same directory as adb on my computer, which was the /program files/android-sdk-windows/platform-tools directory.
Then I typed the following into the command prompt:
- adb push stockrecovery.img /sbin/
If your file is in a different directory, you may be able to type something like “adb push c:\cmfire\stockrecovery.img /sbin/” and have th same results, but that didn’t work for me.
After you’ve successfully pushed the stockrecovery.img type the following three commands:
- adb shell
- dd if=/sbin/stockrecovery.img of=/dev/block/platform/mmci-omap-hs.1/by-name/recovery
The Kindle Fire will reboot a few times and then load CyanogenMod 7.
Using CyanogenMod 7
If you’ve used Android on a phone or tablet before, odds are CyanogenMod will look familiar. Instead of the bookshelf user interface that you get with the Amazon Kindle Fire’s default software, there’s a home screen that you can populate with shortcuts to your favorite apps or widgets that can tell you the time, provide updates from your social networks, show weather forecasts, or other details.
You can also use multiple home screens by swiping from side to side, or view a complete list of all your installed apps by tapping the square button at the center of the bottom of the screen.
There are persistent buttons at the bottom of the screen for home, back, menu, and search functions since the Kindle Fire doesn’t have physical buttons. This is the same user interface designed for CyanogenMod 7 for the Barnes & Noble NOOK Color and HP TouchPad.
Out of the box CyanogenMod doesn’t include some Android apps including the official Google Android Market, Gmail app, or Google Maps. But you can install them manually using several methods.
The easiest is following the same steps you’d use to install the Android Market on a rooted Kindle Fire. First download and install the GoogleServicesFramework.apk and then manually copy the Market app to your /system/app directory and set the file permissions to match those for the other apps in the directory.
If you experience force close errors when trying to run the Android Market you may just need a newer version of the Market app.
You can also try grabbing the gapps.zip file for CyanogenMod from goo-inside.me, renaming it to “update.zip” and then following the steps above to reflash ClockworkMod Recovery on your Kindle Fire and install all of the gApps at once by copying the update.zip to your SD card and installing it the same way you installed CyanogenMod.
It’s also easy to install the Amazon Appstore for Android once you’re running CyanogenMod. Just enable installation of apps from unknown sources in your Android Application settings menu, and then visit the Appstore in your web browser and download and run the installer APK.
OK, so now you can install CyanogenMod. But what about going back to the stock software if you decide you like it better, or want to return your tablet?
It turns out JackpotClavin has us covered there too. This time the process is even easier.
Restoring your Kindle Fire to stock
Step 1: Download 2 files
You need to download two files to restore your Kindle Fire. The first is the latest official Amazon Kindle Fire software. As of December 6th, this is software version 6.2 and it works just fine. The other is a small file called command.
You should probably check out the xda-developers forum for links in case these files change at any time, but as of December 6th, you can download them from the following links.
Note that as with the log files above, you may need to rename the command file. It should just be called “command” not “command.txt.”
Step 2: Rename the Kindle Fire update
The official Kindle Fire software update will be called something like “update-kindle-6.2_D01E_3003020.bin.” We’re going to rename it “update.zip.” Don’t worry that we’re changing the file type, it doesn’t matter.
Just right-click on the file in Windows Explorer, choose “rename” and change the name to update.zip. These steps will vary a bit if you’re using OS X or Linux.
Step 3: Copy files to your Kindle Fire
Connect your Kindle Fire to your PC with a USB cable and mount the tablet as a USB mass storage device. While this happens automatically when you’re using the Amazon software, CyanogenMod will not automatically mount your tablet. Instead you can:
- Connect your USB cable.
- Tap the little circle/up arrow button in the taskbar at the bottom of the tablet.
- Choose the option that says “USB connected”
- Tap the button that says “turn on USB storage.”
Once your tablet is connected to your PC you can copy files from the computer to the tablet. Even though the tablet doesn’t have an actual SD card, the storage is treated as an SD card by Android. So /sdcard/ is the root directory.
With that in mind, copy the files to these locations:
- Command should go in /sdcard/command (the root directory).
- The update.zip file should go in /sdcard/kindleupdates/update.zip (the directory called kindleupdates).
Ultimately the command file needs to be in a different directory on your device though, but it will take a few command prompt options to move it.
Step 5: Move the command file
Disable USB mass storage mode by tapping the button on your tablet to turn it off. Then open a command prompt and navigate to your adb directory and type the following commands:
- adb shell
- cd cache
- mkdir recovery
- cp /sdcard/command /cache/recovery/
Note that you may already have a recovery directory if you’ve done this before. You can check by typing “ls” before typing “mkdir recovery.” This should show you a list of subdirectories under the “cache” directory.
Step 6: Reboot into the Amazon Kindle stock software
We’re almost home. Now all we need to do is reboot the device and have the stock recovery utility replace CyanogenMod with the Amazon Kindle Fire stock software. Type the following commands into your command prompt:
- idme bootmode 0x5001
That’s it! You’ll have to connect to WiFi and re-enter your Amazon account information to access all of your settings, but you can re-download any books, magazines, movies, apps, or other content once you do that. Some of the media and apps previously installed on you device may already show up when you restore the Kindle Fire stock software.
I was also pleased to notice that Amazon recognizes that you’re using the same Kindle Fire when you register it a second or third time. You don’t have to worry about your Amazon account showing listings for Kindle Fire 2, or Kindle Fire 3 if you replace the stock software and then come back to it.
Ultimately it would be nice if someone can modify ClockworkMod or another custom recovery tool so that you can create a complete backup of your Kindle Fire’s software and settings before replacing the operating system. But until someone figures out how to do that, restoring the latest stock software from Amazon is the next best thing.