im trying to get some data from a device file at path /dev/graphics/fb0
in service, U have root permission and execute the chmod 777
command, then I got an "permission denied" error.
Then I excuted: setenforce 0
, and the error disappears, but the file's size is still zero
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
You aren't supposed to do normal read on framebuffer AFAIK.
You'll need to use
ioctl
sys call to read/write into it. See some examples:https://android.googlesource.com/platform/system/extras/+/donut-release/tests/framebuffer/fb_test.c
http://betteros.org/tut/graphics1.php