zxb1668956679 发表于 2015-5-8 15:18:06

想问下android setgid(0)失败的原因

最近在修改su.c文件,我的目的是让所有三方应用在user版本上都可以使用root权限,我现在不想要apk来管理,也就是对申请root权限的应用没有限制,只要申请都可以获得,于是我去掉了su.c中的下面这段限制
    if (myuid != AID_ROOT && myuid != AID_SHELL) {
      fprintf(stderr,"su: uid %d not allowed to su\n", myuid);
      return 1;
    }
我把上面这段话去掉之后,发现在setgid(gid) || setuid(uid) 这地方报错,gid和uid的值都为0,也就是root的用户组,但是不知道为什么会报:Operation not permitted 这样的错误呢?我研究了下setgid函数,被运行的文件有setgid的权限,那么运行该文件时就拥有该文件所有者同样的权限,而我的su文件的权限是这样的:
-rwsr-sr-x root   root      83776 2008-08-01 20:00 su
setgid和setuid的权限都有啊,而且我通过shell指令运行su文件,也能成功获取到root权限,为什么我用第三方的应用去获取,在setgid的时候就会失败呢???

Morgan 发表于 2017-3-30 10:42:27

楼主的问题解决了么?

风之空响 发表于 2017-4-5 11:54:45

Morgan 发表于 2017-3-30 10:42
楼主的问题解决了么?

早就不能这样玩了,从4.4.2就不行了,你如果想要获取root权限的话,可以搜一下我的帖子
页: [1]
查看完整版本: 想问下android setgid(0)失败的原因