To unpack a YAFFS2 image, you can use the free unyaffs
tool, which is available as pre-build ELF-binary (for Linux) from this page at code.google.com. This page also contains hints on how to obtain the source code, so you could build the binary yourself e.g. with gcc (gcc -o unyaffs unyaffs.c
).
I use this tool myself, it works fine on Ubuntu 8.04 32bit as well as Ubuntu 12.04 64bit (with the ia32-libs
package installed).
Place the binary e.g. in /usr/local/bin
(which is in your $PATH
), so you can access it from everywhere. Put the image file you want to extract in an empty directory (unyaffs
always seems to extract files directly into the folder the image file is in), and then call unyaffs
with the image file name as only parameter, e.g. unyaffs data.img
. After that, you will find the contents of that file system/image unpacked, and can investigate them -- e.g.
- SMS/MMS in
data/com.android.providers.telephony/databases/mmssms.db
- Multimedia Metadata in
data/com.android.providers.media/databases/*.db
- Calendar data in
data/com.android.providers.calendar/databases/calendar.db
As I just investigated a MotoBlur image, contacts in my case have been stored to data/com.motorola.blur.providers.contacts/databases/contacts2.db
-- they are probably in a different location in your case (a guess: data/com.android.providers.contacts/databases/*.db
).
The sqlite3
command works on them, naturally. If you prefer a graphical frontend, I can recommend you the sqliteman
package (comes with a binary of the same name, which accepts the database file as parameter).