一种安卓应用的权限控制方法和装置与流程

文档序号:11156158阅读:283来源:国知局
一种安卓应用的权限控制方法和装置与制造工艺

本发明涉及互联网技术领域,具体涉及一种安卓应用的权限控制方法和装置。



背景技术:

现有技术中,安卓系统中无法实现对多个相同的安卓应用的并行运行,其原因是:每个安卓应用在安装在安卓系统中时,该安卓应用的安装包中的配置文件中的配置信息将被注册到安卓系统中,安卓系统通过这些注册信息来获知安卓应用的存在以及运行相关信息,在一个安卓应用已安装到安卓系统的基础上,如果还想将该安卓应用的分身应用再次安装到安卓系统中,安卓系统因已接收过相同的注册信息而不能接纳此分身应用的注册,因此分身应用对于安卓系统来说是未知的,进而分身系统无法正常与安卓系统进行交互,导致分身系统无法正常运行。

然而,对多个相同的安卓应用的并行运行的需求在用户群体中是存在的,常见的,用户希望在自己的智能终端上通过不同的账号登录两个QQ应用,让这两个QQ应用并行运行,用户可以根据自己的需求分别使用不同的QQ应用来与不同社交圈的好友进行聊天会话,符合很多应用场景。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的安卓应用的权限控制方法和装置。

依据本发明的一个方面,提供了一种安卓应用的权限控制方法,其中,包括:

构造虚拟机环境,将安卓系统中的一个或多个指定安卓应用的分身应用放入虚拟机中运行。

监听虚拟机中的指定安卓应用的分身应用调用指定系统设备的事件;当监听到所述事件时进行拦截,验证该指定安卓应用的分身应用是否具有相应权限;

是则,放行所述事件;否则,结束所述事件。

可选地,所述监听虚拟机中的指定安卓应用的分身应用调用指定系统设备的事件包括:

将钩子函数挂载在指定系统设备的调用接口上,利用所述钩子函数拦截发送至所述调用接口的调用请求;

判断所述调用请求的发送方是否为虚拟机中的指定安卓应用的分身应用;

是则确定监听到虚拟机中的指定安卓应用的分身应用调用指定系统设备的事件;否则放行所述调用请求。

可选地,在所述监听虚拟机中的指定安卓应用的分身应用调用指定系统设备的事件之前,该方法进一步包括:获取各指定安卓应用的分身应用所声明的权限信息并保存至配置管理表中;

所述验证该指定安卓应用的分身应用是否具有相应权限包括:根据所述配置管理表中记录的该指定安卓应用的分身应用所声明的权限信息,判断该指定安卓应用的分身应用是否声明关于所要调用的指定系统设备的权限;是则,确定该指定安卓应用的分身应用具有相应权限;否则,确定该指定安卓应用的分身应用不具有相应权限。

可选地,所述根据所述配置管理表中记录的该指定安卓应用的分身应用所声明的权限信息,判断该指定安卓应用的分身应用是否声明关于所要调用的指定系统设备的权限包括:

对于所述钩子函数拦截到的调用请求,从该调用请求中提取出:发送方的信息,调用的指定安卓设备的信息;

根据所述发送方的信息确定相应的指定安卓应用的分身应用,从配置管理表查找该指定安卓应用的分身应用所声明的权限信息;

根据所述调用的指定安卓设备的信息,判断该指定安卓应用的分身应用所声明的权限信息中是否包含关于所述调用的指定安卓设备的权限信息。

可选地,该方法进一步包括:从该调用请求中提取出发送方所在的进程的信息;

所述放行所述事件包括:将所述调用请求发送至指定系统设备的调用接口,接收安卓系统返回的执行消息,根据所述发送方所在的进程的信息,将指定系统设备分配至相应的进程中启动并运行。

可选地,所述获取各指定安卓应用的分身应用所声明的权限信息并保存至配置管理表中包括:

获取各指定安卓应用的安装包复件并保存至指定目录,作为各指定安卓应用的分身应用的安装包;

解析各指定安卓应用的分身应用的安装包中的配置文件,获取各指定安卓应用的分身应用在相应配置文件中所声明的权限信息并保存至所述配置管理表中。

可选地,当结束所述事件时,该方法进一步包括:

向所述指定安卓应用的分身应用抛出安全异常。

可选地,所述指定系统设备包括如下一种或多种:系统传感器,系统相机模块,系统GPS模块,系统WiFi模块。

可选地,所述系统传感器包括如下一种或多种:

加速度传感器、磁力传感器、方向传感器、陀螺仪传感器、光线感应传感器、压力传感器、温度传感器、接近传感器、重力传感器、线性加速度传感器、旋转矢量传感器。

可选地,所述监听虚拟机中的指定安卓应用的分身应用调用指定系统设备的事件;当监听到所述事件时进行拦截,验证该指定安卓应用的分身应用是否具有相应权限的步骤是通过虚拟机中的常驻服务执行的。

依据本发明的另一个方面,提供了一种安卓应用的权限控制装置,其中,包括:

环境构造单元,适于构造虚拟机环境,将安卓系统中的一个或多个指定安卓应用的分身应用放入虚拟机中运行;

常驻服务单元,适于监听虚拟机中的指定安卓应用的分身应用调用指定系统设备的事件;当监听到所述事件时进行拦截,验证该指定安卓应用的分身应用是否具有相应权限;是则,放行所述事件;否则,结束所述事件。

可选地,所述常驻服务单元,适于将钩子函数挂载在指定系统设备的调用接口上,利用所述钩子函数拦截发送至所述调用接口的调用请求;判断所述调用请求的发送方是否为虚拟机中的指定安卓应用的分身应用;是则确定监听到虚拟机中的指定安卓应用的分身应用调用指定系统设备的事件;否则放行所述调用请求。

可选地,所述常驻服务单元,还适于在所述监听虚拟机中的指定安卓应用的分身应用调用指定系统设备的事件之前,获取各指定安卓应用的分身应用所声明的权限信息并保存至配置管理表中;

所述常驻服务单元,适于根据所述配置管理表中记录的该指定安卓应用的分身应用所声明的权限信息,判断该指定安卓应用的分身应用是否声明关于所要调用的指定系统设备的权限;是则,确定该指定安卓应用的分身应用具有相应权限;否则,确定该指定安卓应用的分身应用不具有相应权限。

可选地,所述常驻服务单元,适于对于所述钩子函数拦截到的调用请求,从该调用请求中提取出:发送方的信息,调用的指定安卓设备的信息;根据所述发送方的信息确定相应的指定安卓应用的分身应用,从配置管理表查找该指定安卓应用的分身应用所声明的权限信息;根据所述调用的指定安卓设备的信息,判断该指定安卓应用的分身应用所声明的权限信息中是否包含关于所述调用的指定安卓设备的权限信息。

可选地,所述常驻服务单元,还适于从该调用请求中提取出发送方所在的进程的信息;以及,适于将所述调用请求发送至指定系统设备的调用接口,接收安卓系统返回的执行消息,根据所述发送方所在的进程的信息,将指定系统设备分配至相应的进程中启动并运行。

可选地,所述常驻服务单元,适于获取各指定安卓应用的安装包复件并保存至指定目录,作为各指定安卓应用的分身应用的安装包;解析各指定安卓应用的分身应用的安装包中的配置文件,获取各指定安卓应用的分身应用在相应配置文件中所声明的权限信息并保存至所述配置管理表中。

可选地,所述常驻服务单元,还适于当结束所述事件时,向所述指定安卓应用的分身应用抛出安全异常。

可选地,所述指定系统设备包括如下一种或多种:系统传感器,系统相机模块,系统GPS模块,系统WiFi模块。

可选地,所述系统传感器包括如下一种或多种:

加速度传感器、磁力传感器、方向传感器、陀螺仪传感器、光线感应传感器、压力传感器、温度传感器、接近传感器、重力传感器、线性加速度传感器、旋转矢量传感器。

可选地,所述常驻服务单元,适于通过虚拟机中的常驻服务执行所述监听虚拟机中的指定安卓应用的分身应用调用指定系统设备的事件;当监听到所述事件时进行拦截,验证该指定安卓应用的分身应用是否具有相应权限的操作。

有上述可知,根据本发明的技术方案,为了实现安卓系统中多个相同安卓应用的并行运行,在安卓系统中构造了虚拟机环境,将指定安卓应用的分身应用放入到该虚拟机中运行,且为了防止分身应用利用本方案中的虚拟机对安卓系统进行恶意攻击,本方案在虚拟机中的指定安卓应用的分身应用在调用指定系统设备时对其进行权限验证,让权限没有问题的分身应用可以成功地进行调用,而权限有问题的分身应用不可以成功进行调用,在保证安卓系统安全的基础上可以完美地实现安卓系统中指定安卓应用与其相应的分身应用的并行运行。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了根据本发明一个实施例的一种安卓应用的权限控制方法的流程图;

图2示出了根据本发明一个实施例的一种安卓应用的权限控制装置的示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1示出了根据本发明一个实施例的一种安卓应用的权限控制方法的流程图。如图1所示,该方法包括:

步骤S110,构造虚拟机环境,将安卓系统中的一个或多个指定安卓应用的分身应用放入虚拟机中运行。

其中,指定安卓应用指的是能够在安卓系统中正常运行的,类似于QQ聊天、UC浏览器等的应用软件。而指定安卓应用的分身应用作为指定安卓应用的复制体,可以看做是指定安卓应用的分身。现有技术中,每个指定安卓应用的分身应用可以与相应的指定安卓应用是不可以并行运行的,其原因是安卓系统无法认可两个相同的应用所声明的相同的注册信息,因此,在指定安卓应用已安装的情况下,指定安卓应用的分身应用是无法成功注册到安卓系统中的,对于安卓系统来说,指定安卓应用的分身应用是未知的,安卓系统无法与其进行正常交互。

步骤S120,监听虚拟机中的指定安卓应用的分身应用调用指定系统设备的事件;当监听到所述事件时进行拦截,验证该指定安卓应用的分身应用是否具有相应权限。

对于一个分身应用来说,当该分身应用要用到安卓系统中的指定系统设备时,这个指定系统设备对应于安卓系统中的多种权限,该分身应用需要在Manifest文件中声明要使用相应的权限,如果一个分身应用在其配置文件中做出过声明,说明该分身应用确实需要使用这个指定系统设备,如果其配置文件中没有做出声明,说明该分身应用在运行中不需要使用这个指定系统设备,则此时对于指定系统设备的调用可能是非法的。

步骤S130,是则,放行所述事件;否则,结束所述事件。

可见,图1所示的方法为了实现安卓系统中多个相同安卓应用的并行运行,在安卓系统中构造了虚拟机环境,将指定安卓应用的分身应用放入到该虚拟机中运行,且为了防止分身应用利用本方案中的虚拟机对安卓系统进行恶意攻击,本方案在虚拟机中的指定安卓应用的分身应用在调用指定系统设备时对其进行权限验证,让权限没有问题的分身应用可以成功地进行调用,而权限有问题的分身应用不可以成功进行调用,在保证安卓系统安全的基础上可以完美地实现安卓系统中指定安卓应用与其相应的分身应用的并行运行。

在本发明的一个实施例中,上述监听虚拟机中的指定安卓应用的分身应用调用指定系统设备的事件包括:将钩子函数挂载在指定系统设备的调用接口上,利用所述钩子函数拦截发送至所述调用接口的调用请求;判断所述调用请求的发送方是否为虚拟机中的指定安卓应用的分身应用;是则确定监听到虚拟机中的指定安卓应用的分身应用调用指定系统设备的事件;否则放行所述调用请求。

其中,在所述监听虚拟机中的指定安卓应用的分身应用调用指定系统设备的事件之前,该方法进一步包括:获取各指定安卓应用的分身应用所声明的权限信息并保存至配置管理表中;所述验证该指定安卓应用的分身应用是否具有相应权限包括:根据所述配置管理表中记录的该指定安卓应用的分身应用所声明的权限信息,判断该指定安卓应用的分身应用是否声明关于所要调用的指定系统设备的权限;是则,确定该指定安卓应用的分身应用具有相应权限;否则,确定该指定安卓应用的分身应用不具有相应权限。

具体地,所述根据所述配置管理表中记录的该指定安卓应用的分身应用所声明的权限信息,判断该指定安卓应用的分身应用是否声明关于所要调用的指定系统设备的权限包括:对于所述钩子函数拦截到的调用请求,从该调用请求中提取出:发送方的信息,调用的指定安卓设备的信息;根据所述发送方的信息确定相应的指定安卓应用的分身应用,从配置管理表查找该指定安卓应用的分身应用所声明的权限信息;根据所述调用的指定安卓设备的信息,判断该指定安卓应用的分身应用所声明的权限信息中是否包含关于所述调用的指定安卓设备的权限信息。

进一步地,在本发明的一个实施例中,图1所示的方法进一步包括:从该调用请求中提取出发送方所在的进程的信息;所述放行所述事件包括:将所述调用请求发送至指定系统设备的调用接口,接收安卓系统返回的执行消息,根据所述发送方所在的进程的信息,将指定系统设备分配至相应的进程中启动并运行。

其中,所述获取各指定安卓应用的分身应用所声明的权限信息并保存至配置管理表中包括:获取各指定安卓应用的安装包复件并保存至指定目录,作为各指定安卓应用的分身应用的安装包;解析各指定安卓应用的分身应用的安装包中的配置文件,获取各指定安卓应用的分身应用在相应配置文件中所声明的权限信息并保存至所述配置管理表中。

相应地,当结束所述事件时,该方法进一步包括:向所述指定安卓应用的分身应用抛出安全异常。

在具体的例子中,所述指定系统设备包括如下一种或多种:系统传感器,系统相机模块,系统GPS模块,系统WiFi模块。所述系统传感器包括如下一种或多种:加速度传感器、磁力传感器、方向传感器、陀螺仪传感器、光线感应传感器、压力传感器、温度传感器、接近传感器、重力传感器、线性加速度传感器、旋转矢量传感器。

在本发明的一个实施例中,所述监听虚拟机中的指定安卓应用的分身应用调用指定系统设备的事件;当监听到所述事件时进行拦截,验证该指定安卓应用的分身应用是否具有相应权限的步骤是通过虚拟机中的常驻服务执行的。

例如,Android系统中声明有好多权限,如传感器、GPS、WiFi等各种类型的系统设备对应的权限,当一个安卓应用要用到每种系统设备时,该安卓应用需要在Manifest中声明要使用这个相应的权限,当安卓应用在代码中去调一个系统设备的时候,Android系统中有个包管理服务PM来检测安卓应用中与偶没有声明相应的权限,有的话系统放行运行安卓应用访问相应系统设备,没有的话直接抛出安全异常。但是对于分身应用来说,由于Android系统不认识这些分身应用,Android系统中的PM就不会对分身应用进行验证,但为了保证Android系统的安全,不验证肯定是不行的,为此,本方案通过常驻服务模拟了Android系统中的PM服务,当一个分身应用要调用系统设备时,将这个分身应用的访问对应的该分身应用的包名传到常驻服务中,常驻服务会检测这个包名对应的Manifest中有没有声明这个相应的权限,有的话就放行,没有的话就抛出安全异常。对于常驻服务来说,这些权限是都具备的,我们在确定分身应用具有相应权限之后,也可以代替分身应用调用系统设备最终使得系统设备在分身应用所希望的进程中运行,实现分省应用对系统设备的调用。

图2示出了根据本发明一个实施例的一种安卓应用的权限控制装置的示意图。如图2所示,该安卓应用的权限控制装置200包括:

环境构造单元210,适于构造虚拟机环境,将安卓系统中的一个或多个指定安卓应用的分身应用放入虚拟机中运行。

常驻服务单元220,适于监听虚拟机中的指定安卓应用的分身应用调用指定系统设备的事件;当监听到所述事件时进行拦截,验证该指定安卓应用的分身应用是否具有相应权限;是则,放行所述事件;否则,结束所述事件。

可见,图2所示的装置为了实现安卓系统中多个相同安卓应用的并行运行,在安卓系统中构造了虚拟机环境,将指定安卓应用的分身应用放入到该虚拟机中运行,且为了防止分身应用利用本方案中的虚拟机对安卓系统进行恶意攻击,本方案在虚拟机中的指定安卓应用的分身应用在调用指定系统设备时对其进行权限验证,让权限没有问题的分身应用可以成功地进行调用,而权限有问题的分身应用不可以成功进行调用,在保证安卓系统安全的基础上可以完美地实现安卓系统中指定安卓应用与其相应的分身应用的并行运行。

在本发明的一个实施例中,常驻服务单元220,适于将钩子函数挂载在指定系统设备的调用接口上,利用所述钩子函数拦截发送至所述调用接口的调用请求;判断所述调用请求的发送方是否为虚拟机中的指定安卓应用的分身应用;是则确定监听到虚拟机中的指定安卓应用的分身应用调用指定系统设备的事件;否则放行所述调用请求。

其中,常驻服务单元220,还适于在所述监听虚拟机中的指定安卓应用的分身应用调用指定系统设备的事件之前,获取各指定安卓应用的分身应用所声明的权限信息并保存至配置管理表中;常驻服务单元220,适于根据所述配置管理表中记录的该指定安卓应用的分身应用所声明的权限信息,判断该指定安卓应用的分身应用是否声明关于所要调用的指定系统设备的权限;是则,确定该指定安卓应用的分身应用具有相应权限;否则,确定该指定安卓应用的分身应用不具有相应权限。

在本发明的一个实施例中,常驻服务单元220,适于对于所述钩子函数拦截到的调用请求,从该调用请求中提取出:发送方的信息,调用的指定安卓设备的信息;根据所述发送方的信息确定相应的指定安卓应用的分身应用,从配置管理表查找该指定安卓应用的分身应用所声明的权限信息;根据所述调用的指定安卓设备的信息,判断该指定安卓应用的分身应用所声明的权限信息中是否包含关于所述调用的指定安卓设备的权限信息。

进一步地,所述常驻服务单元220,还适于从该调用请求中提取出发送方所在的进程的信息;以及,适于将所述调用请求发送至指定系统设备的调用接口,接收安卓系统返回的执行消息,根据所述发送方所在的进程的信息,将指定系统设备分配至相应的进程中启动并运行。

在本发明的一个实施例中,常驻服务单元220,适于获取各指定安卓应用的安装包复件并保存至指定目录,作为各指定安卓应用的分身应用的安装包;解析各指定安卓应用的分身应用的安装包中的配置文件,获取各指定安卓应用的分身应用在相应配置文件中所声明的权限信息并保存至所述配置管理表中。

进一步地,在本发明的一个实施例中,所述常驻服务单元220,还适于当结束所述事件时,向所述指定安卓应用的分身应用抛出安全异常。

在具体的例子中,所述指定系统设备包括如下一种或多种:系统传感器,系统相机模块,系统GPS模块,系统WiFi模块。其中,所述系统传感器包括如下一种或多种:加速度传感器、磁力传感器、方向传感器、陀螺仪传感器、光线感应传感器、压力传感器、温度传感器、接近传感器、重力传感器、线性加速度传感器、旋转矢量传感器。

在本发明的一个实施例中,所述常驻服务单元220,适于通过虚拟机中的常驻服务执行所述监听虚拟机中的指定安卓应用的分身应用调用指定系统设备的事件;当监听到所述事件时进行拦截,验证该指定安卓应用的分身应用是否具有相应权限的操作。

需要说明的是,图2所示装置的各实施例与图1所示方法的各实施例对应相同,上文已有详细说明,在此不再赘述。

综上所述,在本发明的技术方案中,为了实现安卓系统中多个相同安卓应用的并行运行,在安卓系统中构造了虚拟机环境,将指定安卓应用的分身应用放入到该虚拟机中运行,且为了防止分身应用利用本方案中的虚拟机对安卓系统进行恶意攻击,本方案在虚拟机中的指定安卓应用的分身应用在调用指定系统设备时对其进行权限验证,让权限没有问题的分身应用可以成功地进行调用,而权限有问题的分身应用不可以成功进行调用,在保证安卓系统安全的基础上可以完美地实现安卓系统中指定安卓应用与其相应的分身应用的并行运行。

需要说明的是:

在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的安卓应用的权限控制装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

本发明公开了A1、一种安卓应用的权限控制方法,其中,包括:

构造虚拟机环境,将安卓系统中的一个或多个指定安卓应用的分身应用放入虚拟机中运行;

监听虚拟机中的指定安卓应用的分身应用调用指定系统设备的事件;当监听到所述事件时进行拦截,验证该指定安卓应用的分身应用是否具有相应权限;

是则,放行所述事件;否则,结束所述事件。

A2、如A1所述的方法,其中,所述监听虚拟机中的指定安卓应用的分身应用调用指定系统设备的事件包括:

将钩子函数挂载在指定系统设备的调用接口上,利用所述钩子函数拦截发送至所述调用接口的调用请求;

判断所述调用请求的发送方是否为虚拟机中的指定安卓应用的分身应用;

是则确定监听到虚拟机中的指定安卓应用的分身应用调用指定系统设备的事件;否则放行所述调用请求。

A3、如A1或A2所述的方法,其中,在所述监听虚拟机中的指定安卓应用的分身应用调用指定系统设备的事件之前,该方法进一步包括:获取各指定安卓应用的分身应用所声明的权限信息并保存至配置管理表中;

所述验证该指定安卓应用的分身应用是否具有相应权限包括:根据所述配置管理表中记录的该指定安卓应用的分身应用所声明的权限信息,判断该指定安卓应用的分身应用是否声明关于所要调用的指定系统设备的权限;是则,确定该指定安卓应用的分身应用具有相应权限;否则,确定该指定安卓应用的分身应用不具有相应权限。

A4、如A3所述的方法,其中,所述根据所述配置管理表中记录的该指定安卓应用的分身应用所声明的权限信息,判断该指定安卓应用的分身应用是否声明关于所要调用的指定系统设备的权限包括:

对于所述钩子函数拦截到的调用请求,从该调用请求中提取出:发送方的信息,调用的指定安卓设备的信息;

根据所述发送方的信息确定相应的指定安卓应用的分身应用,从配置管理表查找该指定安卓应用的分身应用所声明的权限信息;

根据所述调用的指定安卓设备的信息,判断该指定安卓应用的分身应用所声明的权限信息中是否包含关于所述调用的指定安卓设备的权限信息。

A5、如A4所述的方法,其中,该方法进一步包括:从该调用请求中提取出发送方所在的进程的信息;

所述放行所述事件包括:将所述调用请求发送至指定系统设备的调用接口,接收安卓系统返回的执行消息,根据所述发送方所在的进程的信息,将指定系统设备分配至相应的进程中启动并运行。

A6、如A3所述的方法,其中,所述获取各指定安卓应用的分身应用所声明的权限信息并保存至配置管理表中包括:

获取各指定安卓应用的安装包复件并保存至指定目录,作为各指定安卓应用的分身应用的安装包;

解析各指定安卓应用的分身应用的安装包中的配置文件,获取各指定安卓应用的分身应用在相应配置文件中所声明的权限信息并保存至所述配置管理表中。

A7、如A1所述的方法,其中,当结束所述事件时,该方法进一步包括:

向所述指定安卓应用的分身应用抛出安全异常。

A8、如A1所述的方法,其中,所述指定系统设备包括如下一种或多种:系统传感器,系统相机模块,系统GPS模块,系统WiFi模块。

A9、如A8所述的方法,其中,所述系统传感器包括如下一种或多种:

加速度传感器、磁力传感器、方向传感器、陀螺仪传感器、光线感应传感器、压力传感器、温度传感器、接近传感器、重力传感器、线性加速度传感器、旋转矢量传感器。

A10、如A1-A9中任一项所述的方法,其中,

所述监听虚拟机中的指定安卓应用的分身应用调用指定系统设备的事件;当监听到所述事件时进行拦截,验证该指定安卓应用的分身应用是否具有相应权限的步骤是通过虚拟机中的常驻服务执行的。

本发明还公开了B11、一种安卓应用的权限控制装置,其中,包括:

环境构造单元,适于构造虚拟机环境,将安卓系统中的一个或多个指定安卓应用的分身应用放入虚拟机中运行;

常驻服务单元,适于监听虚拟机中的指定安卓应用的分身应用调用指定系统设备的事件;当监听到所述事件时进行拦截,验证该指定安卓应用的分身应用是否具有相应权限;是则,放行所述事件;否则,结束所述事件。

B12、如B11所述的装置,其中,

所述常驻服务单元,适于将钩子函数挂载在指定系统设备的调用接口上,利用所述钩子函数拦截发送至所述调用接口的调用请求;判断所述调用请求的发送方是否为虚拟机中的指定安卓应用的分身应用;是则确定监听到虚拟机中的指定安卓应用的分身应用调用指定系统设备的事件;否则放行所述调用请求。

B13、如B11或B12所述的装置,其中,

所述常驻服务单元,还适于在所述监听虚拟机中的指定安卓应用的分身应用调用指定系统设备的事件之前,获取各指定安卓应用的分身应用所声明的权限信息并保存至配置管理表中;

所述常驻服务单元,适于根据所述配置管理表中记录的该指定安卓应用的分身应用所声明的权限信息,判断该指定安卓应用的分身应用是否声明关于所要调用的指定系统设备的权限;是则,确定该指定安卓应用的分身应用具有相应权限;否则,确定该指定安卓应用的分身应用不具有相应权限。

B14、如B13所述的装置,其中,

所述常驻服务单元,适于对于所述钩子函数拦截到的调用请求,从该调用请求中提取出:发送方的信息,调用的指定安卓设备的信息;根据所述发送方的信息确定相应的指定安卓应用的分身应用,从配置管理表查找该指定安卓应用的分身应用所声明的权限信息;根据所述调用的指定安卓设备的信息,判断该指定安卓应用的分身应用所声明的权限信息中是否包含关于所述调用的指定安卓设备的权限信息。

B15、如B14所述的装置,其中,所述常驻服务单元,还适于从该调用请求中提取出发送方所在的进程的信息;以及,适于将所述调用请求发送至指定系统设备的调用接口,接收安卓系统返回的执行消息,根据所述发送方所在的进程的信息,将指定系统设备分配至相应的进程中启动并运行。

B16、如B13所述的装置,其中,

所述常驻服务单元,适于获取各指定安卓应用的安装包复件并保存至指定目录,作为各指定安卓应用的分身应用的安装包;解析各指定安卓应用的分身应用的安装包中的配置文件,获取各指定安卓应用的分身应用在相应配置文件中所声明的权限信息并保存至所述配置管理表中。

B17、如B11所述的装置,其中,

所述常驻服务单元,还适于当结束所述事件时,向所述指定安卓应用的分身应用抛出安全异常。

B18、如B11所述的装置,其中,所述指定系统设备包括如下一种或多种:系统传感器,系统相机模块,系统GPS模块,系统WiFi模块。

B19、如B18所述的装置,其中,所述系统传感器包括如下一种或多种:

加速度传感器、磁力传感器、方向传感器、陀螺仪传感器、光线感应传感器、压力传感器、温度传感器、接近传感器、重力传感器、线性加速度传感器、旋转矢量传感器。

B20、如B11-B19中任一项所述的装置,其中,

所述常驻服务单元,适于通过虚拟机中的常驻服务执行所述监听虚拟机中的指定安卓应用的分身应用调用指定系统设备的事件;当监听到所述事件时进行拦截,验证该指定安卓应用的分身应用是否具有相应权限的操作。

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