A person at a phone store reset all the contents of my Motorola Moto G Android phone, and I did not give them permission to do so. I had many important pictures and videos, but the even more important thing were the audio recordings I had created.

Is there ANY WAY to recover this data? I know it was reset, but I'm very stressed and would appreciate a pointer of a way to effectively recover some or all of the data without comprising it in the process. I am not using the phone, and had shut it off entirely. I'm aware that the more you use it, the more it overwrites the data. I NEVER had a backup, dumb, I know.

Thank you folks!

**Edit: I recovered most of my photos and videos just now through Google+, most of it was synced! But how can I recover my voice recordings ? That's what's most important to me. I used this app. https://play.google.com/store/apps/details?id=com.andrwq.recorder&hl=en

Unfortunately, my phone model never supported SD cards, so there's nothing there.


There isn't an easy way, but still, it might be possible. The keyword to it is File carving (find some more links on this topic in our data-recovery tag-wiki).

Make sure to not have any modifications/changes going on on your device, or at least as few as possible! Each change (written file etc.) lowers your chances of a successful recovery.

A crucial pre-condition to this is either a rooted device, or a custom recovery.

  • With a custom recovery: Take a backup
  • With a rooted device: create images from your storage

For manual image creation, you'd first need to figure where the partitions are that you need. Your data is usually stored in two places: the /data partition, and your SD card(s). Let's find where they are:

  • connect to your device via (follow up to the adb tag-wiki for details if you're not familiar with this) using adb shell
  • execute the mount command
  • in the output, look for the corresponding entries to /data and your SD cards
  • take a note of the corresponding device entries (usually starting with /dev/)

At this point it would be helpful to have an empty external SD card:

  • still connected via adb shell, get root access by executing su
  • run dd if=<data-dev> of=/sdcard/data.img (replacing <data-dev> with the device of your /data partition), repeat similarly for your internal SD card
  • exit adb shell (simply type exit and hit the return key)
  • pull the files to your computer using adb pull /sdcard/data.img data.img, or connect the card using a card-reader to access them directly from your computer

If you don't have an external SD card, but have a Linux computer available (I cannot say whether it works on Windows as well, but it should at least on a Mac), you can instead try the following:

adb shell "stty raw; cat <data-dev>" > data.img

This would create the image files directly on your computer.

Now, once you've got the image files on your computer, you can examine their contents using some forensics software. TestDisk would be a suitable tool, and is available for free, plus runs on most major systems. For details on this, you might wish to check One Way to Use a Linux Computer to Recover Files from an Android Device. The TestDisk Wiki (see previous link) also includes several articles on how to recover deleted files.

Not the answer you're looking for? Browse other questions tagged or ask your own question.