如何使用/ dev/graphics/fb0(Android)捕获屏幕

man*_*nju 10 android driver

如何/dev/graphics/fb0 使用从帧缓冲区收集的数据捕获Android设备屏幕内容以及如何使其成为图像文件.我知道这需要设备根植,我对此感到满意.

提前致谢,

neb*_*kat 13

这应该工作:

adb pull /dev/graphics/fb0 fb0
ffmpeg -vframes 1 -vcodec rawvideo -f rawvideo -pix_fmt rgb32 -s 320x480 -i fb0 -f image2 -vcodec png image.png
Run Code Online (Sandbox Code Playgroud)


小智 5

如果您拥有root权限.

  1. 将数据从fb0复制到另一个文件,例如

    cat fb0 > tmp
    
    Run Code Online (Sandbox Code Playgroud)
  2. 此时,您仍然无法打开新文件.因为该文件的数据结构不能满足任何图像文件格式.所以你需要的是解码它.在该文件中,每两个字节描述一个像素.较高的5个比特代表红色,较低的5个比特代表蓝色,其余的中间6个比特代表绿色.您可以使用上面的信息来构建BMP和任何其他可见文件.