View Single Post
Old 08-03-2011, 08:44 PM   #1
muranternet
Connoisseur
muranternet began at the beginning.
 
Posts: 75
Karma: 10
Join Date: May 2011
Device: Kindle 3/Sony PRS-300/Nook Color running CM7/P eDGe
Recovery Mode for Non-to-Mid-Techs and Why Everyone Needs It

This is sort of a request and sort of an explanation. I realized that almost all of my dev replies were along the lines of, "... **** would be great but we can't even try without a recovery mode." I think recovery is step zero in ANY development effort, and even if you're in the crowd that says, "My device is awesome, rah rah enTourage, I don't care about firmware tweaks or whatever," you should still care about recovery mode.

Please keep in mind I am not a super cool developer. Messing with hardware and software is a hobby. I do it to tweak devices to the point where I personally find them useful, and that includes things that improve battery life, taking away things I don't want on my devices, performance improvements, turning a NAS into a web-accessible media streamer, adding 100 port forwarding rules to my router, or making my Motorola Droid look like a PipBoy 3000 just so I can feel awesome. I void a lot of warranties, and so recovery mode is a must-have when things go bricky. Now that everyone who owns an enTourage product is also warranty-less, it should matter to you, too.

Basically, think of recovery mode as an improved factory reset. When you do a Golden Update to get back to that terrible Dingo that came with the Pocket eDGe, that's a factory reset. However, you lose most/all of your stuff, and I've seen reports that it doesn't really get rid of absolutely everything you DO want to get rid of. Plus, you now have to go back and re-install Ermine, get all your stuff back, change your home loader, etc. etc. and hope nothing terrible happens along the way.

A recovery mode manager like Clockwork Recovery gives you a bootloader that you can jump into before the OS loads, and from which you can do all sorts of things. If you've ever done multiboot under GRUB or LILO because you wanted to impress your friends with a version of Ubuntu you never use, you know what this basically looks like. Because this loads before the OS loads, if there was something that was killing your device you can get in before it ever happens. Now, if you have something like ROM Manager loaded, you can just grab the software image you had before your *cough* brother installed "Captain Malware's 3D Porn Warez RPG" and bring your device back to normal. If you save your ROM periodically, you are basically carrying around a super-easy system backup with you on the SD card, including the kernel.

If you're a developer, you must have recovery mode. When you start messing around with the kernel, bad things can happen that can cause your device to get stuck in a bootloop. Just say oops, powercycle, load the last image, and try again. Eventually you wind up with something you can offer for download to folks who can try it, without ever knowing how many times you came THIS close to wrecking your device. If you're lucky, a few might even thank you instead of complaining about something that has nothing to do with your software image. ("I can't play Captain Malware's 3D Porn Warez RPG anymore!") If you don't have recovery mode, you might just write off the project as not worth your time or the material risk, and go back to creating the 137th Bluetooth fix for the Nook Color.

If you're an end user who likes to tweak, you must have recovery mode, even more than a developer does since you might not be using ADB. If someone loads a bunch of custom kernels for you to try out, you never really know which one will play nice with your device. All CPUs are different, and two identical chips presented with the same low voltage, 7-step, 200% clock speed kernel will react very differently, and sometimes not well at all. When I played with kernels for my Droid, here's how I did it: (1) installed ROM Manager (I already had Clockwork), (2), grabbed all the kernels I wanted to try including my original kernel and some modified ones, (3) backed up my ROM just in case, (4) told ROM Manager to load the most aggressive, lowest power kernel on the list and watched my device puke on boot, (5) rebooted into Clockwork and went back to my old image, (6) repeated 4-5 until I wound up with a kernel that tested stable.* If I didn't have Clockwork Recovery, it might have been, (1) install a kernel that might work, (2) watch my device puke and buy another one, or go through hell and back with ADB to try and get my original image working, after which I never tweak again and put the device on a shelf since now I hate it.

If you're an end user who doesn't care about tweaking, you should still have recovery mode. Stuff happens, operating systems go bad, and maybe your little brother really does load warez porn games onto your devices. Wouldn't you like to have the option of rebooting while holding a button down, selecting, "Load the last backup I made before crazy stuff happened," and be done with it? It's way easier than coming to Mobileread to try and find a copy of goldenupdate.zip and going through the hell of restoring your device to its former tarnished glory over days of software hunts. And besides, those crazy developers who figure out how to control weather satellites using an e-reader are the same ones who coincidentally find ways to make your device more stable and usable. You want those guys to have recovery mode so they can come up with ways to make your life easier. You want recovery mode yourself so when someone finds a way to make the PE last for a full day on a single charge, you just need to tap a few controls to do it instead of diving into the world of #su** and ugly command line interfaces.

So please, someone figure out how to get Clockwork on this clunky thing. I'll buy you a beer. Or send a copy of that cool game I mentioned. Since you'll have Clockwork, you shouldn't have any problems installing it.

*Actually, after a few crashes I just stopped reloading the old ROM and just told Clockwork to load the next kernel in line without stopping. I heart Clockwork.

**This is not the same as the command added into the ermine build for developers, which is #fu.
muranternet is offline   Reply With Quote