安卓系统用户权限的检测方法、装置和系统的制作方法

文档序号:6518568阅读:190来源:国知局
安卓系统用户权限的检测方法、装置和系统的制作方法
【专利摘要】本发明公开了一种安卓系统用户权限的检测方法、装置和系统。其中,安卓系统用户权限的检测方法包括:监测安卓设备的实际运行状态;判断实际运行状态与目标运行状态是否一致,其中,目标运行状态为安卓设备运行在root权限账户下的状态;以及在判断出实际运行状态与目标运行状态一致的情况下,确定安卓设备的用户权限为root权限。通过本发明,解决了现有技术中无法检测安卓设备用户权限的问题,进而达到了准确检测用户权限类型、保证应用安全性的效果。
【专利说明】安卓系统用户权限的检测方法、装置和系统
【技术领域】
[0001]本发明涉及检测领域,具体而言,涉及一种安卓系统用户权限的检测方法、装置和系统。
【背景技术】
[0002]安卓(Android)设备的系统在正常情况下运行于沙盒环境内,并且处于一个比较低的用户权限,这有利于保障设备的运行稳定和数据安全。但是较低的权限使得很多应用的高级功能没有足够的权限来执行,比如说关闭其他应用、卸载应用、获取屏幕信息或者打开网络开关等。用户为了运行这些应用,往往会将设备的系统权限提升为root权限,在root权限下,能够控制系统得所有资源。
[0003]在root权限下运行的系统和非root权限下运行的系统存在API执行权限的区另IJ,一些API只能在root权限下运行。有一些对安全要求比较高的应用,在root环境下由于没有沙盒的保护会有安全方面的隐患。有一些应用,比如屏幕截图或者系统安全类应用,如果没有root的权限就无法调用所需要的API,从而无法完成需要的功能。了解系统的运行权限有助于这些应用判断自己的运行环境,从而更好的完成应用的功能。但是,目前的技术方案只能够通过系统的API版和声明的权限列表来决定哪些API可以调用,不能够安全的对一些受限的API进行调用,存在功能受限的问题。同时,目前的技术方法也无法了解系统是否处于root权限账户下运行,对于一些对安全性要求比较高的应用来说,存在比较高的数据安全风险。
[0004]针对相关技术中无法检测安卓设备用户权限的问题,目前尚未提出有效的解决方案。

【发明内容】

[0005]本发明的主要目的在于提供一种安卓系统用户权限的检测方法、装置和系统,以解决现有技术中无法检测安卓设备用户权限的问题。
[0006]为了实现上述目的,根据本发明的一个方面,提供了一种安卓设备用户权限的检测方法,包括:监测安卓设备的实际运行状态;判断实际运行状态与目标运行状态是否一致,其中,目标运行状态为安卓设备运行在root权限账户下的状态;以及在判断出实际运行状态与目标运行状态一致的情况下,确定安卓设备的用户权限为root权限。
[0007]进一步地,监测安卓设备的实际运行状态,判断实际运行状态与目标运行状态是否一致包括:获取安卓设备中的编译参数;以及判断编译参数中是否包括目标参数,其中,目标参数为表示安卓设备为测试版本的参数,其中,在判断出编译参数中包括目标参数的情况下,确定安卓设备的用户权限为root权限。
[0008]进一步地,编译参数为安卓设备的系统构建标签。
[0009]进一步地,监测安卓设备的实际运行状态,判断实际运行状态与目标运行状态是否一致还包括:在判断出编译参数中不包括目标参数的情况下,监测安卓设备的系统目录;以及判断系统目录下是否包括目标应用程序,其中,目标应用程序为提取用户权限的程序,其中,在判断出系统目录下包括目标应用程序的情况下,确定安卓设备的用户权限为root权限。
[0010]进一步地,监测安卓设备的实际运行状态,判断实际运行状态与目标运行状态是否一致还包括:在判断出系统目录下不包括目标应用程序的情况下,控制安卓设备执行目标命令,其中,目标命令为在root权限下运行的命令;判断安卓设备是否成功执行目标命令;以及判断安卓设备是否返回运行结果,其中,在判断出安卓设备成功执行目标命令,并且返回运行结果的情况下,确定安卓设备的用户权限为root权限。
[0011]为了实现上述目的,根据本发明的另一方面,提供了一种安卓设备用户权限的检测装置,该检测装置用于执行本发明上述内容所提供的任一种安卓设备用户权限的检测方法。
[0012]为了实现上述目的,根据本发明的另一方面,提供了一种安卓设备用户权限的检测装置,包括:监测单元,用于监测安卓设备的实际运行状态;判断单元,用于判断实际运行状态与目标运行状态是否一致,其中,目标运行状态为安卓设备运行在root权限账户下的状态;以及确定单元,用于在判断出实际运行状态与目标运行状态一致的情况下,确定安卓设备的用户权限为root权限。
[0013]进一步地,监测单元包括:获取模块,用于获取安卓设备中的编译参数,判断单元包括:第一判断模块,用于判断编译参数中是否包括目标参数,其中,目标参数为表示安卓设备为测试版本的参数,其中,在判断出编译参数中包括目标参数的情况下,确定单元确定安卓设备的用户权限为root权限。
[0014]进一步地,监测单元还包括:监测模块,用于监测安卓设备的系统目录,判断单元还包括:第二判断模块,用于判断系统目录下是否包括目标应用程序,其中,目标应用程序为提取用户权限的程序,其中,在判断出系统目录下包括目标应用程序的情况下,确定单元确定安卓设备的用户权限为root权限。
[0015]进一步地,监测单元还包括:控制模块,用于控制安卓设备执行目标命令,其中,目标命令为在root权限下运行的命令,判断单元还包括:第三判断模块,用于判断安卓设备是否成功执行目标命令;以及第四判断模块,用于判断安卓设备是否返回运行结果,其中,在判断出安卓设备成功执行目标命令,并且返回运行结果的情况下,确定单元确定安卓设备的用户权限为root权限。
[0016]为了实现上述目的,根据本发明的第三方面,提供了一种安卓系统用户权限的检测系统,包括:目标设备,其中,目标设备为具有安卓系统的设备;以及检测装置,其中,检测装置为本发明上述内容所提供的任一种安卓系统用户权限的检测装置。
[0017]本发明采用监测安卓设备的实际运行状态;判断实际运行状态与目标运行状态是否一致,其中,目标运行状态为安卓设备运行在root权限账户下的状态;以及在判断出实际运行状态与目标运行状态一致的情况下,确定安卓设备的用户权限为root权限。通过将安卓设备的实际运行状态与运行在root权限账户下安卓设备的运行状态进行比较,来确定设备是否具有root权限,实现了对安卓设备是否具有root权限进行准确检测,解决了现有技术中无法检测安卓设备用户权限的问题,进而达到了准确检测用户权限类型、保证应用安全性的效果。【专利附图】

【附图说明】
[0018]构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0019]图1是根据本发明实施例的安卓设备用户权限的检测方法的流程图;
[0020]图2是根据本发明优选实施例的安卓设备用户权限的检测方法的流程图;
[0021]图3是根据本发明实施例的安卓设备用户权限的检测装置的示意图;以及
[0022]图4是根据本发明优选实施例的安卓设备用户权限的检测装置的示意图。
【具体实施方式】
[0023]需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
[0024]首先,对本发明实施例所用到的技术术语解释如下:
[0025]Android系统:Google领导开发的以Linux为基础的开源操作系统,主要应用于移动设备。
[0026]Android 原生系统:即 AOSP (Android Open Source Project),由 Google 官方推出,可视为Android的官方版本。
[0027]Android系统API版本:Google周期性的对Android进行升级,对API和系统特性进行更改,每次更改被称为是一个API版本,可以在程序中直接获取。
[0028]系统沙盒:系统中每个应用运行在单独的沙盒中,应用之间无法互相影响,包括无法互相影响运行状态,无法获得其他应用的数据和信息。
[0029]Root权限:Linux系统中最闻权限,有控制系统所有资源的权限。在Android系统中意义与Linux系统中相同。
[0030]系统提权:提升账户的运行权限到root权限。
[0031]ADB: An droid Debug Bridge, Android SDK 提供的对 Android 系统的设备进行调试的工具。
[0032]Shell环境:Android系统中的命令行交互工具(Command Line Interface),可以执行系统的命令并返回运行的结果。
[0033]本发明实施例提供了一种安卓设备用户权限的检测方法,以下对本发明实施例所提供的安卓设备用户权限的检测方法进行具体介绍:
[0034]图1是根据本发明实施例的安卓设备用户权限的检测方法的流程图,如图1所示,该方法包括如下的步骤S102至步骤S106:
[0035]S102:监测安卓设备的实际运行状态。
[0036]S104:判断实际运行状态与目标运行状态是否一致,其中,目标运行状态为安卓设备运行在root权限账户下的状态。
[0037]S106:在判断出实际运行状态与目标运行状态一致的情况下,确定安卓设备的用户权限为root权限,即,确定安卓设备的系统运行在root权限的账户下。
[0038]本发明实施例所提供的安卓设备用户权限的检测方法,通过将安卓设备的实际运行状态与运行在root权限账户下安卓设备的运行状态进行比较,来确定设备是否具有root权限,实现了对安卓设备是否具有root权限进行准确检测,解决了现有技术中无法检测安卓设备用户权限的问题,进而达到了准确检测用户权限类型、保证应用安全性的效果。
[0039]图2是根据本发明优选实施例的安卓设备用户权限的检测方法的流程图,如图2所示,在该优选实施例中,步骤S102中监测安卓设备的实际运行状态包括:获取安卓设备中的编译参数,在本发明实施例中,编译参数为安卓设备的系统构建标签(Build Tag),对应地,步骤S104中判断实际运行状态与目标运行状态是否一致包括:判断编译参数中是否包括目标参数,其中,目标参数为表示安卓设备为测试版本的参数(比如Test Keys),其中,在判断出编译参数中包括目标参数的情况下,确定安卓设备的用户权限为root权限。
[0040]在早期的Android系统编译中,公开发布的Android原生版本和其他的正式发行版本的构建标签(Build Tag)总会是Release Keys (表示版本为发行版本),而以测试目的或者调试目的编译的系统,Build Tag是Test Keys (表示版本为测试版本),并且这些以测试为目的或调试为目的的系统,账户的运行权限都为root权限。因此,在本发明优选实施例的检测方法中,通过使用系统命令来获取Build.Tags,判断其中是否包含表示测试版本的参数,并在判断结果为是的情况下,确定安卓设备的用户权限为root权限,S卩,确定安卓设备的系统运行在root权限的账户下,达到了提高检测准确度的效果。
[0041]进一步优选地,在判断出编译参数中不包括目标参数的情况下,步骤S102中监测安卓设备的实际运行状态还包括:监测安卓设备的系统目录,具体地,可以采用对系统目录进行扫描查找的方式进行监测,相应地,步骤S104中判断实际运行状态与目标运行状态是否一致还包括:判断系统目录下是否包括目标应用程序,其中,目标应用程序为提取用户权限的程序,其中,在判断出系统目录下包括目标应用程序的情况下,确定安卓设备的用户权限为root权限。
[0042]在安卓设备的系统发布之后,用户如果想进行提权操作,一般会借助一些提权工具。最常见的提权工具就是SuperUser,绝大多数的系统提权工具都是SuperUser的各种变种。因此,在本发明优选实施例中,通过在系统的应用目录中查找SuperUser这个目标应用程序,如果用户安装了 SuperUser,则用户的系统运行账户权限一定为root,进一步保证对用户权限检测的准确度。
[0043]更进一步优选地,在判断出系统目录下不包括目标应用程序的情况下,步骤S102中监测安卓设备的实际运行状态还包括:控制安卓设备执行目标命令,其中,目标命令为在root权限下运行的命令,比如在系统目录下使用Shell执行“/system/xbin/which su”,相应地,步骤S104中判断实际运行状态与目标运行状态是否一致还包括:判断安卓设备是否成功执行目标命令;以及判断安卓设备是否返回运行结果,其中,在判断出安卓设备成功执行目标命令,并且返回运行结果的情况下,确定安卓设备的用户权限为root权限。
[0044]如果安卓设备在系统以root权限的账户运行,则账户的权限提高,可以执行一些非root权限不能执行的命令,拥有所有的系统资源的权限。因此,本发明实施例的检测方法可以构造一个只有在root权限下可以运行的命令并运行,通过命令的运行结果来检查系统的运行账户。在非root权限下,系统的/system/xbin/目录是不向系统运行账户开放的,应用无法访问这个目录。本发明实施例的检测方法在系统目录下使用Shell执行目标命令“/system/xbin/which su”,如果这个目标命令可以成功运行并返回结果,那么系统账户一定运行在root权限下,如果目标命令无法运行或者返回空,那么系统账户一定运行在非root权限下。通过这个方法,可以肯定的判断出系统账户的权限是否是root权限。
[0045]本发明优选实施例的安卓设备用户权限的检测方法,通过使用多种检测方法结合,对安卓设备系统的用户权限进行检测,大大提高了检测的准确度,在实际的检测中可以准确的检测出99%以上的设备的用户权限。本发明优选实施例中,多种检测方式共同使用,达到了避免由于单种检测方式失效所造成的误差,降低了误判、漏判的可能性。
[0046]本发明实施例还提供了一种安卓设备用户权限的检测装置,该检测装置主要用于执行本发明实施例上述内容所提供的任一种安卓设备用户权限的检测方法,以下对本发明实施例所提供的安卓设备用户权限的检测装置进行具体介绍:
[0047]图3是根据本发明实施例的安卓设备用户权限的检测装置的示意图,如图3所示,该检测装置主要包括监测单元10、判断单元20和确定单元30,其中:
[0048]监测单元10用于监测安卓设备的实际运行状态。
[0049]判断单元20用于判断实际运行状态与目标运行状态是否一致,其中,目标运行状态为安卓设备运行在root权限账户下的状态。
[0050]确定单元30用于在判断出实际运行状态与目标运行状态一致的情况下,确定安卓设备的用户权限为root权限。
[0051]本发明实施例所提供的安卓设备用户权限的检测装置,通过将安卓设备的实际运行状态与运行在root权限账户下安卓设备的运行状态进行比较,来确定设备是否具有root权限,实现了对安卓设备是否具有root权限进行准确检测,解决了现有技术中无法检测安卓设备用户权限的问题,进而达到了准确检测用户权限类型、保证应用安全性的效果。
[0052]图4是根据本发明优选实施例的安卓设备用户权限的检测装置的示意图,如图4所示,在该优选实施例中,监测单元10包括获取模块,判断单元20包括第一判断模块,其中,获取模块用于获取安卓设备中的编译参数,在本发明实施例中,编译参数为安卓设备的系统构建标签(Build Tag),对应地,第一判断模块用于判断编译参数中是否包括目标参数,其中,目标参数为表示安卓设备为测试版本的参数(比如TestKeys),其中,在判断出编译参数中包括目标参数的情况下,确定安卓设备的用户权限为root权限。
[0053]在早期的Android系统编译中,公开发布的Android原生版本和其他的正式发行版本的构建标签(Build Tag)总会是Release Keys (表示版本为发行版本),而以测试目的或者调试目的编译的系统,Build Tag是Test Keys (表示版本为测试版本),并且这些以测试为目的或调试为目的的系统,账户的运行权限都为root权限。因此,在本发明优选实施例的检测方法中,通过使用系统命令来获取Build.Tags,判断其中是否包含表示测试版本的参数,并在判断结果为是的情况下,确定安卓设备的用户权限为root权限,S卩,确定安卓设备的系统运行在root权限的账户下,达到了提高检测准确度的效果。
[0054]进一步优选地,监测单元10还包括监测模块,判断单元20还包括第二判断模块,在判断出编译参数中不包括目标参数的情况下,监测模块用于监测安卓设备的系统目录,具体地,可以采用对系统目录进行扫描查找的方式进行监测,相应地,第二判断模块用于判断系统目录下是否包括目标应用程序,其中,目标应用程序为提取用户权限的程序,其中,在判断出系统目录下包括目标应用程序的情况下,确定安卓设备的用户权限为root权限。
[0055]在安卓设备的系统发布之后,用户如果想进行提权操作,一般会借助一些提权工具。最常见的提权工具就是SuperUser,绝大多数的系统提权工具都是SuperUser的各种变种。因此,在本发明优选实施例中,通过在系统的应用目录中查找SuperUser这个目标应用程序,如果用户安装了 SuperUser,则用户的系统运行账户权限一定为root,进一步保证对用户权限检测的准确度。
[0056]更进一步优选地,监测单元10还包括控制模块,判断单元20还包括第三判断模块和第四判断模块,在判断出系统目录下不包括目标应用程序的情况下,控制模块用于控制安卓设备执行目标命令,其中,目标命令为在root权限下运行的命令,比如在系统目录下使用Shell执行“/system/xbin/which su”,相应地,第三判断模块用于判断安卓设备是否成功执行目标命令,第四判断模块用于判断安卓设备是否返回运行结果,其中,在判断出安卓设备成功执行目标命令,并且返回运行结果的情况下,确定单元确定安卓设备的用户权限为root权限。
[0057]如果安卓设备在系统以root权限的账户运行,则账户的权限提高,可以执行一些非root权限不能执行的命令,拥有所有的系统资源的权限。因此,本发明实施例的检测方法可以构造一个只有在root权限下可以运行的命令并运行,通过命令的运行结果来检查系统的运行账户。在非root权限下,系统的/system/xbin/目录是不向系统运行账户开放的,应用无法访问这个目录。本发明实施例的检测方法在系统目录下使用Shell执行目标命令“/system/xbin/which su”,如果这个目标命令可以成功运行并返回结果,那么系统账户一定运行在root权限下,如果目标命令无法运行或者返回空,那么系统账户一定运行在非root权限下。通过这个方法,可以肯定的判断出系统账户的权限是否是root权限。
[0058]本发明优选实施例的安卓设备用户权限的检测装置,通过使用多种检测方法结合,对安卓设备系统的用户权限进行检测,大大提高了检测的准确度,在实际的检测中可以准确的检测出99%以上的设备的用户权限。本发明优选实施例中,多种检测方式共同使用,达到了避免由于单种检测方式失效所造成的误差,降低了误判、漏判的可能性。
[0059]此外,本发明实施例还提供了一种安卓系统用户权限的检测系统,该检测系统可以是任一包括本发明实施例上述内容所提供的任一种安卓系统用户权限的检测装置的系统,也可以是任一采用本发明实施例上述内容所提供的任一种安卓系统用户权限的检测方法的系统,同时,该检测系统还包括具有安卓系统的目标设备。
[0060]从以上的描述中,可以看出,本发明实现了准确检测用户权限类型、保证应用安全性的效果。
[0061]需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0062]显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
[0063]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种安卓设备用户权限的检测方法,其特征在于,包括: 监测所述安卓设备的实际运行状态; 判断所述实际运行状态与目标运行状态是否一致,其中,所述目标运行状态为所述安卓设备运行在root权限账户下的状态;以及 在判断出所述实际运行状态与所述目标运行状态一致的情况下,确定所述安卓设备的用户权限为root权限。
2.根据权利要求1所述的检测方法,其特征在于,监测所述安卓设备的实际运行状态,判断所述实际运行状态与目标运行状态是否一致包括: 获取所述安卓设备中的编译参数;以及 判断所述编译参数中是否包括目标参数,其中,所述目标参数为表示所述安卓设备为测试版本的参数, 其中,在判断出所述编译参数中包括所述目标参数的情况下,确定所述安卓设备的用户权限为root权限。
3.根据权利要求2所述的检测方法,其特征在于,所述编译参数为所述安卓设备的系统构建标签。
4.根据权利要求1或2所述的检测方法,其特征在于,监测所述安卓设备的实际运行状态,判断所述实际运行状态与目标运行状态是否一致还包括: 在判断出所述编 译参数中不包括所述目标参数的情况下,监测所述安卓设备的系统目录;以及 判断所述系统目录下是否包括目标应用程序,其中,所述目标应用程序为提取用户权限的程序, 其中,在判断出所述系统目录下包括所述目标应用程序的情况下,确定所述安卓设备的用户权限为root权限。
5.根据权利要求4所述的检测方法,其特征在于,监测所述安卓设备的实际运行状态,判断所述实际运行状态与目标运行状态是否一致还包括: 在判断出所述系统目录下不包括所述目标应用程序的情况下,控制所述安卓设备执行目标命令,其中,所述目标命令为在root权限下运行的命令; 判断所述安卓设备是否成功执行所述目标命令;以及 判断所述安卓设备是否返回运行结果, 其中,在判断出所述安卓设备成功执行所述目标命令,并且返回所述运行结果的情况下,确定所述安卓设备的用户权限为root权限。
6.一种安卓设备用户权限的检测装置,其特征在于,包括: 监测单元,用于监测所述安卓设备的实际运行状态; 判断单元,用于判断所述实际运行状态与目标运行状态是否一致,其中,所述目标运行状态为所述安卓设备运行在root权限账户下的状态;以及 确定单元,用于在判断出所述实际运行状态与所述目标运行状态一致的情况下,确定所述安卓设备的用户权限为root权限。
7.根据权利要求6所述的检测装置,其特征在于: 所述监测单元包括:获取模块,用于获取所述安卓设备中的编译参数,所述判断单元包括:第一判断模块,用于判断所述编译参数中是否包括目标参数,其中,所述目标参数为表示所述安卓设备为测试版本的参数, 其中,在判断出所述编译参数中包括所述目标参数的情况下,所述确定单元确定所述安卓设备的用户权限为root权限。
8.根据权利要求7所述的检测装置,其特征在于: 所述监测单元还包括:监测模块,用于监测所述安卓设备的系统目录, 所述判断单元还包括:第二判断模块,用于判断所述系统目录下是否包括目标应用程序,其中,所述目标应用程序为提取用户权限的程序, 其中,在判断出所述系统目录下包括所述目标应用程序的情况下,所述确定单元确定所述安卓设备的用户权限为root权限。
9.根据权利要求8所述的检测装置,其特征在于: 所述监测单元还包括:控制模块,用于控制所述安卓设备执行目标命令,其中,所述目标命令为在root权限下运行的命令, 所述判断单元还包括:第三判断模块,用于判断所述安卓设备是否成功执行所述目标命令;以及 第四判断模块,用于判断所述安卓设备是否返回运行结果, 其中,在判断出所述安卓设备成功执行所述目标命令,并且返回所述运行结果的情况下,所述确定单元确定所述安卓设备的用户权限为root权限。
10.一种安卓系统用户权限的检测系统,其特征在于,包括: 目标设备,其中,所述目标设备为具有安卓系统的设备;以及 检测装置,其中,所述检测装置为权利要求6至9中任一项所述的安卓系统用户权限的检测装置。
【文档编号】G06F21/31GK103559431SQ201310557035
【公开日】2014年2月5日 申请日期:2013年11月11日 优先权日:2013年11月11日
【发明者】贺眈 申请人:北京国双科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1