如何从Android应用程序运行root命令?

时间:2015-11-04 18:59:16

标签: android linux root android-permissions chroot

我想编写一个应用程序,它根据安装它的设备,我的意思是通过安装此应用程序,您将能够在没有计算机的情况下使设备生根,就像以下链接中的应用程序一样,

http://www.kingoapp.com/root-tutorials/how-to-root-android-without-computer.htm

我已经搜索了很多关于如何使用Android设备的Java代码进行搜索的内容,但对我来说没有明确的解决方案。根据我的研究,我认为我们需要以下步骤:

1-能够使用Runtime.getRuntime().exec();

在Android中使用shell命令

2-执行获得root权限的命令(我认为su,但这需要执行root设备)。

3-启动将根设备的root命令。

我找不到关于如何执行上述步骤的代码说明。我想首先理解这个过程,可以在其中使用的命令,然后我想尝试自己实现它。由于商店中有许多提供此功能的应用程序,因此实施它必须是可行的。

有人可以向我解释如何实施这个过程吗?

此外,是否有可能为相反的进程编写代码,这是解除设备的连接?

感谢任何帮助。

感谢。

1 个答案:

答案 0 :(得分:3)

要运行root命令,必须使用以下格式:

public void RunAsRoot(String[] cmds){
    Process p = Runtime.getRuntime().exec("su");
    DataOutputStream os = new DataOutputStream(p.getOutputStream());            
    for (String tmpCmd : cmds) {
        os.writeBytes(tmpCmd+"\n");
    }           
    os.writeBytes("exit\n");  
    os.flush();
}

传入一个字符串数组,每个字符串都是需要执行的命令。例如:

String[] cmds = {"sysrw", "rm /data/local/bootanimation.zip", "sysro"};