Permissions 是否需要根设备才能访问作用域存储?

Permissions 是否需要根设备才能访问作用域存储?,permissions,adb,aws-device-farm,scoped-storage,rooted-device,Permissions,Adb,Aws Device Farm,Scoped Storage,Rooted Device,我们目前正在使用AWS设备场测试android应用程序。使用AWS设备场,首先构建apk。然后,将所需的工件放置在测试设备的作用域存储器中。然后,运行应用程序(使用这些工件)。 最近,我在尝试推送工件时遇到了以下问题: (假设我的应用程序包是“com.myapp”) [5%]/sdcard/Android/data/com.myapp/files/MyFolder/scripts.zip [11%]/sdcard/Android/data/com.myapp/files/MyFolder/scr

我们目前正在使用AWS设备场测试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”:远程安全\u mkdirs失败:权限被拒绝 在GOOGLE PIXEL 5(解锁)OS 11上

然而,相同的逻辑在一些设备上起作用:

三星GALAXY S20(解锁)10

三星GALAXY S9(解锁)9

运行以下命令以推送scripts.zip文件: adb push scripts.zip/sdcard/Android/data/com.myapp/files/MyFolder/scripts.zip

我读了很多关于这个错误的文章,但是他们都在使用根设备。因此,在运行某些命令时,他们能够修复它。在我的例子中,aws云包含运行测试用例的真实设备,因此不可能对该设备进行根处理

我的需求是使用cmd命令将工件推送到我自己应用程序的作用域存储中。
提前感谢。

您自己的应用程序在像素设备上的作用域存储位置是

/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 .
然后将上传的文件复制到应用程序的私人位置:

adb push scripts.zip /data/local/tmp/scripts.zip
adb shell run-as com.myapp cp /data/local/tmp/scripts.zip .

下面的答案有助于解决问题吗?