An Android Moment

10 December 2009, 01:34

My Android ADP1 crashed on me last weekend. I did what I could at the time: extensive googling, trying stuff and finally reported a bug.

Wait! What I most importantly did in retrospect was to take a nandroid backup of my phone. It wasn’t easy, I was glad to have used fastboot before.

Anyway, the reason for doing a backup was: I couldn’t wait to troubleshoot more or wait for help on the bug because I needed a phone! So I did a backup and wiped / reflashed my phone. It started working again, to my relief.

At this point, I knew that my data would be recoverable in a binary obscure way from the images grabbed by nandroid. What I didn’t expect is that I could continue to troubleshoot the bug in the emulator. It turns out that I was able to do so using the -data flag and providing my backed-up data.img.

After some input from a google engineer, I realize my problem looks like yaffs2 corruption. yaffs2 is the filesystem used by android for the things it stores on flash memory. To simplify things, a copy of all the code / apps is stored on the user partition in dalvik-cache/ and some important file in there was corrupted preventing my phone to boot.

Here’s the ha-ha moment: I deleted the content of dalvik-cache/ in my backup image (a copy of it of course!) and the emulator booted and showed me my home screen! It was like I got my old phone again!

Android on the emulator just like my old phone's android!

Now, I’m able to visually backup my data through the apps themselves and all. It was a level of flexibility I seriously didn’t expect!

Cheers to the google engineers!

— Olivier Bilodeau

---

Comment

Textile Help