首页 > 解决方案 > 无法获取三星 Galaxy Note 10.1 (N8010) 帧缓冲区,fb0 仅显示顶栏

问题描述

我的最终目标是在真正的 android 设备屏幕上非常快速地获得某些像素值,我希望我可以通过分析像素值并通过 adb 执行相应的触摸操作来自动化某些应用程序/游戏。

使用像使用 ADB 捕获屏幕这样的普通屏幕捕获程序太慢了。另外,我不需要读取和转换所有屏幕像素,我只需要读取一个或几个像素的值。

这应该有效:如何通过 ADB 获取屏幕像素的颜色,但似乎当我从 Galaxy Note 10.1 读取 fb0 时,只有前 48 行像素存储在 fb0 中。

当我这样做时:

cat /dev/graphics/fb0 > /sdcard/screen.raw

生成的文件只有 245,760 字节(等于 1280x800x4x48)。当我使用 ffmpeg 转换此文件时

ffmpeg -vcodec rawvideo -f rawvideo -pix_fmt rgb32 -s 1280x48 -i screen -f image2 -vcodec png image.png

结果是这样的: 从 fb0 转换的图像

当我使用以下方法将随机值插入 fb0 时:

cat /dev/urandom > /dev/graphics/fb0

我只能看到屏幕的顶部充满了随机值。

我确实在 /dev/graphics 中看到有一个大小为 1701000 字节的 fb12 文件,但我不知道如何转换它,因为它不是 1280 屏幕大小的倍数,所以我不能使用 ffmpeg 命令。

我找到了这个链接:https://github.com/meefik/linuxdeploy/wiki/Framebuffer-notes那里的人说 fb3 是他设备的正确帧缓冲区,但我测试了图形文件夹中的所有 fbX 并且它们都不是正确的。

有谁知道从 Galaxy Note 10.1 N8010 获取帧缓冲区?

标签: androidframebuffergalaxy

解决方案


推荐阅读