android 获取永久root权限

条件:
android 4.4 已经root了,想要通过root权限push一个自己制作的su文件到bin目录中,这样即使取消了root软件还是能够通过自己的su执行高级操作。

目标如题所述。问题是,现在在调用自己制作的su的时候,提示
java.io.IOException: write failed: EPIPE (Broken pipe)。

使用的方法是:
http://blog.csdn.net/miaojunking/article/details/17864099
我的疑问,
1.在android4.4这个方法还能行吗?
2.求赐教一个简单的实现代码。

纠结好几天了,望大神路过不吝赐教!

1

4个回答

不是吧老兄,你还在纠结这个问题啊。。
据我亲测和看雪上一些大神的帖子,这种方法在一些高版本的Android(应该是4.3以上)上已经失效了,Google将所有应用的父进程app_process程序fork出的进程(即我们的应用进程)限制了权能,使由应用exec出来的Linux程序没有使用setuid和setgid的权限,也就是说,即使你把su加上了s位,那么运行后只有euid是root,uid和gid设置不上,就没有root权限,比如我这里的Android4.4就是这样,现在的root软件都是利用系统漏洞实现开机时启动一个root守护进程,su程序只完成进程通信,只是一个空壳。
给你看两个图吧,第一个是在我4.1.2手机截的,可以看到mysu(我自己改写编译的su)加了s位,也是属于root用户的,启动mysu后调用id命令可以看到uid和gid都被设置为了root,和真正的授权管理的su一样。
第二个是在我一个4.4手机上截图的,可以看到,mysu也加了s位,也属于root用户,但是id命令打印出来还是原来的用户id,没有获得root权限啊!

2
zuishikonghuan
zuishikonghuan 回复fcj124648987: 是的,只能在4.3以前这样做,新版本的有其他方法,不过肯定很麻烦咯,首先写一个守护进程,在其收到命令时执行命令,再写一个su,这个su没有root权限,它负责接收用户的命令然后进程通信给守护进程,守护进程在大部分机型中可以用install_recovery.sh开机自运行(有不行的)
大约 4 年之前 回复
fcj124648987
fcj124648987 我以为是我上一个问题没有问清楚,所以又开了一个问题,那就是说只能在4.3以前的系统中用这种方式咯,新系统有没有什么解决的办法啊!?感谢!
大约 4 年之前 回复
0

或者楼主可以考虑把自己的程序直接放在rom里,安装在system下,也可以考虑一键root的方法,在root关掉的时候,自动root

0

private boolean RootCmd(String cmd) {
Process process = null;
DataOutputStream os = null;
try {
process = Runtime.getRuntime().exec("su");
os = new DataOutputStream(process.get......
答案就在这里:Android 获取root权限
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!