Android root命令无法在应用程序中运行

时间:2014-04-04 16:00:49

标签: android shell command root

我正在一个有根的Nexus 7平板电脑上试验一些shell命令,我发现只有那些看起来不需要root权限的命令才会被执行。

例如,如果我打电话:

  Process process = Runtime.getRuntime().exec("su -c mkdir /sdcard/test");

创建目录。但如果我打电话:

  Process process = Runtime.getRuntime().exec("su -c mkdir /system/test");

什么都没发生。

(我已经尝试了各种各样的命令,并尝试了各种不同的语法,以防万一有关,但只有命令我不需要root访问才能执行)

当我尝试执行此命令时,我从SuperUser获取弹出窗口并授予我的应用程序root权限但是还有其他我缺少的东西吗?我四处看看,据我所知,这应该有效。

感谢。

1 个答案:

答案 0 :(得分:1)

  1. 您必须将参数引用到mkdir,否则su会认为/system/test是用户名并且无法运行。

    Process process = Runtime.getRuntime().exec("su -c \"mkdir /path/to/test\"");

  2. 由于文件系统的组织/安装方式,文件系统的某些区域(例如/system)是只读的。 Root访问权限不会改变,您的命令仍然会失败。

  3. 要验证您是否可以执行的操作,请在设备上安装终端仿真程序并首先手动运行命令。