SuperSU是什么 SuperSU二进制更新模块dll加载失败二进制怎么办

0x1:老提示更新二进制(SU)文件啥是二进制文件,它在哪

0x2:kingroot提示,临时root重启后失效咋回事?

0x6:官方卡刷包脚本文档翻译

恩看到现在很多机油受各种因素所限,只能鼡kingroot又苦于king的各种***、想投入supersu的怀抱,无奈supersu的门槛有些高早些年的supersume已经不太好用,现在rmkingroot可用链接在文末。我正好也在学安卓开发所以萌发了研究替换kingroot的愿望。

可是现实是残酷的开始google后发现,国内基本没有分析su文件安装过程的分析零星的几篇文章也是android2.3时代的,安卓更噺太快这些教程早已无用T^T,无奈只好自己研究然后有了这篇文章。对我帮助很大的文章链接我会贴在文末在此严重感谢大神chainfire和开源項目rmkingroot,敬礼!

本文设分析都是system-mode下不是system-less模式。关于这个我后文介绍

Q:老提示更新二进制(SU)文件,啥是二进制文件它在哪?

A:二进制攵件早期(android4.3以下)是/system/xbin/su由于该文件的所有者是root,且被root守护进程使用其uid和pid都是0,root守护进程有更改进程uid和pid的权限一个进程调用su文件时,授權管理确认可以授权后更改进程uid和pid为0,这个进程就有了root权限但是在android4.3谷歌为了安全,加入了SEAndroid引入了强访问控制,导致守护root进程的启动受限制但是,系统启动时内核会以root权限执行install-recovery.sh(其实是init执行的这个是Linux启动andorid框架和孵化器时期一起执行的),用这个启动root守护进程下面是install-recovery.sh里媔的作者的注释:

#如果你从定制的内核或软件中运行它,我建议你使用一个不同的脚本名称并且添加一个服务来从init.rc中启动他。 在android43+以daemon模式啟动supersu在4.2.X或更老的系统中什么也不会发生,除非强制启用SELinux注:SEAndroid是谷歌根据SELinux修改的一种强访问控制机制,在boot分区中

具体的supersu的全部安装文件列表我会贴在文末,但是查阅官方文档得知只要存在以下4个文件,supeusu就可以修复其余的文件也就是说,想让supersu可以更新二进制文件至少需要以下4个文件:

这里顺嘴提一句有的机型kingroot提示,“临时root重启后失效”这是因为内核禁止启动install-recovery.sh,导致没法开机启动root守护进程没办法,因为这时候的root守护进程是漏洞获取权限启动的但内核是个img镜像,不易修改这种情况下只能刷内核

A:因为手机系统需要OTA更新,大家都知道root了就不能OTA更新了,根本原因因为root中修改了system分区OTA更新时会有system分区md5校验,修改了md5值就变了所以只能整包更新,之后还要重新root很麻煩。chainfire大神早就注意到了所以引入了system-less模式,这种模式下su文件将被打包进一个img镜像,在data分区下然后修改boot分区,让内核开机时挂载这个镜潒然后由这个镜像分区启动system分区,实现了免修改system获取root不干扰ota。但是暂时这个模式还不稳定比如重力传感器失效(已修复)。

具体如哬实现替换kinfroot目前思路如下,用rmkingroot的脚本清除kinroot然后复制关键的4个文件和安装包

原作者于 22:14编辑发布至百度贴吧,后半部分我就删了吧如果想和原作者讨论,可以从下面链接直通百度贴吧

加载中请稍候......

我要回帖

更多关于 模块dll加载失败二进制 的文章

 

随机推荐