Android root 授权问题,高手请进。

nicefuture 2012-03-05 10:00:26
看了授权管理(superuser)的源码,部分有些不解。

superuser apk很好理解,就是弹框给用户确认是否授权,反倒是su程序有一点不解, su的文件owner是root,具有suid属性,这样就导致任何普通app,比如app1,运行su xxx命令时,su进程将以euid=root运行,uid仍然继承至app,所以还是app1。su中启动superuser request activity,由用户确认是否授权,如果是的话,则su程序紧接着调用setuid(0)和setgid(0)将自身进程的uid也设置为root,这是为后续执行shell命令打基础,因为只有这样才能保证su中创建sh进程为app1执行命令时,sh进程的uid是root。

从这里看,app每次调用su xxx来运行shell命令都能以root的身份运行,这个很好理解。

但是,我发现像root explorer这样的app,他获取root时,只调用了su命令,接下去就再也没有调用过su xx, 但是却可以完成所有的操作了,这个真的奇怪,ps看信息,root explorer app的uid还是appxx,并没有变成root,从su的源码也可以看到,他只是提升了自己进程的uid,euid,并没有提升请求的app(父进程)的uid,euid。 那么为什么root exploree只运行了"su"这样一条命令就ok了哪。
...全文
190 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
迷你苑 2012-06-05
  • 打赏
  • 举报
回复
也正郁闷这个问题
nicefuture 2012-04-07
  • 打赏
  • 举报
回复
没人懂?

80,337

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧