One of the beauties of Android is the level of flexibility we have over our devices. Whether it's tweaking a kernel or changing the system theme, the possibilities are numerous and often breathtaking. While kernel and framework modification is not for the faint-hearted, visual customization is an area in which every user dabbles to some extent--whether through simple things like changing icons, or through more advanced actions like app modification.

One such tool used widely in this field is the infamous APKTool. This utility allows you to reengineer apps, essentially paving the way for users to decompile an app's resources, modify them, and put it back together. APKTool also for project automation and smali debugging, though reengineering is by far its primary use-case. With Google's announcement of Android 5.0 Lollipop back in July when it held the "Android L" moniker, a lot of framework APIs were reworked. Consequently, APKTool's reengineering process was crippled. However, XDA Senior Member ibotpeaches has pushed an update for the tool, bumping it up to v2.0.0 RC3, which adds Lollipop support, in addition to numerous bug fixes.

Head over to the APKTool thread to get started with reengineering applications. Please keep in mind that this utility is not intended for piracy or illegal uses, but rather as a means for adding features, localization, and so on. Be fair to your favorite app developers and don't decompile their apps inappropriately!