During our incredibly long, 5 days vacation, on the very first day Nora's Galaxy S4 fell and with this final, rather heavy crack, the screen went completely dead. For my surprise, the phone itself was working well, given it woke us up at 4 am, which was slightly unexpected.
Normally I have my laptop paired with ADB, but due to recent laptop changes I forgot this step, so I was left without any connection to the phone, as MTP requires the screen to be unlocked.
Plugging in an external display with an MHL cable didn't work either, so I decided to flash a custom recovery and try to pull via adb - for my surprise, it worked.
Get Heimdall and adb
All commands are executed as root.
You'll need the following on Debian:
apt install heimdall-flash android-tools-adb
Normally, instead of
heimdall, it would be
fastboot, but not for a Samsung phone.
Flash TWRP recovery in Odin mode
- disconnect USB
- remove battery
- insert battery
poweruntil it vibes for 1 time
- connect the USB cable
See if the device is visible:
heimdall detect Device detected
If you're good to go, get the TWRP recovery; in my case, the device is an i9505, codenamed 'jfltexx'.
Make sure you're getting the right image for your device model.
cd /tmp wget https://eu.dl.twrp.me/jfltexx/twrp-3.1.1-0-jfltexx.img
When you have the image, flash it:
heimdall flash --RECOVERY /tmp/twrp-3.1.1-0-jfltexx.img --no-reboot
When you're using
--RECOVERY, there is no need to download the PIT file and to look for the recovery partition.
- remove USB
- remove the battery
poweruntil it vibes
- keep holding
volume upfor 1-2s more
Verify you have connection: (it takes a few seconds for recovery to boot, be patient)
adb usb adb devices List of devices attached d910339a recovery
Save the data
adb pull -a /sdcard/ /where/you/want/to/save/
This can take a while; also, make sure you have enough space on the device you're saving to.
Wipe the personal data
adb shell twrp wipe data twrp wipe cache twrp wipe dalvik reboot recovery
The last step reboots the device back to recovery; that is to make sure there is no cached filesystem data.
Once it's back:
adb shell ls -la /sdcard drwxrwx--- 3 media_rw media_rw 4096 Jan 1 00:25 . drwxr-xr-x 24 root root 0 Jan 1 00:28 .. drwxrwxrwx 2 root root 4096 Jan 1 00:25 TWRP ls -la /data/ drwxrwx--x 4 system system 4096 Jan 1 00:16 . drwxr-xr-x 24 root root 0 Jan 1 00:28 .. -rw------- 1 root root 2 Jan 7 1970 .layout_version drwxrwx--- 2 root root 4096 Jan 7 1970 lost+found drwxrwx--- 5 media_rw media_rw 4096 Jan 7 1970 media
If it's all clear, it's safe to put it up for a £0.99 auction on eBay.