Android Display User space - Kernel space interaction
Asked Answered
S

0

2

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.

Supernal answered 2/5, 2013 at 6:33 Comment(3)
I need to get the complete scenario actually. Its just not about general screen capture. I need to capture the screen when a panic or watchdog occurs and system resets. In those cases, some secure code is there where the addresses and sizes are configured. On reboot, in the initial boot loader, it checks if this is a crash, then it it dumps those respective areas. So i am getting a blank image in my case..Supernal
Hi manty, You found your way?Pendant
Hmm. My code uses IOMMU address space. It is not writing to /dev/graphics/fb0 It is vendor specific implementation.Supernal

© 2022 - 2024 — McMap. All rights reserved.