O
Well, turns out there is a something that can be attempted - copy the device framebuffer - but it still did not result with full device screenshot for me.
https://android.stackexchange.com/questions/232608/why-is-the-framebuffer-missing-on-some-android-devices
in Android it’s /dev/graphics/fbX, usually /dev/graphics/fb0`
for me:
ls -la /dev/graphics/
total 0
drwxr-xr-x 2 root root 80 2022-02-12 13:09 .
drwxr-xr-x 18 root root 2560 2022-02-12 13:10 ..
crw-rw---- 1 root graphics 29, 0 2022-02-12 13:09 fb0
crw-rw---- 1 root graphics 29, 1 2022-02-12 13:09 fb1
https://www.kernel.org/doc/html/latest/fb/framebuffer.html
The frame buffer devices are also normal memory devices, this means, you can read and write their contents. You can, for example, make a screen snapshot by:
cp /dev/fb0 myfile
And finally https://stackoverflow.com/questions/12456174/how-to-convert-a-raw-rgb-frame-buffer-file-to-a-viewable-format/16936538#16936538 :
To not re-invent the wheel, I tried to re-use existing tool: ...
I called the script from that post get_android_fb_format.sh, you might need to change the main line to this:
ffmpeg -f rawvideo -pix_fmt $item -s $FB_RESOLUTION -i androidFB $OUTPUT_DIR/$item.png
So, trying from PC:
$ adb pull /dev/graphics/fb0 androidFB
adb: error: failed to copy '/dev/graphics/fb0' to 'androidFB': remote open failed: Permission denied
Cannot - must do as root from device:
# cd /sdcard/Download
# cp /dev/graphics/fb0 androidFB
... that worked; then on PC - adb pull line saves a file called androidFB on device, on which I run the script:
$ adb pull /sdcard/Download/androidFB
$ bash get_android_fb_format.sh
I get a folder fbresult/ created, where different attempts at decoding can be seen. Here's the interesting part:
For me, /dev/graphics/fb0 held the Samsung boot logo (I got the correct decoding, but liked this one):
However, /dev/graphics/fb1 is always blank
So, probably this is not the right thing - to go back to https://android.stackexchange.com/questions/232608/why-is-the-framebuffer-missing-on-some-android-devices :
No android app handles directly /dev/fb0, does it exist or not
...
Not even the Surface Flinger can see the /dev/fb0 directly.