[发明专利]安卓user版本在SELinux强制模式下获取root特权的方法及系统在审
申请号: | 201810321612.9 | 申请日: | 2018-04-11 |
公开(公告)号: | CN108595214A | 公开(公告)日: | 2018-09-28 |
发明(设计)人: | 胡艳伟 | 申请(专利权)人: | 北京海杭通讯科技有限公司 |
主分类号: | G06F9/4401 | 分类号: | G06F9/4401;G06F8/41 |
代理公司: | 深圳市科吉华烽知识产权事务所(普通合伙) 44248 | 代理人: | 赵雪佳 |
地址: | 100020 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 可执行文件 配置文件 强制模式 特权 计算机软件应用 源代码 编译规则文件 安卓系统 时间成本 现场环境 子进程 编译 调试 帮助 | ||
1.安卓user版本在SELinux强制模式下获取root特权的方法,其特征在于包括如下步骤:
S1:设置两个属性,其中,第一属性用来标识安卓系统是否需要启动特权root;第二属性用来通知init进程执行SELinux配置文件的重新加载;
S2:修改SELinux的编译规则文件,使安卓系统编译时生成特权SELinux配置文件,
S3:编写可执行文件,完成SELinux配置文件的切换;
S4:编写可执行文件对应的rc文件;
S5:修改adbd源代码,使adbd fork出来的子进程shell有root权限。
2.根据权利要求1所述的方法,其特征在于:还包括步骤S6:编写root开关应用程序,设置root特权启动方式。
3.根据权利要求1或2所述的方法,其特征在于:在步骤S2中,修改后的编译规则文件,使系统生成两套配置文件,一套是原来android标准的配置文件,另外一套是特权SELinux配置文件。
4.根据权利要求3所述的方法,其特征在于:所述SELinux的配置处理过程为:
A1:系统开启,kernel SELinux驱动模块加载,判断是否enforcing=1,如果是,kernel进入enforcing模式,如果否,kernel进入permissive模式;
A2:通过init进程配置SELinux,
具体实现方法为:
A201:判断安卓系统当前是否为user版本,如果是,安卓使用enforcing模式,如果否,init进程检测cmdline是否存在androidboot.selinux=permissive,如果存在,进入permissive模式,如果不存在,进入enforcing模式;
A202:判断设定目录下是否有配置文件,如果有,执行该配置文件,如果没有,执行系统默认配置。
5.根据权利要求4所述的方法,其特征在于:步骤S3中,所述可执行文件的处理方法为:根据系统root特权需求选择将SELinux配置文件拷贝入设定目录,或者删除设定目录下的SELinux配置文件,然后,通知Init进程重新加载SELinux配置文件。
6.根据权利要求1或2所述的方法,其特征在于:在步骤S5中,adbd处理方法为:
S51:adbd服务启动,判断是否请求root特权,如果是,adbd不降权,设置SELinux环境上下文,使adbd fork出来的子进程shell为特权shell,如果否,adbd降权,adbd fork出来的子进程shell为普通shell;
S52:执行adbd主循环,adbd服务结束。
7.一种实现权利要求1-6任一项所述方法的系统,其特征在于包括:
设置模块:用于设置两个属性,其中,第一属性用来标识安卓系统是否需要启动特权root;
第二属性用来通知init进程执行SELinux配置文件的重新加载;
第一修改模块:用于修改SELinux的编译规则文件,使安卓系统编译时生成特权SELinux配置文件;
第一编写模块:用于编写可执行文件,完成SELinux配置文件的切换;
第二编写模块:用于编写可执行文件对应的rc文件;
第二修改模块:用于修改adbd源代码,使adbd fork出来的子进程shell有root权限。
8.根据权利要求8所述的系统,其特征在于:还包括第三编写模块:编写root开关应用程序,设置root特权启动方式。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京海杭通讯科技有限公司,未经北京海杭通讯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810321612.9/1.html,转载请声明来源钻瓜专利网。