NoxPlayer通过adb screencap截图报只读文件系统错误如何解决
NoxPlayer adb截图报Read-only file system解决方法
报错核心原因:执行adb -e shell screencap -p screen.png时,未指定保存路径的情况下,截图会默认写入adb shell当前工作目录,通常是只读挂载的系统根目录/系统分区,和是否开启root、调试模式没有直接关系,该类路径默认禁止普通写入操作。
可行操作方案
- 方案1:指定可写路径保存后拉取到本地
模拟器内置存储/sdcard/路径默认全局可写,不需要修改系统配置,操作步骤如下:- 执行截图命令,将文件保存到内置存储:
adb -e shell screencap -p /sdcard/screen.png - 将截图文件拉取到电脑当前目录:
adb -e pull /sdcard/screen.png . - 可选操作,删除模拟器内的临时截图文件避免残留:
adb -e shell rm /sdcard/screen.png
- 执行截图命令,将文件保存到内置存储:
- 方案2:管道流直接输出到电脑本地(自动化场景首选)
不需要在模拟器内生成任何临时文件,直接通过adb传输截图字节流到电脑,完全规避文件系统权限问题,触发反作弊的风险最低:- Mac/Linux环境直接执行:
adb -e shell screencap -p > screen.png - Windows CMD环境直接执行上述管道命令会因换行符转义导致图片损坏,建议用PowerShell执行:
adb -e shell screencap -p | ForEach-Object { $_.Replace("rn","n") } | Set-Content screen.png -Encoding Byte`
- Mac/Linux环境直接执行:
- 方案3:临时重挂载系统分区为读写模式(不推荐游戏自动化场景使用)
如果你确实需要往系统路径写入文件,可在开启root的前提下执行以下命令临时修改分区挂载状态,模拟器重启后会自动恢复只读:adb -e rootadb -e remount注意:该操作会修改系统分区状态,有极大概率被游戏反作弊模块检测为异常环境,导致账号封禁,非必要不要使用。
内容的提问来源于stack exchange,提问作者Richard Tran
相关产品推荐
相关产品推荐

