I accidentally deleted photos on my Nexus 4. There was no auto backup. I searched and found some software to recover photos, but none of them seem to work. Is there a way to get them back?
Please note: It is advised to follow this method only if you know what is ROOT and agree that you are doing this at your own risk. I do not hold credit for this technique as this method has been taken from here and 100% credit goes to the respective author.
- A Rooted Android phone.
- BusyBox installed on your device.
- Cygwin installed to [c:\cygwin] with pv and util-linux from the repo. Make sure to open Cygwin once to make sure that the /bin folder is created. Also, I made a folder at [c:\cygwin\nexus] to put the exported .RAW file.
- Netcat (download the ZIP file and extract nc.exe to [c:\cygwin\bin]).
- ADB (make sure adb.exe is in your path).
- Enable USB debugging in your device. For Android 4.0 and above do it from: Settings > Developer Options > USB debugging. For Android 2.3 and below do it from: Settings > Application > Development > USB debugging.
- VHD tool Put the VhdTool.exe file in [c:\cygwin\nexus].
- Piriform Recuva or your favorite data recovery tool, (it appears Recuva only finds the more common file types like images, videos, etc. Those were the file types in which I was interested. If you are after more exotic file types perhaps you might share the software you used).
The process in short:
- This has been tested on Samsung Galaxy Nexus though this should work for ANY phone with Internal Memory.
- We will be using a Windows 7 machine to: back up the entire internal memory partition to your computer as a single, massive .RAW file, convert the .RAW file output to a VHD, mount the VHD as a disk in Disk Manager, scan the attached VHD volume for files that have been deleted and recover them.
Actual Work to do:
- It is recommended that you choose to recover your entire memory block instead of just the data partition. In this case that is mmcblk0. For our purpose here we are seeking to recover the userdata partition: /dev/block/mmcblk0p12
- Turn on your phone.
- Connect the phone in ADB mode.
- Unlock the screen.
Open a Cygwin terminal and enter (This assumes your BusyBox installation is at [/system/bin/busybox]. It may be at [/system/xbin/busybox]):
- adb forward tcp:5555 tcp:5555
- adb shell
- /system/bin/busybox nc -l -p 5555 -e /system/bin/busybox dd if=/dev/block/mmcblk0p12
Open another Cygwin terminal and enter:
- adb forward tcp:5555 tcp:5555
- cd /nexus
- nc 127.0.0.1 5555 | pv -i 0.5 > mmcblk0p12.raw
For 16GB or 32GB internal memory this process is going to take 2 to 3+ hours respectively.
We need to convert the .RAW file to a virtual hard drive. VhdTool.exe basically just puts a VHD footer on the end of the .RAW file. Open a Windows command prompt, go to [c:\cygwin\nexus], and type:
- VhdTool.exe /convert mmcblk0p12.raw
Now we need to mount the VHD in Windows. Select the Start button-->right-click Computer-->select Manage.
- Select Storage-->Disk Management.
- In the menu select Action-->Attach VHD.
- For Location enter [c:\cygwin\nexus\mmcblk0p12.raw] and select the OK button.
- Right-click on the name (e.g. "Disk 1") to the left of the Unallocated space and select Initialize Disk.
- Select the GPT (GUID Partition Table) radio button and select the OK button.
- Right-click on the Unallocated space and select New Simple Volume...
- In the Wizard select Next>, leave the default for the volume size, select Next>, select a drive letter (e.g. K), select Next>, MAKE SURE to select the 'Do not format this volume' radio button, select Next>, select Finish.
- A box will pop up asking you to format the drive. You DO NOT want to format the drive at this time.
- Right-click on the RAW space and select Format... MAKE SURE to change the File system to FAT32. Set the Allocation unit size dropdown to 'Default.' MAKE SURE that the Perform a quick format checkbox is CHECKED. You do not want to overwrite the entire new drive with all zeroes (0's) and destroy your data. Quick Format means that it will only attempt to destroy the index for the drive by establishing a new index. Without this box checked the Windows operating system will write zeroes (0's) across the entire volume, potentially destroying your data. Select the OK button.
- A box will pop up saying that Formatting this volume will erase all data on it. That would be doubly true if you actually didn't check the 'Perform a quick format' checkbox. Double check that you actually did check the box and select the OK button. (Don't worry. This essentially leaves the volume in the exact same state that your phone's internal memory is living in right now: there is data on the drive...you just can't see it. It's coming back, I promise!)
- Open the Recuva application. In the wizard select the 'Next >' button. Select the 'Other' radio button and select Next >. Select the 'In a specific location' radio button and enter: k:\ (assuming K is the drive letter you chose...) Select the Next > button. Select the Enable Deep Scan checkbox. This is the magical setting that finds files that have been deleted...but not really deleted. Select the Start button.
- Finally the application may take about an hour to do the 'Deep Scan.' It's time for more laps around the house! Once the application has returned its results you can choose which files to recover using the checkboxes. Select the 'Recover...' button and choose the location to which you wish to output your files.
OLD ANSWER: It was about restoring files via Yodot Android Data Recovery software. This DOES NOT WORK for Nexus 4 or any such devices which use MTP for managing files on PC.