' February 2014

Wednesday, February 26, 2014

How to Root the Kindle Fire HD 8.9 (2012 edition)

WARNING: This root method will only work on the Kindle Fire HD 8.9 models released in 2012. If you attempt to root any other device with this, it will potentially brick your device. Follow these instructions to the letter.

Do you have a Kindle Fire that has Amazon's boring stock version of Android (a.k.a., Fire OS)? Tired of ads, but unwilling to fork over $15 to Amazon? Want an Android OS closer to the AOSP (Android Open Source Project) project? Then check out CyanogenMod, a free operating system built for Android devices. To install this OS, we need to perform a host of operations, which will 1) allow you to communicate between the Kindle Fire and the computer, 2) root the Kindle Fire itself, 3) install a custom bootloader and recovery, and 4) install CyanogenMod or another OS.

a) Prerequisites

The first step is to prepare the computer that will be used to root the Kindle Fire. Ensure that 1) the Android Debug Bridge (ADB) tools are downloaded and working; 2) the apps and files necessary to root and flash the bootloader, recovery, and CyanogenMod are downloaded; and 3) the Kindle Fire is set up to be rooted.

1) Download and extract the Android Developer Tools (ADT) bundle from the Android Developers website. The file will take a while to download (as well as to extract), so be patient.

2) Download, extract, and install the ADB drivers for the Kindle Fire HD 8.9. Before you do so, however, unplug the Kindle Fire from the computer and remove the old drivers using these directions. Once that's done, open either the "Kindle Fire ADB drivers" fire, or the "KindleDrivers" file, depending on which is successful.

3) Open the platform-tools folder inside the folder where you extracted the ADT bundle. Download the package we compiled that includes the tools you will need to root, and extract the files to the platform-tools folder.

4) Finally, enable the correct tools on your Kindle Fire as follows:
Swipe down from the top of the screen, then tap "More", as highlighted in the picture.
In the settings, tap "Device".
In the device menu, tap "Allow installation of Applications", and accept the dialog box that appears. Tap the back button on your device.
Now tap the "Security" section.
Tap "Enable ADB", accept the prompt that appears.
Now let's get rooting!

b) Testing, testing, 1-2-3... (and rooting!)

Still have that platform-tools window open? Good, because we'll need it! Hold down the shift key while right-clicking on an empty space, and click "Open command prompt here". Now you should see a terminal that looks like this:
Plug in your Kindle Fire now (give it a minute or so to install the drivers, and if failure is reported, install them again), and in this command prompt, type the following command:

adb devices

Now you should see the following screen (you may or may not see text pertaining to an adb server):

As long as you see an alphanumeric string followed by "device", and the only device plugged into your computer is your Kindle, you're fine.

OK, now it's time to get our figurative hands dirty (in other words, actually root the Kindle Fire). Any mistakes here, and you could be stuck with a half-broken device, so follow this guide to the letter. Issue the following commands one by one (when you type an "adb reboot" command, wait for the device to completely boot, then unlock the device, and then continue typing):

adb shell
rm -r /data/local/tmp 
ln -s /data/ /data/local/tmp 

adb reboot

adb shell
echo 'ro.kernel.qemu=1′ > /data/local.prop

adb reboot

adb shell mount -o remount,rw /system
adb push su /system/xbin/su
adb shell
chown 0.0 /system/xbin/su
chmod 06755 /system/xbin/su
rm /data/local.prop

adb reboot

adb install Superuser.apk

adb install "Root Checker App.apk"
adb install fireflash.apk

Now you can stop the adb commands. Anyway, we just told the system to remount as a rewritable file system so we could push the su file, changed the permissions so the Kindle can detect the root file and create a gateway, and we installed 3 apps that will permit us to test root access and perform the rest of the steps.

c) New bootloader (and OS!)

The next logical step is to test our root. If you feel comfortable with this and you would like to continue, feel free to skip ahead. Otherwise, look on your Kindle's app launcher (or tap the Apps button at the top). You should see 3 new apps: fireflash, Superuser, and Root Checker. If you see all three apps, then you're ready. Open the Superuser app, as it is what you will use to give root access to apps on your device that ask for it. As we are going to test root, press the back button, and open the Root Checker app. Click the button that says to "Verify root access", and a prompt should appear on your screen. If you see it, press the Allow button. Next, wait a few seconds, and the root checker app should say that you're rooted, along with some data that identifies your device. If you don't see this screen, then press the "Verify root access" button again, and accept any prompts from Superuser. If you still see red text that says you're not rooted, try to perform step b again.

Now that you're rooted at this point, you must download the freedom-boot file, the TWRP recovery, a custom ROM/OS built for the Kindle Fire HD 8.9 (like the unofficial port of CyanogenMod 11/Android 4.4.2 [KitKat] (which is the latest CM version as of the time of writing)), and (optionally) the latest Google Apps package (this last link is laced with ads!). However, we have fireflash installed, so we will simply download the files, put them in the "Internal storage" folder, and open FireFlash. To quote seokhun and his useful guide to installing TWRP, the bootloader, and CM:

The first thing you notice is that there are spots to plug in files for different partitions. This is where those files from Hashcode come into play. Plug the freedom-boot.img into the boot partition space, plug the TWRP recovery.img into the recovery partition, and make sure to hit "apply stack". If you are NOT on the 8.1.4 bootloader (you'll see red letters warning you), then hit the check box next to that to flash the 8.1.4 bootloader, otherwise you'll see a red screen after you reboot. If you don't see that warning, you're fine, move on.

Check that "disable recovery auto update" box, leave everything else alone, unplug the cable, and hit flash (the first option). You will see a progress window, and just hit OK. Then, turn off the device. Now, when you turn it on, this is the way to enter recovery every time: the moment you turn it on, you'll see the yellow Kindle title. Immediately hold down the Volume Up button (leftmost from the power button) before it turns blue, and once it does, count to three in your head and let go and you'll see the TWRP splash logo.

Now, inside TWRP, press the "Install" button. Find the file where the CM/other ROM zip is located, and click on it. If you downloaded the gapps package as well, then click "Add more ZIPs", and navigate to the gapps file. When you're done choosing ZIPs to flash (the buffer can hold a maximum of 10 ZIPs at a time), swipe where indicated to flash the files. When done, tap the button that says to "Wipe cache/dalvik". Swipe where indicated, and your device's application cache (as well as the Dalvik cache) will be cleared. In general, if you're switching from one OS to another, like from AOKP to CyanogenMod), or if you're having trouble with apps constantly crashing, use the cache/dalvik wipe, which can be accessed from the Wipe button in the main menu of TWRP. From this point on, if you want to flash a new OS onto your Kindle, all you have to do is download the ZIP(s) for the OS (as well as the gapps if you choose), boot into TWRP, flash your ROM (and gapps if necessary), clear the cache/dalvik (if you're moving from one different ROM to another, like Amazon's OS to AOKP, CyanogenMod to Amazon's stock OS, etc.), and reboot (Reboot button if freshly flashing a ROM, or Reboot -> System from the TWRP main menu). It's that simple.

Take care to only flash ROMs that were made for your particular device model (in this case, the Kindle Fire HD 8.9. Remember, the Kindle Fire HD 8.9 is not the same as the HD 7, the Kindle Fire 2, the Kindle Fire HDX models, or the original Kindle Fire. If you try to flash a bootloader or custom recovery made for the HD 8.9 on an HD 7 (or vice versa), your tablet will not boot, and may subsequently and/or irrevocably become bricked. Enjoy your now-freed Kindle Fire HD 8.9.