繁体   English   中英

如何在根仿真器上创建的android应用程序中运行终端命令?

[英]How do you run terminal commands in a created android application on rooted emulator?

我目前正在创建一个将运行一些终端命令的android应用程序。 我使用的是默认情况下root附带的genymotion Nexus 5(4.4.4)仿真器。 但是,为了测试一些常规命令,我做了以下操作:

Process process = Runtime.getRuntime().exec("su");
process = Runtime.getRuntime().exec(new String[]{"mkdir /sdcard/tmp1/"});
process = Runtime.getRuntime().exec(new String[]{"adb pull /sdcard/tmp3/new4.txt \"C:\\Users\\my_username\\Documents\\\""

当执行“ su”时,我从名为SuperUser的应用程序收到一条消息,提示我已获得root特权。 但是,没有其他命令被执行。 没有tmp1目录,我无法将手动添加到模拟器的new4.txt文件拖到我的documents文件夹中。

我在路径字符串中是否缺少某些内容?

当执行“ su”时,我从名为SuperUser的应用程序收到一条消息,提示我已获得root特权。

因此,我想您正在手机上运行代码。 在这种情况下,您还要在电话上运行您要在主机上运行的第三个命令( adb pull )。

正如这个答案指出的那样,您正在不同的子Shell中运行连续的命令。 因此,您的第一个su与第二个exec的上下文无关紧要。 要使用su执行命令,请参见su的手册页 一个简单的例子是:

su - -c "whoami"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM