不止一个超级用户命令Android

时间:2011-01-30 23:16:56

标签: android command root

我正试图运行这个:

            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();
            }

可悲的是,只有当我为每个动作制作一个新按钮时它才会起作用.. :(

有没有办法一次运行多个命令?

由于

3 个答案:

答案 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();