First look at TeamWin Recovery Project (TWRP) 2.0

YouTube link for mobile viewing

For those folks interested in the next stage of recovery on your phone, this is one I'd set some time aside to check out. I'm sure by now some of you have switched to TeamWin's custom recovery (called TWRP), and we've sat down with developer agrabren for a sneak peek at the latest iteration of their recovery, called TWRP 2.0.

The interview is in two videos, plus select excerpts after the break.

YouTube link for mobile viewing

While TWRP 2.0 is booting up , this is mid-September. You guys came out with TWRP 1.0 in July?

That sounds about right.

So this is TWRP 2.0?

This is the default interface for TWRP 2.0.

When TWRP was originally created, one of my first reactions when they said "we’re going to build a recovery from the bottom up, we’re going to start from scratch," was, “OK, we should make it user-friendly,” something I’ve never found recovery to be. All the volume control navigations. So instead, what we did we said, “Ok, how could we make this easy to use?”

Now, this is still a prototype, only a couple of the features work. But, for instance, we’re going to install a ROM. So I tap Install, and I’ve got select, we’ve got our folders over here and our files in the current folder.

So I’m going to scroll through, and I’ve created an area called ROMs. I tap ROMs, my file list changes. This will all use all of the features people have learned to like with TWRP 1.0. So, I’m going to take the Flashback ROM. I tap it, it tells me what my current selection is. I’ve got different options I can do, I can wipe the cache reboot after flashing, and I hit flash.

TWRP 2.0, compared to every other recovery, even TWRP 1.0, the interface is totally different. We’re using the touch screen in recovery now. That’s also going to work on phones as well, just scaled down?

Just scaled down. Now, one of the nicest features of TWRP 2.0, is that the interface that you looked at, at the beginning, is actually loading off the SD card on this device.

There is a default one built in, and actually what you saw would be the one that’s built in, but, for development it’s actually more difficult. That requires rebuilding the recovery. So we use what’s called theming.

We’re really expecting that the theming community’s going to love this. Everything you saw on that front page was driven from XML. There’s custom fonts. The font that it’s using right now in the update is actually the standard font that all recoveries use, and it’s referred to as a fixed-width font, meaning that every character takes a certain size across.

But, when this finishes this operation, we’re going to be able to go back to the main menu, and if you actually look, the font is different.

Themers will be able to take, and we are planning to publish all of the details on how to write your own theme.


For TWRP 2.0.

So if you want it to show sports cars, you can have sports cars. If you want it to be pictures of women, you can have pictures of women. Anything you want, and it’s just a theme, it’s a skin.

How difficult was it to get the touchscreen working in recovery? Because that’s something that we’ve never seen before.

There are actually some out there that already do it. Somebody took TWRP 1.0 and made it so that it was gesture-based on the Thunderbolt. That aspect was actually one of the easier parts of TWRP 2.0.

The difficulty of TWRP 2.0 was making it so extensible and themable. It was less about the touch interface as it was about the graphical user interface. So, I want to take this to go one step further and say, ok, similar to TWRP 1.0, we tell you the battery level, we tell you the time. One of the nice things is, that unlike TWRP 1.0, if you were to just leave this sitting here, that battery level will go down.

We support animations. Had we chosen to, this little Android could periodically wave. Anything that the themer really wants to do with it, we generally open. And it’s not just about “specify a graphic here.”

We allow you to load multiple fonts and we make certain objects that make things easier. These are buttons. They don’t have icons in them right now, but we support icons, so you could make a picture that represents the install.

But we’re going to go back into install and going to show you the other feature that we really expect ROM developers are going to love.

This animation, these videos and this custom installation is all coming from the package itself, Inside the ROM contains the details and the pictures and the animation to custom design their install.

I know Synergy, a very good ROM, by a few different developers, when you installed it, it had this ASCII text slogan saying "Synergy." We said, “Why do you need ASCII text? Why can’t you have real text, real information?”

We just took the boot animation, stripped out the files, put them in the animation package, and it’s described in TWRP as an animation, including the same loop capabilities that Android gives you for a boot animation.

So we really took where ROM developers can theme the install. Straight from the point the user has selected they want to install, they can really own the experience for the user. They can make the user feel like this is part of the device, not some backdoor, secret club.

Before you guys came out with TWRP 1.0, it was built off of the stock recovery. When you were starting TWRP 1.0, did you know TWRP 2.0 was going to be happening? Was that in the cards?

Yes. As soon as the team, even before it was called TWRP (it was originally called RecoverWin), even when RecoverWin started, my first statement was it needs a touch screen interface and it needs a GUI.

There was a lot of discussion on how to do it and what was decided was that I was busy at the time on Fre3vo and HDMwIn, and so we took that and said, “Ok, let’s go one step further. For now, let’s get TWRP 1.0 out and working and good.”

A lot of good developers worked on that. AssassinsLament, Vividboarder, and Dees_Troy are three in particular I’d like to call out.

There really was a team effort, and TWRP 2.0 really is a team effort. The entire GUI of TWRP 2.0 sits on top of the core foundation of TWRP 1.0, so you are seeing an interface into TWRP as opposed to this being a rewrite again of TWRP.

The whole idea behind TWRP 2.0, especially, is to make it as user-pleasing, an easy user interface, and kind of bring it to people who might be intimidated by the DOS-looking recovery screen?

We really want it to be easy to use and convenient for people. It’s no fun to have to sit there toggling weird buttons.

It seems every device has its own unique way of manipulating it. And what we said was, instead, why doesn’t it follow, you know, they all have touch panels. So why do we need to use ...?

For themes, do you anticipate housing them on TeamWin’s website, or they’ll just float around on XDA?

We haven’t actually decided a scheme yet. There was talk that TeamWin may actually host a place where people could grab themes that they like.

They are device-specific, in particular, they’re resolution-specific. For instance, this theme is designed for 1024x600, which is the GTablet’s native resolution. The other nice thing is that the same TWRP 2.0 engine that’s running this right now runs the EVO 4G. All it really needed was a zip file.

It’s an XML file, some fonts, and some images, all bundled together conveniently. In a nutshell, that’s everything that we’ve been doing with it. It’s pretty powerful, we’ve got, even shutdown animations. It’s all controlled from the XML. Inside the XML file, there are sections with action.

We’ve really gone with the idea of giving the themers control over the interface.

Obviously a lot of different things going on in the recovery space that I'm not used to seeing and I think that the community at large is probably going to be really excited about.

Thank you for giving us the chance to show the world what it is we've been working on behind closed curtains. We're really excited to get it out to the world.

Any last minute thanks before we have to go?

Yeah, to the TWRP core team, AssassinsLament, Dees_Troy, and Vividboarder. Also the rest of TeamWin, and thanks to Koush and Amon_RA for their inspiration and dedication to the Android community.

The Android boot animation from earlier was made by GLa'DOS, and most importantly, a special thanks to @courtneyj0610 for her dedication to me, the kids, and putting up with weeks of long nights that it took to bring this project to where it is today.

Joshua Munoz