一种用于判断安卓系统是否具有root权限的方法和系统与流程

文档序号:11156156阅读:386来源:国知局
一种用于判断安卓系统是否具有root权限的方法和系统与制造工艺

本发明涉及应用交互领域,具体涉及一种用于判断安卓系统是否具有root权限的方法和一种用于判断安卓系统是否具有root权限的系统。



背景技术:

对于运行于安卓系统上的软件,在运行的过程中,经常会对系统的root权限环境进行判断,若系统具有root权限,则运行于系统上的软件获取root权限后能够开启一些新的特性,从而提升用户对软件或系统的使用体验。root权限为系统权限的一种,获得root权限,相当于获得系统的最高权限。

对于系统是否具有root权限,常规的判断方法是通过执行su命令的成功与否,来判断系统是否具有root权限,在执行su命令时,会弹窗告知用户系统是否具有root权限和某软件正在进行系统root权限的查询,su命令用于变更系统使用者身份,su命令的执行以及弹窗程序的运行,极大地增加了系统内存消耗,且判断结果往往不够准确。



技术实现要素:

针对现有技术中存在的缺陷,本发明的目的在于提供一种用于判断安卓系统是否具有root权限的方法和一种用于判断安卓系统是否具有root权限的系统,能够有效提高系统root权限的判定效率。

为达到以上目的,本发明采取的技术方案是:包括:

步骤S1:获取系统PATH环境变量的路径;

步骤S2:遍历PATH环境变量路径下的文件,判断PATH环境变量路径下的文件中是否含有su文件,若有,则表明系统具有root权限,若没有,则表明系统没有root权限;

步骤S3:将步骤S2的判断结果存于数据存储接口的文件中,当再次需要判断系统是否具有root权限时,直接读取数据存储接口文件中的root权限判断结果。

在上述技术方案的基础上,所述su文件为用于变更系统使用者身份的可执行文件。

在上述技术方案的基础上,步骤S1具体为:

S1.1:获取PATH环境变量的路径信息,所述路径信息为一包括多个路径的字符串;

S1.2:拆分路径信息,得到PATH环境变量的所有路径。

在上述技术方案的基础上,步骤S2中,使用grep命令判断PATH环境变量路径下的文件中是否含有su文件。

在上述技术方案的基础上,若在PATH环境变量路径下的文件中找到su文件,则grep命令返回值为su文件的路径;若在PATH环境变量路径下的文件中没有找到su文件,则grep命令返回值为空。

在上述技术方案的基础上,所述数据存储接口为SharedPreferences存储接口。

在上述技术方案的基础上,判断结果存于数据存储接口的步骤为:

S3.1:获取安卓系统的SharedPreferences存储接口;

S3.2:调用SharedPreferences存储接口的编辑接口;

S3.3:将判断结果储存至编辑接口中,编辑接口将判断结果提交至SharedPreferences存储接口的文件中。

本发明还提供一种用于判断安卓系统是否具有root权限的系统,包括:

获取模块,其用于获取PATH环境变量路径下的文件;

判断模块,其用于判断PATH环境变量路径下的文件中是否含有su文件;

存储模块,其用于将判断模块的判断结果存于数据存储接口的文件中。

在上述技术方案的基础上,所述存储模块还用于当再次需要判断系统是否具有root权限时,直接读取数据存储接口文件中的判断结果。

在上述技术方案的基础上,所述su文件为用于变更系统使用者身份的可执行文件。

与现有技术相比,本发明一种用于判断安卓系统是否具有root权限的方法的优点在于:

(1)通过查找su文件的方式来判断系统是否具有root权限,相较于执行su文件判断系统是否具有root权限的方式,避免弹窗,同时减少系统功耗。

(2)针对su文件为可执行文件的特性,仅在PATH环境变量路径下的文件中进行su文件的查找,缩小查找范围,提高系统root权限的判断速度和效率。

(3)将系统是否具有root权限的判断结果存于数据存储接口文件中,当有软件再次进行系统是否具有root权限的查询和判断时,直接读取数据存储接口文件中的判断结果,告知软件系统是否具有root权限,提高了查询效率。

本发明一种用于判断安卓系统是否具有root权限的系统的优点在于:仅首次进行系统是否具有root权限的判断时,通过查找su文件的方式进行系统root权限的判断,并将判断结果存储于数据存储接口的文件中,当再次需要进行系统是否具有root权限的判断时,通过读取数据存储接口文件中的判断结果便可知道系统是否具有root权限,极大地提高了判定速度,同时减少了系统因root权限判定而产生的功耗。

附图说明

图1为本发明一种用于判断安卓系统是否具有root权限的方法的流程图。

具体实施方式

以下结合附图对本发明作进一步详细说明。

参见图1所示,本发明提供一种用于判断安卓系统是否具有root权限的方法,通过查找系统中是否含有su文件,从而快速而高效的对安卓系统的系统是否具有root权限进行判断。su文件为一种可执行文件,通过执行su文件,能够变更系统使用者身份,一般情况下,若系统具有root权限,通过执行su文件,即su命令,获得系统的root权限,用户或软件则会拥有系统最高的使用权限。

本发明用于判断安卓系统是否具有root权限的方法包括:

步骤S1:获取安卓系统PATH环境变量的路径。安卓系统是基于linux系统的,故安卓系统底层相关操作和linux系统完全一样,linux系统是一种支持多用户、多任务、多线程和多CPU的操作系统,在linux系统中,环境变量主要提供linux系统运行的一些公用变量,环境变量中有一PATH环境变量,PATH环境变量表示当前查找可执行文件的路径信息,即只有在PATH环境变量路径下的文件中可执行文件才能够被linux系统识别和运行,同理,安卓系统的PATH环境变量路径下的文件中可执行文件才能够被系统识别和运行,基于此,本发明将su文件的查找范围限于PATH环境变量的路径下,从而缩短su文件的查找范围,减少查找时间。

对于PATH环境变量的路径的获取,包括:

S1.1:获取PATH环境变量的路径信息,路径信息为一包括多个路径的字符串。PATH环境变量的路径信息通过调用echo$PATH命令进行获取,获取到的为一包括多个路径的字符串,如下:

/bin:/sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin

S1.2:拆分路径信息,得到PATH环境变量的所有路径。对于包括多个路径的字符串,每个路径间均通过冒号进行分隔,此时调用split(“:”)函数对字符串进行拆分,split(“:”)函数返回拆分字符串后形成的一个数组,数组中每一个元素即对应一个路径。

步骤S2:遍历PATH环境变量路径下的文件,判断PATH环境变量路径下的文件中是否含有su文件,若有,则表明系统具有root权限,若没有,则表明系统没有root权限。对于PATH环境变量所有路径下的所有文件均会进行遍历,以查找判断是否含有su文件。linux系统中常使用grep命令进行查找操作,grep命令是一种强大的文本搜索工具,同理,在本发明的安卓系统中,也使用grep命令来查找后判断PATH环境变量路径下的文件中是否含有su文件,grep命令的使用代码为:

Grep filename

若在PATH环境变量路径下的文件找到su文件,则grep命令返回值为su文件的路径,即表明系统具有root权限,su文件的路径为找到su文件的PATH环境变量路径下文件的路径;若在PATH环境变量路径下的文件中没有找到su文件,则grep命令返回值为空,即表明系统没有root权限。

步骤S3:将步骤S2的判断结果存于数据存储接口的文件中,当再次需要判断系统是否具有root权限时,直接读取数据存储接口文件中关于系统是否具有root权限的判断结果。本实施例中,数据存储接口为SharedPreferences存储接口,SharedPreferences存储接口是安卓系统中的一个轻量级储存类。后续,当再次需要判断系统是否具有root权限时,会直接读取SharedPreferences数据存储接口的文件,SharedPreferences数据存储接口会将判断结果直接返回,得到系统是否具有root权限的判断结果,避免再次查找su文件重新进行是否具有root权限的判断,减少等待时间以及系统功耗。

判断结果存于数据存储接口的步骤包括:

S3.1:获取安卓系统的SharedPreferences存储接口,通过PreferenceManager.getDefaultSharedPreferences(Context)函数便能够获取到系统的SharedPreferences存储接口;

S3.2:调用SharedPreferences存储接口的编辑接口,编辑接口通过SharedPreferences存储接口的edit()函数调用;

S3.3:将判断结果储存至编辑接口中,编辑接口调用将判断结果提交至SharedPreferences存储接口的文件中,具体的,调用编辑接口的putString函数将判断结果储存至编辑接口中,putString函数的功能为存储,对于判断结果的提交,通过安卓系统提供的commit函数将判断结果提交至SharedPreferences存储接口的文件中。若判断结果为系统具有root权限,则SharedPreferences存储接口文件中存储的数据为true,若判断结果为系统不具有root权限,则SharedPreferences存储接口文件中存储的数据为false。

本发明还提供一种基于上述方法的用于判断安卓系统是否具有root权限的系统,包括获取模块、判断模块和存储模块。

获取模块用于获取PATH环境变量路径下的文件;判断模块用于判断PATH环境变量路径下的文件中是否含有su文件,若含有su文件,则表明系统具有root权限,若不含有su文件,则表明系统没有root权限,su文件为用于变更系统使用者身份的可执行文件;存储模块用于将判断模块的判断结果存于数据存储接口的文件中,存储模块还用于当再次需要判断系统是否具有root权限时,直接读取数据存储接口文件中的判断结果。

仅首次进行系统是否具有root权限的判断时,通过查找su文件的方式进行系统root权限的判断,并将判断结果存储于数据存储接口的文件中,当再次需要进行系统是否具有root权限的判断时,通过读取数据存储接口文件中的判断结果便可知道系统是否具有root权限,极大地提高了判定速度,同时减少了系统因root权限判定而产生的功耗。

本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1