我无法更改需要在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的任何提示,
史蒂夫
答案 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”的输入。