我试图从服务中路径 /dev/graphics/fb0
的设备文件中获取一些数据,你有 root 权限并执行 chmod 777
命令,然后我收到“权限被拒绝”错误。
然后我执行:setenforce 0
,错误消失,但文件大小仍然为零
RandomAccessFile raf = new RandomAccessFile("/dev/graphics/fb0", "rw");
FileChannel fc = raf.getChannel();
logText.setText(raf.length() + " "); // length is 0
MappedByteBuffer mbb = fc.map(FileChannel.MapMode.PRIVATE, 0, 1024 * 1920 * 4);
raf.close();
FileInputStream fileInputStream = new FileInputStream("/dev/graphics/fb0");
logText.setText(fileInputStream.available() + " "); // available is still 0
最佳答案
你不应该在 framebuffer AFAIK 上进行正常的读取。
您需要使用 ioctl
系统调用来读/写它。查看一些示例:
https://android.googlesource.com/platform/system/extras/+/donut-release/tests/framebuffer/fb_test.c
关于java - setenforce 0 后无法打开设备节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64993345/