我是新的Android应用开发者 我想知道如何从我的android活动中运行bash脚本
我这样做是我在这里找到的
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();
}
但现在我遇到了很多这样的错误:
答案 0 :(得分:2)
我相信你只需要用 try / catch 块来包围它们,这是一个Java规则,请尝试使用此代码:
public void RunAsRoot(String[] cmds) {
Process p = null;
try {
p = Runtime.getRuntime().exec("su");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
DataOutputStream os = new DataOutputStream(p.getOutputStream());
for (String tmpCmd : cmds) {
try {
os.writeBytes(tmpCmd+"\n");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
try {
os.writeBytes("exit\n");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
os.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
其次,手动执行su,然后执行命令id以查看是否可以成为root用户,以防万一。