In my system application for the latest jeally bean ( 4.3 ), signed with the fitting platform certificate running as android.uid.system. In my manifest, I added the permissions READ_FRAME_BUFFER, ACCESS_SURFACE_FLINGER.
In my app, I'm able to access the SurfaceFlinger service via the ScreenShotClient ( c++ ). Accessing the /dev/graphics/fb0 device directly ( also using native code, c++ ) via open always failed with a permission error.
I wrote an little command line tool, which is able to open the /dev/graphics/fb0. For sure my command line tool is running as root user, and my app is running as system user.
ls -l -a /dev/graphics/fb0 crw-rw---- root graphics 29, 0 2013-09-30 07:31 fb0
For my understanding only the root user, or a member of the graphics group can access the fb0. For my understanding the READ_FRAME_BUFFER permission, is exactly for accessing /dev/graphics/fb? Can someone please give me a hint?