无法更改Android虚拟设备(AVD)上的文件权限

时间:2019-11-19 19:41:18

标签: android file permissions virtual device

我无法更改需要在Android虚拟设备(AVD)上测试的Shell脚本的权限。 AVD是Google Pixel 2(API 29)-它是通过​​Android Studio创建的。使用MacBook上的Android SDK中的Android调试桥(adb),我做到了:

%adb push file.sh / sdcard / steve

file.sh脚本在MacBook上是可执行的(模式755),但是当将其推送到AVD时,模式变为660(即不再可执行)。所以我这样做:

%adb shell

会打开一个模拟器shell会话。然后,我在AVD Shell会话中进行如下操作:

%generic_x86:cd / sdcard / steve
%generic_x86:chmod + x file.sh

这不会产生任何错误消息,并且实际上根本没有任何消息。 file.sh的权限没有更改。它仍然无法执行。

是否需要将文件推送到AVD上的其他目录?还是有其他方法可以使我将文件推送到AVD(仿真器)后更改其文件权限?

注意:我看过Android Studio“设备文件资源管理器”,可以在AVD上创建文件和目录,但是无法更改文件的权限。

TIA的任何提示,
史蒂夫

1 个答案:

答案 0 :(得分:0)

好的-我似乎已经通过via回的方式解决了这个问题。如前所述,我可以通过以下方式将文件推送到我的AVD: %adb push file.sh / sdcard / steve
问题是当时我无法更改此文件的权限。我发现命令“ run-as(classname)”使我能够执行chmod。所以顺序是这样的:     

    %adb push file.sh /sdcard/steve
    %generic_x86:run-as com.example.helloworld
    %generic_x86:cd /data/data/com.example.helloworld
    %generic_x86:mkdir steve
    %generic_x86:cd史蒂夫
    %generic_x86:cp /sdcard/steve/file.sh。
    %generic_x86:chmod + x file.sh

现在我要去比赛了。有趣的是,我可以将文件推送到的AVD上的一个位置是/ sdcard。感谢“ blackapps”的输入。