Android 以root用户身份运行应用程序:root
我有一个根手机和它的应用程序,我已经建立。 我的应用程序从超级用户应用程序接收su权限,并可以调用需要root的命令,但问题是我有一段代码必须从具有root uid的进程运行,并且无法单独编译该文件 现在,是否可以分叉我的进程并以root:root的身份运行子进程?或者以某种方式将uid更改为root(我尝试了seteuid/setuid,但没有成功..可能是因为应用程序的setuid标志已关闭) 我想要这样的东西:Android 以root用户身份运行应用程序:root,android,c,java-native-interface,root,Android,C,Java Native Interface,Root,我有一个根手机和它的应用程序,我已经建立。 我的应用程序从超级用户应用程序接收su权限,并可以调用需要root的命令,但问题是我有一段代码必须从具有root uid的进程运行,并且无法单独编译该文件 现在,是否可以分叉我的进程并以root:root的身份运行子进程?或者以某种方式将uid更改为root(我尝试了seteuid/setuid,但没有成功..可能是因为应用程序的setuid标志已关闭) 我想要这样的东西: fork process if (child-process) run
fork process
if (child-process)
run_special_code()
else
wait_for_the_child_process_to_exit()
谢谢 我不确定Android有多大不同,但在POSIX系统上,能够更改进程的[e]uid并不取决于在二进制文件模式下设置的setuid位。如果需要设置进程的真实uid和gid,那么应该调用
setuid()
/setgid()
两次——第一次调用将设置euid/egid,但第二次调用(当euid/egid已经是根时)也将设置真实(并保存)uid/gid。很自然,你只想在分叉后做这件事,而且只想在孩子身上做。同样,Android可能会有所不同。我已经尝试过了,uid保持不变…可能是