非Root安卓设备执行adb pull /sdcard遇权限拒绝错误求解决
解决非Root设备adb pull /sdcard时权限拒绝的问题
方法1:跳过无权限文件
利用adb pull的参数直接排除无权限访问的目录或文件,避免报错中断:
- 排除整个应用私有目录(最常用):
adb pull -a /sdcard --exclude="Android/data/*"
- 仅排除所有
.nomedia文件:
adb pull -a /sdcard --exclude="**/.nomedia"
注:-a参数用于保留文件原有的权限和时间戳,--exclude支持通配符匹配,可灵活跳过指定内容
方法2:指定可访问目录拉取
直接拉取sdcard下用户有权限访问的具体目录,避开应用私有目录:
adb pull /sdcard/Download adb pull /sdcard/Pictures adb pull /sdcard/Music
方法3:用adb备份全量可访问内容
非Root设备可通过adb备份功能导出sdcard上所有可访问的文件:
- 执行备份命令:
adb backup -f sdcard.ab -noapk -shared
- 将备份的
.ab文件转换为可解压的格式(需依赖Python):
dd if=sdcard.ab bs=1 skip=24 | python -c "import zlib,sys;sys.stdout.write(zlib.decompress(sys.stdin.read()))" > sdcard.tar
- 解压
sdcard.tar即可获取所有可访问文件。
方法4:开启USB调试安全权限(部分设备适用)
在开发者选项中找到**USB调试(安全设置)**并开启,部分设备会因此获得应用私有目录的临时访问权限,之后重新执行adb pull /sdcard即可完成拉取。
内容的提问来源于stack exchange,提问作者TaihouKai
相关产品推荐
相关产品推荐

