android - 在Android中的JNI方法中以 super 用户权限执行命令

标签 android c android-ndk java-native-interface

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

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:由于系统函数fork了一个新的子进程。我想要产生一个子进程来执行多个命令,就像在 Java 中一样。

最佳答案

我不明白你使用 system() 来执行有什么意义,system() 不会返回你的流来读取输出。

我认为你应该试试 popen() 而不是

关于android - 在Android中的JNI方法中以 super 用户权限执行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12469403/

相关文章:

android - 如何使用 MediaCodec API 调用我的自定义解码器

android - 将图像源从 R.drawable 更改为外部源,例如 CoverFlow 的 SD 卡

android - 房间迁移-如何向现有表添加新的 NON-NULL 和 String 类型的列

c - 如何对字符数组(字符串)使用 isdisit()?

c - 无法通过读取文件来填充结构数组

java - 如何关闭此 Activity ?

安卓 Intent 数据库

Android 使用带有位置建议的 AutoCompleteTextView(使用 Geocoder 和 getFromLocationName())

c - c语言去除字符串中的所有空格

android - 在 Android NDK 中使用比 Android Manifest 中的最低 API 更高的 API 是否有效?