[Fire HD 6 and 7 Original Android Development] jmz:
Team Win Recovery Project 2.x, or twrp2 for short, is a custom recovery built with ease of use and customization in mind. It’s a fully touch driven user interface – no more volume rocker or power buttons to mash. The GUI is also fully XML driven and completely theme-able. You can change just about every aspect of the look and feel.

Phone look:

Tablet look:

CHANGELOG for 2.8.6.0:

Fix daylight savings time rules for USA and Europe (_that)

Allow mulitple overlays for popup boxes (Dees_Troy)

Add pattern style password entry for decrypt (Tassadar)

Keyboard improvements (_that)

Update AOSP base to 5.1 (Dees_Troy)

Reduce theme count to 5 and rely on scaling (Dees_Troy)

Various scaling improvements (Dees_Troy)

Improved handling of resources in the GUI (_that)

Make scroll bar size proportional to list size (_that)

Allow scoll lists to render without a header (_that)

Make console scroll per pixel with kinetic scrolling (_that)

Support styles in XML to reduce XML size and improve consistentcy (Dees_Troy)

Various other fixes and improvements (mdmower, bigbiff, codelover, etc)

CHANGELOG for 2.8.5.0:

Scale the GUI - TWRP can read the theme's resolution and scale it up or down to fit the theme to your screen's resolution

Backups can now be cancelled while the backup is in progress (does not include restore because we don't want to leave your device in a bad state)

Improve thread handling and move input handling into the main rendering thread to improve stability

Make MTP work even if unplugged and plugged back in

Unify scrollable list code and make kinetic scrolling feel more natural

Fix handling of mapped zip files for OTA updates (CM12 updater)

USB keyboards should now work on all devices that support USB host mode via a USB OTG cable

Other small fixes and improvements

CHANGELOG for 2.8.4.0:

Add flashing of boot and recovery images via the TWRP GUI (Find the Images button on the Install page)

Fix some MTP related crashes and bugs

Eliminate TWRP toggling USB IDs during boot if MTP is enabled

Fix various adb sideload issues

Improve threading of actions

Eliminate separate thread for screen timeout

Update libblkid to 2.25.0

Use power button as back button on watch themes for easier navigation

Add mutex locking to data manager

Improve custom theme handling on encrypted devices

Allow the stock theme to be offset by build flags so we can center a lower res theme on a higher res screen especially for watches with round screens

CHANGELOG for 2.8.3.0:

MTP will now tell the host PC that storage is removed instead of disabling MTP completely

MTP will now report the correct max file size based on the file system in use to the host PC (may fix transfer of large files)

Update and improve fix permissions and make fixing contexts optional

Update SuperSU in TWRP to 2.40 and update install process

Make TWRP work properly on AArch64 (Nexus 9 is now built in true 64-bit binaries and libraries)

Attempt to set correct permissions and contexts on all files placed in storage so backups will show in Android

Fix kernel panic during MTP start on some devices

Support unicode fonts on devices with True Type Font support

Fix slider value not showing sometimes (vibration settings page)

Toggle MTP off during adb sideload to set correct USB IDs

Reduce library requirements for 5.0 L decrypt

Other minor fixes and improvements

Note: Starting with TWRP 2.8.2.0 and higher, adb sideload uses a new sideload method originally implemented in AOSP recovery. You will need the latest adb binaries to use sideload in these newer versions of TWRP. The version required is 1.0.32. You can find the version by running "adb version" on your computer. The new sideload feature no longer stores the zip on your device. Instead, a fuse file system is created in RAM and the zip is streamed from your computer. This puts less wear and tear on storage and ensures that large zips will not fill up all of your RAM. The sideload may spit an error on your PC side, but the zip should install just fine on your device.