应用程序权限动态控制方法和系统技术方案

技术编号:9738808 阅读:126 留言:0更新日期:2014-03-06 18:12
本发明专利技术公开了一种应用程序权限动态控制方法和系统,所述方法包括:服务管理(SM)进程接收到应用程序的服务请求时调用被注入的共享库中的新ioctl函数;新ioctl函数获取请求服务的进程id号和服务组件名称向应用程序权限动态控制系统发送;所述系统若确定接收的服务组件名称存在于对应该进程id号的权限申请信息列表中,则向新ioctl函数返回匹配成功信息;否则提示用户进行配置;所述系统若接收到用户的启用指令,则将接收的服务组件名称添加到对应该进程id号的权限申请信息列表中,向新ioctl函数返回匹配成功信息,SM进程响应服务请求;否则返回匹配失败信息,SM进程拒绝服务请求;从而具有更高的灵活性和通用性。

【技术实现步骤摘要】
应用程序权限动态控制方法和系统
本专利技术涉及移动终端技术,尤其涉及一种应用程序权限动态控制方法和系统。
技术介绍
Android是基于Linux平台的开源操作系统,可使用于如智能手机、平板电脑、电视、数码相机、游戏机等的移动终端中,受到移动终端设备厂商和用户的广泛关注。目前,基于Android操作系统的应用程序层出不穷。然而,由于Android操作系统的开放性特点,开发人员可以全面了解操作系统内部的机制与实现,使得操作系统的安全漏洞易被发现和利用。例如,一些应用程序的APK(AndroidPackage,Android安装包)中被嵌入了恶意行为,如窃取个人隐私数据、消耗用户资费、占用网络流量、远程控制终端信息等;这些应用程序在安装的过程中可以获得额外的系统访问权限,对系统资源进行越权使用。而且,这些应用程序的恶意行为往往在后台运行,用户难以发现。为了管理应用程序对系统资源的使用行为,实现应用程序权限的控制,Android操作系统提供了一套基本的授权模式:在应用程序的安装过程中,安装器会弹出询问窗体询问用户是否同意应用程序所有的权限申请;用户选择同意,便会授权应用程序所有的权限申请,用户选择拒绝,便会中止应用程序的安装。这样,安装的应用程序在运行过程中,Andriod操作系统可以根据应用程序安装时所授予的权限,控制应用程序对系统服务、数据等各项资源的访问和使用行为。但是,应用程序安装完成后,授予的各项权限不可更改;之后用户无法再根据自己的需求授予应用程序所申请的权限,使得该方法不够灵活。为实现对应用程序的访问权限进行控制,现有的另一种方法是:在Android操作系统源码中查找到定位系统关键部件、关键资源的API(ApplicationProgrammingInterface,应用程序编程接口),通过API来管理应用程序对系统资源的访问行为,从而实现对应用程序权限的主动控制和管理。然而,该方法存在需要对Android操作系统进行重新编译和定制,以“刷机”方式重置移动终端的软件系统,且对Android应用程序配置文件中的系统权限申请列表和Android操作系统的API版本依赖性较明显等弊端,使得该方法的适用性和易用性较差,从而导致该方法在控制应用程序权限时也不够灵活。因此,有必要提供一种灵活性、通用性更高的应用程序权限控制方法。
技术实现思路
本专利技术实施例提供了一种应用程序权限动态控制方法和系统,用以提高应用程序权限控制的灵活性、通用性。根据本专利技术的一个方面,提供了一种应用程序权限动态控制方法,包括:服务管理ServiceManager进程接收到应用程序发送的服务请求时,调用新共享库中的接口控制ioctl函数;所述ioctl函数对所述服务请求进行解析,获取其中的进程id号和服务组件名称后通过所述ServiceManager进程与应用程序权限动态控制系统之间的通信链路向所述应用程序权限动态控制系统发送;所述应用程序权限动态控制系统根据接收的进程id号,在权限列表数据库中查找对应该进程id号的权限申请信息,并确定接收的服务组件名称是否存在于查找到的权限申请信息中;若是,则向所述ioctl函数返回匹配成功信息;若否,则显示提示框提示用户是否运行本次服务请求;所述应用程序权限动态控制系统若通过所述提示框接收到用户输入的许可指令,则将接收的服务组件名称添加到所述权限列表数据库中对应所述进程id号的权限申请信息中后,向所述ioctl函数返回匹配成功信息;否则向所述ioctl函数返回匹配失败信息;所述ioctl函数若接收到匹配成功信息,则响应所述服务请求;若接收到匹配失败信息,则拒绝所述服务请求。其中,所述新共享库是预先加载的,以及所述通信链路是预先建立的:应用程序权限动态控制系统运行后将所述ServiceManager进程挂起,并备份所述ServiceManager进程的寄存器值和进程上下文;并将编译后的新共享库加载到所述ServiceManager进程的地址空间后,执行所述新共享库中的入口函数,建立所述ServiceManager进程与本应用程序权限动态控制系统之间的通信链路;之后,所述应用程序权限动态控制系统根据备份的寄存器值和进程上下文恢复所述ServiceManager进程的执行现场。较佳地,所述权限列表数据库中的权限申请信息是预先提取并保存的:所述应用程序权限动态控制系统运行后对于每个安装的应用程序,从该应用程序的清单Manifest文件中解析出权限申请信息并保存到所述权限列表数据库中。较佳地,所述应用程序权限动态控制系统安装于具有Android操作系统的移动终端中。较佳地,所述Manifest文件具体为XML格式的AndroidManifest.xml文件。根据本专利技术的另一个方面,还提供了一种应用程序权限动态控制系统,包括:权限匹配模块,用于在接收到ioctl函数通过所述应用程序权限动态控制系统与ServiceManager进程之间的通信链路发送的进程id号和服务组件名称后,根据接收的进程id号,在权限列表数据库中查找对应该进程id号的权限申请信息,并确定接收的服务组件名称是否存在于查找到的权限申请信息中;若是,则向所述ioctl函数返回匹配成功信息;若否,则发送权限配置通知;其中,所述ioctl函数是所述ServiceManager进程接收到应用程序发送的服务请求时从新共享库中调用的;权限配置模块,用于接收到所述权限配置通知后,显示提示框提示用户是否启用本次服务请求;若通过所述提示框接收到用户输入的启用指令,则将接收的服务组件名称添加到所述权限列表数据库中对应所述进程id号的权限申请信息后,向所述ioctl函数返回匹配成功信息;否则向所述ioctl函数返回匹配失败信息;所述ioctl函数若接收到匹配成功信息,则响应所述服务请求;若接收到匹配失败信息,则拒绝所述服务请求。进一步,所述应用程序权限动态控制系统,还包括:注入模块,用于在所述应用程序权限动态控制系统运行后,将所述ServiceManager进程挂起并处于受控状态,同时备份所述ServiceManager进程的寄存器值和进程上下文;并将编译后的新共享库加载到所述ServiceManager进程的地址空间中,执行所述新共享库的入口函数,建立所述ServiceManager进程与本应用程序权限动态控制系统之间的通信链路;之后,根据备份的寄存器值和进程上下文恢复所述ServiceManager进程。进一步,所述应用程序权限动态控制系统,还包括:权限信息保存模块,用于在所述应用程序权限动态控制系统运行后对于每个安装的应用程序,从该应用程序的清单Manifest文件中解析出权限申请信息后保存到所述权限列表数据库中。较佳地,所述应用程序权限动态控制系统安装于具有Android操作系统的移动终端中。较佳地,所述Manifest文件具体为XML格式的AndroidManifest.xml文件。本专利技术实施例的技术方案中,服务管理ServiceManager进程接收到应用程序的服务请求时,调用新共享库中的ioctl函数,新共享库中ioctl函数获取应用程序的服务请求,并解析出获取的服务器请求中的进程id和应用程序所请求的服务组件名称后,通过预先建立的通信链路,本文档来自技高网
...
应用程序权限动态控制方法和系统

【技术保护点】
一种应用程序权限动态控制方法,其特征在于,包括:服务管理ServiceManager进程接收到应用程序发送的服务请求时,调用新共享库中的接口控制ioctl函数;所述ioctl函数对所述服务请求进行解析,获取其中的进程id号和服务组件名称后通过所述ServiceManager进程与应用程序权限动态控制系统之间的通信链路向所述应用程序权限动态控制系统发送;所述应用程序权限动态控制系统根据接收的进程id号,在权限列表数据库中查找对应该进程id号的权限申请信息,并确定接收的服务组件名称是否存在于查找到的权限申请信息中;若是,则向所述ioctl函数返回匹配成功信息;若否,则显示提示框提示用户是否运行本次服务请求;所述应用程序权限动态控制系统若通过所述提示框接收到用户输入的许可指令,则将接收的服务组件名称添加到所述权限列表数据库中对应所述进程id号的权限申请信息中后,向所述ioctl函数返回匹配成功信息;否则向所述ioctl函数返回匹配失败信息;所述ioctl函数若接收到匹配成功信息,则响应所述服务请求;若接收到匹配失败信息,则拒绝所述服务请求。

【技术特征摘要】
1.一种应用程序权限动态控制方法,其特征在于,包括:服务管理ServiceManager进程接收到应用程序发送的服务请求时,调用新共享库中的接口控制ioctl函数;所述ioctl函数对所述服务请求进行解析,获取其中的进程id号和服务组件名称后通过所述ServiceManager进程与应用程序权限动态控制系统之间的通信链路向所述应用程序权限动态控制系统发送;所述应用程序权限动态控制系统根据接收的进程id号,在权限列表数据库中查找对应该进程id号的权限申请信息,并确定接收的服务组件名称是否存在于查找到的权限申请信息中;若是,则向所述ioctl函数返回匹配成功信息;若否,则显示提示框提示用户是否运行本次服务请求;所述应用程序权限动态控制系统若通过所述提示框接收到用户输入的许可指令,则将接收的服务组件名称添加到所述权限列表数据库中对应所述进程id号的权限申请信息中,然后向所述ioctl函数返回匹配成功信息;否则向所述ioctl函数返回匹配失败信息;所述ioctl函数若接收到匹配成功信息,则响应所述服务请求;若接收到匹配失败信息,则拒绝所述服务请求。2.如权利要求1所述的方法,其特征在于,所述新共享库是预先加载的,以及所述通信链路是预先建立的:应用程序权限动态控制系统运行后将所述ServiceManager进程挂起,并备份所述ServiceManager进程的寄存器值和进程上下文;并将编译后的新共享库加载到所述ServiceManager进程的地址空间后,执行所述新共享库中的入口函数,建立所述ServiceManager进程与本应用程序权限动态控制系统之间的通信链路;之后,所述应用程序权限动态控制系统根据备份的寄存器值和进程上下文恢复所述ServiceManager进程的执行现场。3.如权利要求1或2所述的方法,其特征在于,所述权限列表数据库中的权限申请信息是预先提取并保存的:所述应用程序权限动态控制系统运行后对于每个安装的应用程序,从该应用程序的清单Manifest文件中解析出权限申请信息并保存到所述权限列表数据库中。4.如权利要求3所述的方法,其特征在于,所述应用程序权限动态控制系统安装于具有Android操作系统的移动终端中。5.如权利要求4所述的方法,其特征在于,所述Manifest文...

【专利技术属性】
技术研发人员:范文浩吴帆阙斌生张洪光唐碧华余小秋
申请(专利权)人:北京邮电大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1