我正在尝试通过以 root 身份登录的 adb 截屏,但出现“权限被拒绝”错误。
screenshot -i /sdcard/screen.png
error: writing file /sdcard/screen.png: Permission denied
但是,如果我使用屏幕截图,它会起作用。
screencap -p /sdcard/screen.png
为什么会这样?
我正在尝试通过以 root 身份登录的 adb 截屏,但出现“权限被拒绝”错误。
screenshot -i /sdcard/screen.png
error: writing file /sdcard/screen.png: Permission denied
但是,如果我使用屏幕截图,它会起作用。
screencap -p /sdcard/screen.png
为什么会这样?
根据源码 screenshot
在写文件前设置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);
}
您只需修改目录'/sdcard'的属性
chmod 777 /sdcard
这适用于我的手机。