So as many of you who are reading this have likely heard, after merely a week of being released, the much anticipated Motorola Droid Bionic has been obtained, root, fastboot, custom recovery, and now a pre-alpha boot of CyanogenMod 7!
I thought it would be appropriate to write up a post about how we got there in such a ridiculously short period of time! Let's start with how I got started on the Bionic.
So towards the end of last week, I was asked whether or not I would be interested in working on the Bionic, and of course my response was a resounding “DUH!” I had heard good things about the Bionic and was interested in the feature set that would be available with it. As is the standard case, however, I didn't have access to a Bionic, nor did I have the funding to secure one.
Enter the amazing android community!
Some fantastic people (including but not limited to Berzerker and SoulShadow) posted on a forum asking if people would be interested in donating in order to secure me a Bionic for development, and in less than a weekend the money was raised! The generosity of this community never ceases to amaze me, and I think that's part of what makes this community so successful is the support of the users.
Flash forward to Monday and by 6pm local time I was walking out of the near-by Verizon retailer with a shiny new Bionic in hand and rootz on my mind!
So at this point I want to take a little time to discuss where 4 hours of potential development time got shot down the toilet while I waited for the Bionic to “activate”.
I am generally quite annoyed when I go to purchase a device as the VZW employees have set scripts they have to follow and my “no I'll activate it and log into Google myself” act doesn't seem to jive well with their plans. This time, however, I was actually quite pleased. The particular rep at the store was very understanding when I told him I wanted to set up my google account at home (as I have 2-phase auth so I kinda have to), and even chatted with me about development as I told him I was purchasing the device specifically for that.
But then we got to the part about SIM cards. I understand that this is new tech for VZW, but unless I'm mistaken they don't seem to be training their employees properly on how they work. I walked in with a Thunderbolt and a SIM card already, and when purchasing the Bionic he insisted on giving me another SIM card. I tried to argue with him about how SIM cards work and that he should just use the one from my Thunderbolt, but he absolutely refused and told me I could throw my existing card away.
Well, fast forward to 4 hours later. I had given the guy the benefit of the doubt and allowed the Bionic to continually attempt to reboot and activate using this new SIM card to no avail (which I let go that long because I had other things to do anyway). The thing kept failing and retrying and failing so finally I just threw my SIM card from the Thunderbolt in and voila, instant activation in 5 seconds or less.
So Monday night after finally achieving activation on the Bionic, it took less than 15 minutes for me to become one of the few, the proud, the rooted. The next step was analyzing the phone's internals.
I quickly went to work dumping the files off of the phone, as well as various informational files about the CPU, memory, partition maps, chipsets, and other such fun things. By the end of the night I had a pretty good grasp of the system layout, and zipped up all of the info files and shipped them off to my development server for Tuesday.
On Tuesday I began working on a device repo for the targa (as the board was called) specifically so that I could get a working recovery. The recovery was going to have to be done through some hijackery, so I figured I would just use the Droid*Bootstrap framework that koush had set up to take care of that, but I needed a way to actually build the recovery.
Thanks to some information from Hashcode (who directed me to CodeAuroraForums for some patches on recovery graphics), I was able to get a working recovery booted by Tuesday night! (well technically Wednesday morning, it was 4am local time >.<)
By Wednesday I now had a device with root and recovery available, as well as a released fastboot flash mechanism. Everything was in place to start working on finishing out the device repo to build some CM goodness. I decided that I would challenge myself and see if I could get it done by Friday.
I began hammering through build tests throughout the day. I would make a build, compare it to the stock files, and see what was different and what was proprietary. I utilized some awesome work done by arcee for the LG Optimus 3D (which also runs on a TI OMAP4 processor) to get the OMAP4 updates worked into the build, and by the end of the night (again, morning, 4am), I had reached a point where I was happy to call it quits for the morning.
Then this morning came an although I had only had about 5 hours of sleep I was perhaps a bit too excited to sleep any longer! I continued working on the builds straight through morning until I had something flashable to test.
The first few tests failed miserably with locked bootloaders and bootloops all around, but finally, about half-way through the afternoon, I had succeeded in getting CM to boot.
I immediately posted a video of the system booting and it is apparent that there is a ton of work to still be done. Camera/camcorder don't register at all, audio crashes, dsp force closes, battery isn't detected, and radio doesn't work to name a few to start. I was happy that the touchscreen and accelerometer works, as well as usb and adb.
The next step is to start hammering through the bugs one-by-one. It's likely going to be a long road to get this to release status, but the journey of a thousand miles has to begin with a single step!
I secured a Bionic thanks to the community's generosity!
Verizon reps have no idea how SIM cards work…
CM: the mod that gets boot status a week after a phone comes out!
Going forward there's a lot of work yet to do!