[发明专利]一种获取Root权限的方法及装置有效
申请号: | 201410361668.9 | 申请日: | 2014-07-26 |
公开(公告)号: | CN104134036B | 公开(公告)日: | 2017-05-10 |
发明(设计)人: | 黄伦华;刘桂峰;姚辉 | 申请(专利权)人: | 珠海市君天电子科技有限公司 |
主分类号: | G06F21/51 | 分类号: | G06F21/51 |
代理公司: | 广州三环专利代理有限公司44202 | 代理人: | 郝传鑫,熊永强 |
地址: | 519070 广东省珠海市唐家*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 获取 root 权限 方法 装置 | ||
技术领域
本发明涉及电子技术领域,尤其涉及一种获取Root权限的方法及装置。
背景技术
随着手机等使用Android系统的设备的研发技术的日益发展成熟和手机的日益,手机应用程序的种类也日益多样。为了使得手机用户获得更好的用户体验,很多手机应用程序需要向系统申请Root权限,在Root权限下实现更多的功能。当前,部分手机等Android设备系统会提供Root权限,手机需要从系统中获取Root权限,才能在Root权限下实现相应的功能。
现有技术中,应用程序获取Root权限时,主要是先通过Java的应用程序编程接口(Application Programming Interface,API)以切换用户(Switch User,SU)用户身份启动自己常驻的进程(也称用户进程)服务,并且每次都用服务进程来执行上述动作。具体的,应用程序每次申请Root权限时,服务进程将根据Android系统中的/system/bin/app_process指令通过Java API以SU用户的身份启动用户进程服务。现有技术中通过服务进程来执行获取Root权限的操作,虽然可以获取到Root权限,但是当系统版本高于Android4.0,系统的安全监测性更高之后,现有技术中所描述的方法则无法避开系统的安全监测,应用程序无法使用Java API通过app_process来启动用户进程,进而无法获取Root权限。即现有技术中仅使用Java API通过app_process来启动用户进程的方式适用性低、失败率高;此外,现有技术中应用程序每次申请Root权限都需要服务程序来执行获取Root权限的操作,增加了获取Root权限的资源开销。
发明内容
本发明实施例提供一种获取Root权限的方法及装置。可通过JNI模块清除系统的安全环境变量,将本地进程的用户标识设置为SU用户的ID,进而通过JNI模块启动子进程,在上述子进程中以SU用户的操作权限加载Jar包中的常驻服务进程,通过Jar包中的常驻服务进程获取Root权限,降低了获取Root权限的资源消耗,提高了获取Root权限的成功率,适用性高,增强了获取Root权限的用户体验。
本发明实施例第一方面提供了一种获取Root权限的方法,其可包括:
终端以切换用户SU用户的身份开启本地进程,在所述本地进程中启动Java本地调用JNI模块;
所述终端通过所述JNI模块将所述本地进程的用户标识设置为所述SU用户的ID,获取所述SU用户的操作权限,并将系统的安全环境变量清除;
所述终端通过所述JNI模块启动子进程,在所述子进程中以所述SU用户的操作权限加载Java归档文件Jar包;
所述终端启动所述Jar包的常驻服务进程,通过所述常驻服务进程获取Root权限。
其中,所述终端以切换用户SU用户的身份开启本地进程,在所述本地进程中启动Java本地调用JNI模块,包括:
所述终端通过Java的应用程序编程接口API以所述SU用户的身份开启一个本地进程;
所述终端在所述本地进程中向所述本地进程的标准输入流写入启动所述JNI模块可执行文件的命令,启动所述JNI模块。
其中,所述本地进程的用户标识包括:用户标识UID、有效用户标识EUID、全局唯一标识符GUID、有效全局唯一标识符EGUID。
其中,所述终端通过所述JNI模块将所述本地进程的用户标识设置为所述SU用户的ID,包括:
所述终端通过所述JNI模块将所述本地进程中的UID、EUID、GUID,以及EGUID设置所述SU用户的ID,以获取所述SU用户的操作权限;
其中,所述SU用户为超级用户。
其中,所述安全环境变量为所述系统进行安全监测时监测的变量,若所述系统进行安全监测时监测到所述安全环境变量,将阻止所述终端获取所述Root权限;
所述将系统的安全环境变量清除,包括:
所述终端通过所述JNI模块,使用所述JNI模块中的unsetenv指令将所述安全环境变量清空,以避开所述系统的安全监测。
其中,所述在所述子进程中以所述SU用户的操作权限加载Java归档文件Jar包,包括:
所述终端在所述子进程中,根据所述JNI模块中预置的启动参数以所述SU用户的操作权限加载所述Jar包。
其中,所述启动参数为所述Jar包的加载路径信息,所述Jar包的所述加载路径信息对应于所述SU用户的ID;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于珠海市君天电子科技有限公司,未经珠海市君天电子科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410361668.9/2.html,转载请声明来源钻瓜专利网。