Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can't open a device node after setenforce 0

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
like image 236
Raisings Snow Avatar asked Jul 01 '26 02:07

Raisings Snow


1 Answers

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

like image 100
Rick Sanchez Avatar answered Jul 02 '26 16:07

Rick Sanchez