Monday, November 28, 2011

Supporting devices in recovery...

So I (Agrabren) commonly get asked why we're not "finishing up TWRP" and instead, are supporting more and more devices. So let me explain how this helps everyone. For starters, the TWRP team is not just one person. The core of the UI logic has been done for a while, but there is still a lot of little things that need to be tweaked and tested, all of which are happening every day. It's also very important that a recovery system be robust and stable. This isn't some run-of-the-mill app that you can re-launch every time it crashes. This is recovery. Too many times, a push to release before it's ready leads to bad software that doesn't do what it promises to deliver. In the case of recovery, this can be unusable backups, inability to flash custom ROMs, even hard-bricking a device. So there's no room for an "almost works" recovery. It needs to be tested and it needs to work flawlessly.

So why aren't we just focused on testing? Because a good portion of the design is towards robustness. The small number of devices we have (compared to the number of people intending to install TWRP 2 when it releases) means that we can't possibly verify every file system on every phone in every configuration that everyone has. That's not a reasonable exit criteria. So instead, we have to test as best we can with the limited devices we have. We pick out a few custom ROMs and the stock ROM, and we flash between them, we backup, we restore, we wipe, etc. But to help ensure robustness, we can spread our testing across multiple device types. Because the engine remains the same, it's being tested against different partition sizes, different nvram types, new ROMs, and more. This helps us ensure the experience you get on your (insert your supported device here) is as stable as we can make it. It's not just to "get on every device". It's to fully support the devices we run on, and feel confident that we're not going to leave you stuck in a tree.

(Please note: This does *not* mean we take any responsibility if we brick your device. Like every recovery and custom ROM out there, we take no responsibility for what happens with your device. What it *does* mean is that we care about it. This is more than a hobby to me, it's also my reputation as an android developer (and to some extent, a developer in general) that I'm putting out there. And I'm sure I'm not the only team member who feels this way. I just won't speak for anyone but myself. I take pride in what I do, and I take pride in what TeamWin has allowed me to be a part of. I have no interest in making any of the team look bad.)

Friday, November 11, 2011

Starting down the road to TWRP 3...

Even thought TWRP 2 isn't even out yet, plans are being made for TWRP 3. Like the movie industry, with it's constant rebooting of franchises, TWRP 3 is a reboot of recovery. Hence the blog name, rebooting in recovery. While working on TWRP 2, I realized that trying to build a recovery system based on the AOSP recovery engine has severe limitations. So instead of continuing to try to hack around these problems and find new and creative ways to patch it, we're starting from scratch. I've appointed myself the primary architect for TWRP 3 (as nobody else was jumping up and down to do it) and I'm going to use this blog to help keep the world in the loop of the design and development process, as well as the requirements we're setting, the design decisions, the limitations or problems we encounter, etc. Occasionally, I'll likely also use this blog as a place to spout off about random Android things, and rarely, non-Android stuff. At first, it will be slow, because we're wrapping up TWRP 2.0... But I expect things to pick up shortly.

So welcome aboard, and enjoy the show.