我正在开发一个应用程序为根访问屏幕截图。我正在使用这个调用来截图:
"/system/bin/screencap -p " + getFilesDir() + "screen.png"然而,它在根上下文中创建了这个屏幕截图,即使我使用chmod777和chown user_id:user_id,我也无法使用我的应用程序访问它。SELinux仍然说这个访问被拒绝,因为scontext是u:r:untrusted_app:s0,而tcontext是u:object_r:app_data_file:s0。我试着用--context u:r:untrusted_app:s0调用su,但没有帮助。
你知道如何执行正确的屏幕捕获调用,将其保存到应用程序内部存储中,然后允许应用程序访问吗?
发布于 2017-02-23 03:16:32
如果您因为权限而有权访问该文件,则可以删除命令的-p <filename>部分。在这种情况下,创建的图像将通过管道传输到stdout,这肯定是您的应用程序可以访问的。您只需连接到执行su命令的Process的InputStream,并自己将数据保存到文件或在您的应用程序中使用它。
注意,在本例中,请求者希望读取文本,因此可接受的解决方案是将数据读取到缓冲区并转换为String -当然您不需要转换,因为PNG文件不是可打印的字符串...
https://stackoverflow.com/questions/42114727
复制相似问题