permissions - 是否需要 root 设备才能访问范围存储?
问题描述
我们目前正在使用 AWS Device Farm 来测试 Android 应用程序。使用 AWS 设备场,首先构建 apk。然后,将所需的工件放置在测试设备的范围存储中。然后,运行应用程序(使用这些工件)。最近,我在尝试推送工件时遇到了以下问题:(考虑我的应用程序包是“com.myapp”)
[ 5%] /sdcard/Android/data/com.myapp/files/MyFolder/scripts.zip
[ 11%] /sdcard/Android/data/com.myapp/files/MyFolder/scripts.zip
[ 16%] /sdcard/Android/data/com.myapp/files/MyFolder/scripts.zip
[ 22%] /sdcard/Android/data/com.myapp/files/MyFolder/scripts.zip
[ 27%] /sdcard/Android/data/com.myapp/files/MyFolder/scripts.zip
[ 33%] /sdcard/Android/data/com.myapp/files/MyFolder/scripts.zip
[ 38%] /sdcard/Android/data/com.myapp/files/MyFolder/scripts.zip
[ 44%] /sdcard/Android/data/com.myapp/files/MyFolder/scripts.zip
[ 49%] /sdcard/Android/data/com.myapp/files/MyFolder/scripts.zip
[ 55%] /sdcard/Android/data/com.myapp/files/MyFolder/scripts.zip
[ 60%] /sdcard/Android/data/com.myapp/files/MyFolder/scripts.zip
[ 66%] /sdcard/Android/data/com.myapp/files/MyFolder/scripts.zip
[ 71%] /sdcard/Android/data/com.myapp/files/MyFolder/scripts.zip
[ 77%] /sdcard/Android/data/com.myapp/files/MyFolder/scripts.zip
[ 82%] /sdcard/Android/data/com.myapp/files/MyFolder/scripts.zip
[ 88%] /sdcard/Android/data/com.myapp/files/MyFolder/scripts.zip
[ 93%] /sdcard/Android/data/com.myapp/files/MyFolder/scripts.zip
[ 99%] /sdcard/Android/data/com.myapp/files/MyFolder/scripts.zip
[100%] /sdcard/Android/data/com.myapp/files/MyFolder/scripts.zip
adb:错误:无法将“scripts.zip”复制到“/sdcard/Android/data/com.myapp/files/MyFolder/scripts.zip”:远程secure_mkdirs 失败: GOOGLE PIXEL 5(解锁)OS 11 上的权限被拒绝
而相同的逻辑适用于几组设备:
三星盖乐世 S20(解锁)10
三星 GALAXY S9(解锁)9
运行以下命令来推送 scripts.zip 文件: adb push scripts.zip /sdcard/Android/data/com.myapp/files/MyFolder/scripts.zip
我阅读了很多关于此错误的文章,但所有文章都使用有根设备。因此,在运行某些命令时,他们能够修复它。就我而言,aws 云包含运行测试用例的真实设备,因此无法对设备进行生根。
我的要求是使用 cmd 命令将工件推送到我自己的应用程序的范围存储中。先感谢您。
解决方案
您自己的应用在 Pixel 设备上的范围存储位置是
/data/data/com.myapp/files
要将文件复制到此文件夹中,您可以将其复制到临时位置:
adb push scripts.zip /data/local/tmp/scripts.zip
然后将上传的文件复制到应用程序的私有位置:
adb shell run-as com.myapp cp /data/local/tmp/scripts.zip .
推荐阅读
- c - 函数定义的这个 C 语法是什么
- jsf - PrimeFaces ImageSwitch 组件在最后一张图片上停止
- javascript - 如果字符串以 E 和 A 开头,我想用数据显示不同的 Div,然后从数据中删除前两个字母
- python - Python 中的 Ruby pack('H*') 等价物
- jquery - 如何使用美丽的汤选择某些“跨度”内容
- java - 循环内验证
- html - 想要重叠 2 个 div,所以即使缩放窗口,它们也不会移动
- regex - 正则表达式匹配所有出现,除非只存在一个
- mysql - 键值 MySQL 表自连接
- python-2.7 - 如何在python中拆分列表?