带root(服务或后台线程)的Android屏幕捕获

带root(服务或后台线程)的Android屏幕捕获,android,root,capture,Android,Root,Capture,在使用android手机时,有一个应用程序捕获屏幕 1) 当应用程序处于活动状态时,捕获不带root的屏幕 2) 当应用程序返回堆栈(如返回主页)时,需要root权限才能捕获屏幕 我想知道如何使用root权限实现函数2) 在我看来,root权限意味着获得一个root shell,刷新一些命令和exec。所以我搞不清楚如何在shell命令中捕获屏幕 如果您拥有root甚至shell权限,您可以使用screenshot或screencap命令作为参考: root@android:/system/bi

在使用android手机时,有一个应用程序捕获屏幕

1) 当应用程序处于活动状态时,捕获不带root的屏幕

2) 当应用程序返回堆栈(如返回主页)时,需要root权限才能捕获屏幕

我想知道如何使用root权限实现函数2)


在我看来,root权限意味着获得一个root shell,刷新一些命令和exec。所以我搞不清楚如何在shell命令中捕获屏幕

如果您拥有root甚至shell权限,您可以使用screenshot或screencap命令作为参考:

root@android:/system/bin # screenshot -h                                   
unknown option -- husage: screenshot [-s soundfile] filename.png
   -s: play a sound effect to signal success
   -i: autoincrement to avoid overwriting filename.png

root@android:/system/bin # screencap -h                                      
    usage: screencap [-hp] [-d display-id] [FILENAME]
       -h: this message
       -p: save the file as a png.
       -d: specify the display id to capture, default 0.
    If FILENAME ends with .png it will be saved as a png.
    If FILENAME is not given, the results will be printed to stdout.

如果您的设备没有这些本机程序,您可以自己编写一个。源代码在这里:

非常感谢,我找到了另一个解决方案。chmod/dev/graphics/fb0更改设备权限不是一个好主意。但是你可以坚持你觉得舒服的任何解决方案。但是,我的问题是,如果您只是有访问帧缓冲区的权限,您仍然需要自己进行图像编码。但是这些任务都是在screencap中处理的,这将为您节省很多精力。我强烈建议你接受我的回答。我读了screencap.cpp,这个文件通过读取设备文件来捕获屏幕。chmod的想法在版本2.3或更高版本中有效。非常感谢你。