Android Display User space - Kernel space interact

2019-05-21 13:21发布

问题:

Android Display User space - Kernel space interaction.

My current understanding is that there is a kernel driver for framebuffer which allocates the memory by calling mdss_mdp_alloc_fb_mem() This allocates some memory(in my case size : 800000) at an address in ION carved out region(My case - 0x7ee00000).

Android somehow writes into this area, which the display driver reads and displays it. I might be wrong with my understanding. If so, request you to please correct me.

I am interested to know the place exactly where the Android code (Surface Flinger or Open GL or any other library) writes into the allocated framebuffer(fb). I want it in code. I am facing a screencapture problem in my platform. It is happening in normal scenario but during the crashdump(due to any reason like panic) screen shot is captured from the above address(mapped virtual address), and i only see a blank screen.

So to my question, how eactly android is writing to the fb, Is it that the android is writing to /dev/graphics/fb0?

If so how can i confirm it in code?

The code is not that simple and i am not a c++ programmer. If someone could help me out, it would be a great help.