Android 屏幕截图和屏幕截图权限

标签 android linux permissions screenshot adb

我尝试通过以 root 身份记录的 adb 进行屏幕截图,但收到“权限被拒绝”错误。

screenshot -i /sdcard/screen.png
error: writing file /sdcard/screen.png: Permission denied

但是如果我使用screencap,它就可以工作。

screencap -p /sdcard/screen.png

为什么会发生这种情况?

最佳答案

根据source code 截图在写入文件之前将UID设置为AID_SHELL(shell用户):

/* switch to non-root user and group */
gid_t groups[] = { AID_LOG, AID_SDCARD_RW };
setgroups(sizeof(groups)/sizeof(groups[0]), groups);
setuid(AID_SHELL);

png = fopen(outfile, "w");
if (!png) {
    fprintf(stderr, "error: writing file %s: %s\n",
            outfile, strerror(errno));
    exit(1);
}

关于Android 屏幕截图和屏幕截图权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17773905/

相关文章:

android - 四方转二维码

android - 如何将本地主机 SOAP web 服务连接到我的 android

java - 如何为使用数据库的 Android 应用程序构建服务器和客户端之间的通信

android - 使用 getIntent().getExtras() 获取 ArrayList<MyClass>

linux - 在 Linux 上的 Tomcat 中安装 xuggler java 库

linux - 如何让这个 init.d 脚本在服务器重启时启动?

django - nginx 500 错误,tmp 文件夹的权限被拒绝

linux - 列出编译对象使用的指令集 - 适用于 ARM 和 X86

sql-server - 在 Azure SQL 数据库上设置 RESTRICTED_USER

macos - 原子编辑器 "permission denied"| OSX 10.9.4 小牛队