2013年7月29日星期一

Screenshot software, Nexus7 tablet's framebuffer issue

Heroes, little brother recently doing a screenshot of the software, is by crawling / dev/graphics/fb0 to achieve.
program to run on other phones tablet is perfect, except Nexus7 tablet caught out fb0 simply not display an image, but a bunch of gibberish.
And no matter what time to grab this file, the data will remain unchanged, thus confirming the underlying simply do not have to modify it before.
So there would like to ask of people in this area know this case in the end should go read the display data?

Nexus7's GPU is Tegra, I personally doubt that it is simply not going to achieve literacy framebuffer.

a reference is: I use ddms to capture screenshot is ok, but ddms is to call the bottom of the interface device of getScreenshot grab, with the framebuffer should be different.
------ Solution ---------------------------------------- ----
influence among the framebuffer adb ddms also through reading. I read your post, check the next jb's code, it is read through sceencap command. You can refer to frameworks / native / libs / gui / SurfaceComposerClient.cpp
frameworks / base / cmds / screencap / screencap.cpp
sdk / ddms / libs / ddmlib / src / com / android / ddmlib / AdbHelper.java
sdk / ddms / libs / ddmlib / src / com / android / ddmlib / Device.java
system / core / adb / framebuffer_service.c

hoping to help
------ Solution ------------------------------- -------------
the Internet to find some explanation of this problem E text, probably that google prevents direct read framebuffer, reads as follows:

Wouldn't it be great if you could record a video of your phone's screen? Well, thanks to Media Solutions and a little rooting, Screencast does just that. However, Galaxy Nexus users (such as me) were reporting black screens instead of screen ; recordings. After trying everything from Mobo Player to re-installing the app, I decided to contact the developer (s). Clearly, this was the right thing to do. Within minutes, I had a response sitting in my inbox.

Media Solution's answer was nice and simple:

"Google blocked the conventional framebuffer where Screencast and other screen capture utilities grab the screen on the Galaxy Nexus. We are actively ; investigating new ways to support your device. "

Media Solutions went on to explain to me how the Screencast app works and why exactly it is currently not compatible with the Galaxy Nexus:

"Traditionally, on all Linux systems and all Android OSs (excluding Tegra based devices) the display is updated using what is called the Framebuffer, a layer between the graphics processor and the LCD. You can think of it as a "bucket" which contains ; what the screen should display, the graphics processor updates it then signals to the LCD to read the bucket. All screen capture programs ; for Android used this layer to save the screen as a screen shot. Screencast uses it as well to create frames it needs to ; save as a video.

The Galaxy Nexus seems to use a framebuffer as well (good news). However, the framebuffer seems to always be empty (bad news). This can be due to many factors including permissions on the framebuffer driver. Support for the Galaxy Nexus may be as easy as changing permissions on the framebuffer or as difficult as going back to the drawing board to figure out a new way to grab the display. During each release cycle, we usually have on main big feature + previous bug fixes and tweaks. After Screencast ; v3.0 is released, Galaxy Nexus support will be the main feature we will be working on. "

So as you can see, Media Solutions already has two plans of action. In addition, I was told that now that v3.0 of Screencast is out, fixing the Galaxy Nexus compatibility issue is their number one priority.

------ For reference only ---------------------------------- -----
Screenshot way too many types, / dev/graphics/fb0 such general also be read by root, generally with much of
------ For reference only - --------------------------------------

then ask how to compare Universal it? ?
------ For reference only -------------------------------------- -

heroes, I see there is also a screencap by reading / dev/graphics/fb0, but I did not read directly? If there Nexus7 your hand, then compare with other phones will know.
ddms my post I talked about the interface through getScreenshot indeed wrong, which is 2.3.3 code to do so.
------ For reference only -------------------------------------- -

fact is the case, I use the open source android libvncserver do a VNC program, in addition to reading fb0, I do not know any other way to read? root is not the problem, but have no way to root it is even better. Please enlighten me.
------ For reference only -------------------------------------- -


procedures should be considered in fact get, because all other phones, tablet are ok, with the exception of this Nexus7 problem.
Andrews machine sea strategy is really a headache, you do not compatible with it, people complain that you do not, you go to are compatible with it, the existing models have to kill you, not to mention the ongoing maintenance.
------ For reference only -------------------------------------- -
me and you encounter the same problem, I also want to get on the nexus 3 fb0 data, which did nothing in the whole 0. Now suspected nexus series is not all that. It does not matter with the root of this problem, I have root too, as all zeros, suspected what hands do not google, nexus can not do their own shots, I think we can start from here to recover at the code to see how it was finally realized.
------ For reference only -------------------------------------- -


should be independent with their own shots (you mean it should be is while holding down the power button + volume down key), this is not only Nexus is 4.0 ICS new features, after all 4.0 phones can be screenshots, but these phones I've tested fb0 read is normal.
It seems all the Nexus series have this common problem, there must be reasons behind this. Google engineers could not know these things, perhaps deliberately so.
------ For reference only -------------------------------------- -
mark, waiting for the answer
------ For reference only ------------------------------ ---------


thanks to this man, it should be Google tampered with it. Currently ScreenCast out to the 3.2 version, and still can not support Galaxy Nexus series, it seems that I also have a very good reason not to support it. Results posted.
------ For reference only -------------------------------------- -
Samsung GT-P7510 device described with the landlord Galaxy Nexus devices have the same problem. . . . I tried other phones can, GT-P7510 so bad, black. GTP-7310 is not all black, but it is not OK, 7310 fb0 was inside a bit like a start-up screen
------ For reference only --------------- ------------------------
GT P7510 is black not read any data, there is no solution

1 条评论:

  1. f you don't understand my answer, don't ignore it, ask a question.

    回复删除