【问题标题】:Android take screenshot (ROOT)Android 截图(ROOT)
【发布时间】:2017-06-26 03:58:36
【问题描述】:

我正在开发一个应用程序来获取具有 root 访问权限的屏幕截图。 我正在使用此调用截屏:

"/system/bin/screencap -p " + getFilesDir() + "screen.png"

但是,它会在根上下文中创建此屏幕截图,即使我 chmod 777 和 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,但没有用。

知道如何执行正确的屏幕截图调用,将其保存到应用程序内部存储,然后允许应用程序访问吗?

【问题讨论】:

    标签: android root selinux seandroid


    【解决方案1】:

    如果您因权限而有权访问该文件,您可以删除命令的-p <filename> 部分。在这种情况下,创建的图像将通过管道传输到您的应用程序绝对可以访问的标准输出。 您只需连接到执行 su 命令的ProcessInputStream 并将数据自己保存到文件或在您的应用程序中使用。

    如果显示在此处,如何读取标准输出:Read command output inside su process 请注意,在此示例中,询问者想要读取文本,因此接受的解决方案将数据读取到缓冲区并转换为 String - 当然您不需要转换,因为 PNG 文件不是可打印的字符串...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-05
      • 1970-01-01
      • 1970-01-01
      • 2011-06-11
      • 1970-01-01
      相关资源
      最近更新 更多