How can I manually extract my contacts from a backup image of Android? So I recently made an .img using dd of my Froyo installation on my phone prior to wiping and installing a custom Jellybean ROM. Turns out that the contacts were saved locally and not with Google.

I cannot for the life of me find my contacts anywhere on the images when I mount them. I've also tried attaching the .img as an external SD card to see if it could import and then export the contacts in a virtual android emulator. I just can't find them anywhere. I'm guessing they're hidden in some sql database somewhere in the guts of the OS but I'm out of ideas. Is there a way to boot the .img as the main OS on the Android emulator? Is there an easier way to go about this?
Well, this took a long time. For future searchers, here's what you can do:

Find your contacts2.db file hidden somewhere in Android. Most of the time it's located in /data/data/com.android.providers.contacts/databases. I was lucky and found it in a search through Titanium Backups' tarballs. Nab that file. It has everything in it in a sql database.

I then found this excellent script to extract and convert all contacts into a .vcf format for easy importing into the next device. It's located here on Github and requires two dependencies (on an Ubuntu 12.04 machine in which it was written for): sqllite3 and libsqllite3-dev:

sudo apt-get install sqlite3 libsqlite3-dev


After dependencies are satisfied, save the script on Github as dbconverter.sh. Mark it as executable:

chmod +x dbconverter.sh


use the script like this:

./dbconverter.sh contacts2.db &gt; contacts2.vcf


You will then have a lovely .vcf file for easy importing into your phone.