I'm sorry if bricks-related and support-my-issues questions are off-topic on the site, but let me try.
Yesterday I've got a crash on my device causing an immediate reboot. After the very first boot splash screen the device rebooted again, and then once again just after the boot splash screen. After the last reboot, the device had loaded the "operational" mode, however the screen just got black. Fortunately, my device has the developer mode on and I can use adb
. The very first attempt I was trying to do was some sort of screencasting just as follows:
:repeat
adb shell screencap -p /sdcard/screen.png
adb pull /sdcard/screen.png
adb shell rm /sdcard/screen.png
goto repeat
Ok, the device is not dead, and that's great (I'm using the USB connection to watch it). For some reason, the display simply gets black after the boot. All clicks/touches seem to be detected by the device, but I've got feeling that it was lagging -- maybe due to 1fps produced by the script above or due to monitoring the device screencasting at the laptop screen still trying to do anything at the device physically. Another important note is that the screenshot is always 640x480 no matter what the target device resolution/density is (probably it depends on screencap
command line). Initially, after the very first try I've also noticed that the resolution was extremely small rendering huge widgets at the lock screen. I've managed to adjust the resolution and density using the adb shell wm
commands family, however another issue is that the device screen is rotated by 90° visually at the screenshots, but accepting the touches at the device display as if it was still in the portrait orientation (something like vertically stretched pixels?).
I can't enter the recovery mode because it's interrupted with the reboots I mentioned above, however the download mode keeps the display always turned on (until the battery is pulled off). I suspect there is a software issue requiring to make a hardware reset or make a tiny configuration change, but I cannot do it until I take all the necessary backups of the device. Here are the backup methods I used:
- Direct copying important files from the sdcard
- Trying to export/backup important data touching the black screen and watching the process at the laptop display in the applications that support backup/restore facilities (not that easy, much harder than using a touchpad, and really very annoying).
- Copying some known to me files from some
/data/data/package/
locations - TitaniumBackup (couldn't manage to make it work -- difficult to operate in the "blind" mode + it complains for having no enough space even for tiny applications)
adb backup
for single packages
Unfortunately, the latest backup method for some reason does not work for some applications, and I observed the symptoms very similar described here and here. And, unfortunately, there are some medical applications I cannot ignore the backups from.
My questions are, hoping they are relevant enough:
- Would this black-out be interpreted as a software issue caused with the crash? I mean: it does not seem to be a hardware issue (I believe it doesn't, but I'm not sure) or maybe there are just special display config settings causing the blackout?
- Is there any other reliable method to take out the important information before I make any heavy changes?
Environment:
- Device: Samsung Galaxy S5
- Android: 5+, the stock firmware (Spr...), not re-flashed, rooted
Edit 1:
I've just noticed this question: Backup using adb on a phone with a dead screen - it describes not exactly the same case, since adb backup
can't work for some applications + the recommendations in that questions not working for me, unfortunately.
Edit 2:
The app I want to backup DOES NOT allow backup via the application manifest. Oh f... I wasted two nights to take it out gently, and only a few backup tools report that the application backup is not possible. It's ridiculous: some sensitive data apps ALLOW to back up including messages, but not this one. How sensitive is taking pills log? Hilarious. So I took the application database SQLite files in order to try to restore them manually. I don't care if it succeeds or not just because of android:allowBackup
. For those who would like to try to enable such an important feature here are some really easy (but time taking) steps described in
- Android: Enable ADB Backup for Any App
- Android: How to Decompile and Recompile APKs
- Apktool build/install instructions
That's really straigh-forward to proceed with all of the above instructions, but I've got a few issues being not able to perform adb install -r ***
:
- The app I'm trying to take out uses a conflicting permission (
C2D_MESSAGE
or so, and it can be easily removed before building a new APK) - This probably won't ever work because I was trying to install an APK signed with another keys and I'm getting certificate errors.
Ok, I'm fine to take the SQLite files, and don't care the shared preferences. However I'm still wondering is there a way of resetting the user operating mode screen driver/adapter settings in order to make it enabled again and let the device not invert portrait and landscape orientation.
Edit 3:
I've managed to flash a custom recovery once, and then just reboot. The display in a portrait orientation renders as if it were in a landscape mode visually having two big black bars over and under the rendered scene! That's "awesome". :D Flashing it again now turned it into a brick so that I can't even enter the recovery anymore. I backed up what I wanted. Now unbricking.
Edit 4:
No unbricking -- the device turned into a brick freezing at reboot. Download mode is still available but flashing any firmware doesn't help unfortunately. Bad luck, but I'm really happy I was able to back up all important data (and even that non-backing-up one: I could register (!) touching the black screen and watching adb screenshots with 1-2 fps :D -- now my that app profile is in the cloud). The end.