Brandon's Blog

9/11/2012

Android Adventure

I finally had my fill of my random “force close” events in Gingerbread on my Samsung.  Force close when unplugging from a wall charger, force close sometimes when plugging and unplugging from a computer, browser crashes on image-heavy sites, pull-battery-to-revive freezes coming off of the lockscreen, camera taking three seconds to shoot the picture after pressing the button.

Complete nonsense.  Much of this was brought about when I upgraded from Froyo to Gingerbread, but unfortunately this upgrade also fixed several issues that I was happy to have behind me.

Throwing caution to the wind from a warranty standpoint, I started playing around with rooting my phone.  I rooted easily and successfully, only to discover that it really didn’t get me where I wanted to go.  I could pay $4 for Titanium Backup and “freeze” the “Tethering Manager” system app to prevent - hopefully - the force closes when messing with anything USB.

But it certainly wasn’t going to fix my latency/stability issues and didn’t open up the treasure trove of options I had hoped.

So I started down the process of flashing my ROM.  I loaded on a “flashing kernel,” booted into recovery mode, and then had some serious trouble flashing a ROM.  Turned out the ROM I had selected wasn’t actually meant to be installed that way.  This wouldn’t have been a huge deal except that the kernel I flashed didn’t allow the phone to boot normally.

The biggest and dumbest risk I took was at this moment, since I switched over to having the #1 priority to get my phone to boot to its existing ROM.  I should have either persisted in getting a third party ROM in place, or tried to flash back to stock (an image of the Android 2.1 that came with the phone originally).  Instead, I tried flashing another flashing kernel that was actually a bit worse.

I then learned that as long as you can get to “Download Mode” using a special button pressing combination during boot, you can always fix the phone.  I put my phone into download mode and flashed back to 2.1 stock.  Then, I upgraded back to Gingerbread the standard way, then flashed a different and better flashing kernel, then flashed CyanogenMod 9 (Ice Cream Sandwich) with no issues.

It is fantastic.  It’s like I have a new phone.  Faster, prettier, more features, less bugs.  Even the battery is hanging in there, probably doing as well as stock.

From all the reading I did during the inoperable “soft brick” stage of my journey, I discovered that it’s hard for people to remember how weird it all is coming for the first time from stock to something different.  Also, the ability to go back to stock with literally one click should be emphasized (assuming it’s possible for that specific phone), as should be the fairly standard reality that some stages in the process will leave your phone practically inoperable until the next step is reached, or you give up and flash back to stock.

It’s also very hard to separate device-specific instructions from distribution-specific instructions.  In many cases they conflict.  For example, Samsung phones do not have the ability to install the flashing kernel from an app on the phone, like the Nexus does, for example.  This makes things really confusing.

But, it was totally worth the risk (I was ready to pay to replace the phone rather than put up with its stock quirks), and I’m having fun tweaking the new system now.  It’s really great to have no AT&T apps installed on the phone.