首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Android中使用JNI方法执行具有超级用户权限的命令

在Android中使用JNI方法执行具有超级用户权限的命令
EN

Stack Overflow用户
提问于 2012-09-18 01:57:59
回答 3查看 5.6K关注 0票数 1

在Java中,我可以有这样的东西:

代码语言:javascript
运行
复制
Process p = Runtime.getRuntime().exec("su");
DataOutputStream pOut = new DataOutputStream(p.getOutputStream());
pOut.writeBytes("find / -perm -2000 -o -perm -4000\n");
pOut.writeBytes("ps\n");
pOut.writeBytes("ls\n");
pOut.writeBytes("exit\n");
pOut.flush();
p.waitFor();

我知道要在JNI方法中执行find命令,可以使用systempopen函数。但是我不知道怎么用su特权来执行它?

PS:因为系统功能分叉一个新的子进程。我希望有一个子进程生成来执行多个命令,比如在Java中。

EN

Stack Overflow用户

发布于 2012-09-18 02:17:59

假设你已经在你的安卓设备上安装了su,并且它就在你的路径上,你可以这样做:

代码语言:javascript
运行
复制
system("su -c \"find / -perm -2000 -o -perm -4000\" root");

su接受参数:-c参数指定要运行的命令。

编辑:你可能在那里运气不好。我不确定是否可以将多个命令传递给su命令。您可以将shell传递给它,然后传递该shell命令,但这并不能保证。

代码语言:javascript
运行
复制
system("su -c \"sh -c 'find / -perm -2000 -o -perm -4000; rm /tmp/1'\" root");
票数 2
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12469403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档