分享好友 最新动态首页 最新动态分类 切换频道
Android应用向su申请root权限,以及Superuser进行授权管理的原理浅析
2024-12-26 20:02

最近研究了好几天su+Superuser的源码,感觉大概梳理通了整个大体的思路框架,mark一下。 

一.su和Suepruser进行root授权的处理流程

对于su命令行程序在对来自Android应用的Root权限请求处理流程大致如下图所示(因为快要找工作了,为了节约时间花了一副丑到哭的图片

图中Android应用是申请Root权限的申请者,su命令行程序时Root权限拥有者,因su设置了suid位,因此任何执行它的进程都会获得和它一样的权限,这个好像在之前的文章中提到过,其实细节上并非这么容易,和Superuser用户权限管理apk结合起来使用的话还会有一些仲裁的过程。

描述起来就是:

1.Android应用调用su程序,来申请root权限;

2.su启动LocalSocket服务,LocalSocket的功能和通常我们进程通信的Socket类似,其实是在本地共享一块内存来实现和本地其他进程之间进行通信的Socket服务;

3.su命令行程序通过am命令请求显示Superuser应用的RequestActivity窗口,这个窗口里面显示哪个uid的和user的应用申请权限;

4.Superuser连接到由su进程建立的LocalSocket服务上,至此LocalSocket连接成功,之后进程和Superuser对应的进程可以通过这个LocalSocket来进行信息传递了;

5.LocalSocket的数据通道成功连接库,su程序通过socket传递调用者(申请root权限的Android应用)的一些信息。

6.Superuser将用户的仲裁结果数据返回给su程序,如果用户允许授权则,则 ALLOW root授权,反之DENY。(其中还有用户在一定时间内未作出选择的情况,默认为DENY)

这是从Android应用申请root权限到su和Superuser配合实现用户选择后的仲裁的整个过程。

下面我一步一步分析一下这些过程中的细节

二:从su的main函数开始,分析细节

因为su是一个linux命令行程序,故我们首先在Superuser的源码的jni目录下找到su.c文件,定位到main函数处:

main函数中主要完成了三个主要的工作:

  1.初始化调用者数据和效验
| 1)获取调用者调用su命令的命令行参数-from_init函数
| 2)获取su命令的链接路径-user_init函数
| 3)获取调用者的名称 
  2.通过SQLlite数据库检查申请“Root授权”的Android应用程序是否还需要进一步效验
  3.建立LocalSocket服务,并进行相应的数据通信

由于代码比较长,而且联系紧密因此在源码中我对相应的部分进行了注释,建议下载后面我给出的注释后的源码来对照理解,如果你懒得下,没关系,相关的长长的代码我给你贴上老 ~~

最新文章
百度关键词和搜索词_百度关键词和搜索词什么意思
⊙﹏⊙ 指数显示:“牛市来了”等关键词搜索量创近年来新高百度指数、微信指数显示,“牛市”、“牛市来了”关键词的搜索量创近年来新高。截至9月25日,“牛市来了”关键词在百度指数中创4年新高,比多年的平均值高2.6倍。截至9月25日,“牛
最新版本apk漫画台
软件简介:漫画台是一款非常受欢迎的手机漫画阅读软件。它提供了丰富多样的漫画资源,涵盖了各类题材,满足了用户对于漫画阅读的需求。漫画台的界面简洁清晰,操作流畅,让用户可以轻松畅快地享受漫画阅读的乐趣。软件特色:1. 海量漫画资
航海家着力打造智能驾趣新生活 内外兼修
谈及一款车型,首先应该谈到的就是它的这款车的外观。外观延续家族化设计理念,前脸造型显得凶悍。车身侧面的线条来看,新车侧面轮廓的设计,在一定程度上拉长了该车的视觉效果。尾部通过线条的运用,让后屁股的立体感进一步加强,新车尾部
高清美女写真怎么拍?推荐几个超强AI工具和使用技巧!
限时免费,点击体验最近超火的AI生图神器,坐拥3000美女的大男主就是你! https://ai.sohu.com/pc/generate/textToImg?_trans_=030001_yljdaimn 在这个数码化迅猛发展的时代,AI技术正在改变我们生活的方方面面,特别是在图像生成领域。想
软考出分!有种劫后余生的感觉,考软考,主打一个查分也要看运气吗?
2.点击“查询成绩”后,将进入登录页面。接着使用报名时的账号进行登录。3.登录成功后将进入查询界面。在这里选择查询的年份「2024年下半年」。4.接收并输入正确的校验码。5.最后,点击“查询成绩”按钮,大家就可以查看自己的成绩了。PS:
Swin Transformer
自从Transformer[1]在NLP任务上取得突破性的进展之后,业内一直尝试着把Transformer用于在CV领域。之前的若干尝试,例如iGPT[2],ViT[3]都是将Transformer用在了图像分类领域,目前这些方法都有两个非常严峻的问题
隆鼻子大概要花多少钱
隆鼻手术的费用常常让人感到困惑,因为它并没有一个固定的价格。影响隆鼻费用的因素有很多,包括医院的级别、医生的经验、手术的复杂程度以及所在地区的消费水平等。一般来说,隆鼻手术的费用大致在几千到几万元不等。医院的级别和医生的经
金舟PDF编辑器
金舟PDF编辑器最新版是一款功能齐全的PDF编辑工具。金舟PDF编辑器最新版支持文件编辑、阅读、批注、添加注释、添加特效等功能,能够帮助用户轻松快速地完成各种PDF文件的处理工作。金舟PDF编辑器还支持自动识别字体,华军软件园金舟PDF编辑
靠谱的苹果id贷——第一时间100%下款+3分钟下款
苹果id贷,为您的苹果设备赋予“金钱魔法”! 年满18周岁且手机在手的您,快来申请。贷款额度灵活多样,根据您的手机型号而定,最高可达100000元。简单几步操作:注册登录,提交信息,上传证件,审核通过并换绑Apple ID,最快10分钟内放款,
网站外链的几种形式
网站是指在一个网页上添加链接指向其他网页的操作。它在网络营销和搜索引擎优化中起着重要的作用,可以提高网站的曝光度和权重。以下是几种常见的网站外链形式:文字链接文字链接是最常见和基础的外链形式。它通常是通过使用一段文字来添加
相关文章
推荐文章
发表评论
0评