java 执行shell命令_通过Java代码在Java上运行Shell命令?

我有一个应用程序,该应用程序应该使用一些shell命令将文件从sdcard复制到/ system / media /。它将需要root用户,并且我正在对root用户的设备进行测试。我正在使用运行时来执行Shell命令,但无法正常工作。这是我的运行时所需要的

public void RunAsRoot{String[] commands = {"sysrw", "rm /data/local/bootanimation.zip", "sysro"};{

Process p = Runtime.getRuntime().exec("su");

DataOutputStream os = new DataOutputStream(p.getOutputStream());

for (String tmpCmd : commands) {

os.writeBytes(tmpCmd+"\n");

}

os.writeBytes("exit\n");

os.flush();

}

但是我的日志只显示其中两个没有被拒绝

07-30 03:14:11.112: WARN/su(3593): request rejected (10047->0 /system/bin/sh)

07-30 03:14:11.132: DEBUG/su(3592): 10047 com.bba.stormdroid executing 0 /system/bin/sh using shell /system/bin/sh : sh

07-30 03:14:11.152: WARN/su(3594): request rejected (0->0 /system/bin/sh)

07-30 03:14:11.182: WARN/su(3595): request rejected (0->0 /system/bin/sh)

07-30 03:14:11.202: WARN/su(3596): request rejected (0->0 /system/bin/sh)

07-30 03:14:11.242: DEBUG/su(3597): 10047 com.bba.stormdroid executing 0 /system/bin/sh using shell /system/bin/sh : sh

这两个看起来是sysrw和sysro命令,但是当我触发此代码时,该应用程序仍会请求root权限。我是接触根目录的新手,但似乎无法弄清楚如何使它起作用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值