我尝试通过以 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/