我正试图运行这个:
String[] hin1 = { "su", "-c",
"mount -o remount,rw -t yaffs2 /dev/block/mtdblk3 /system" };
try {
Runtime.getRuntime().exec(hin1);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String[] hin2 = { "su", "-c", "m /system/etc/hosts" };
try {
Runtime.getRuntime().exec(hin2);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String[] hin = { "su", "-c",
"cp /sdcard/hosts /system/etc/" };
try {
Runtime.getRuntime().exec(hin);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
可悲的是,只有当我为每个动作制作一个新按钮时它才会起作用.. :(
有没有办法一次运行多个命令?
由于
答案 0 :(得分:1)
不要这么认为它的工作,我尝试了以下代码:
public class GainrootActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void gainroot(View view)
{
String[] hin1 = { "su", "-c","chmod 777 dev/test1" };
try {
Runtime.getRuntime().exec(hin1);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
仅命令su -c chmod 777 dev / test1的按钮(用于更改dev目录中一个日志文件的权限)但它不起作用。 这有什么不对。可以指出什么是失踪的。 我甚至将此行放在Androidmanifest.xml中
<uses-permission android:name="android.permission.ACCESS_SUPERUSER" />
RGDS, SAURABH
答案 1 :(得分:0)
取决于su命令的实现方式(例如,如果它正在启动一个接近有能力的shell的东西,就像在更典型的Linux上那样),你可以通过用分号分隔它们将多个命令组合成一个字符串。 / p>
你也可以创建一个包含多个命令的shell脚本,并使用su来启动它,尽管你可能需要把它放在一个可执行的位置。
答案 2 :(得分:0)
在下一个命令启动之前,您不会让一个命令完成。尝试在exec之后添加waitFor:
Runtime.getRuntime().exec(hin1).waitFor();