一种系统权限管理方法、装置及相应的设备与流程

文档序号:12125677阅读:174来源:国知局
一种系统权限管理方法、装置及相应的设备与流程

本发明实施例属于安卓系统领域,尤其涉及一种系统权限管理方法、装置及相应的设备。



背景技术:

在Android系统中应用模块执行各种操作,比如设备中有些应用模块需要控制寄存器、GPIO的操作,具体如控制电源灯、网络灯、IR灯、摄像头、扬声器等,这些分散在不同模块的操作如果涉及到系统安全性或者稳定性,一般需要获得系统授权。

在实现本发明的过程中,发明人发现现有技术至少存在下述问题:

在Android系统应用模块执行的具体操作涉及对系统中的相关文件的读写操作,由于Android系统引入SElinux安全机制,使得各应用模块的一些操作因为权限问题而不能执行,比如Kernel 3.18.20默认/sys/devices/virtual/下各个设备文件不允许other用户拥有写权限,导致应用模块对/sys/devices/virtual/下的文件进行写操作。如果对SElinux进行修改可能会改动很大,费时费力,且在不同的硬件平台上的寄存器和GPIO等硬件有可能不同,将进一步增加的代码维护的复杂度。



技术实现要素:

为了解决上述问题,本发明实施例提供一种系统权限管理方法、装置及相应的设备,以解决现有技术中应用模块操作分散,以及权限受限的操作需要通过修改代码才能获取相应的权限时,修改代码工作量大、维护不方便的问题。

第一方面,本发明实施例提供一种系统权限管理方法,应用于终端设备,具体包括:

获取操作请求,其中,所述操作的执行需要系统权限;

根据所述操作请求获取具有所述系统权限的Service;

通过所述Service提供的接口执行所述需要系统权限的操作。

进一步的,还包括创建所述Service,并将所述Service添加到Service管理器中,所述根据所述操作请求获取具有所述系统权限的Service具体为:从Service管理器中获取具有所述系统权限的Service。

进一步的,还包括对所述Service进行初始化,所述初始化过程包括:通过所述Service动态解析所述终端设备至少一个硬件的配置文件。

进一步的,获取具有所述系统权限的Service后,向操作请求发起方返回所述Service的唯一标识符。

第二方面,本发明实施例提供一种系统权限管理装置,包括:

请求获取模块,用于获取操作请求,其中,所述操作的执行需要系统权限;

Service获取模块,用于根据所述操作请求获取具有所述系统权限的Service;

操作执行模块,用于通过所述Service提供的接口执行所述需要系统权限的操作。

进一步的,所述装置还包括Service创建模块,用于创建所述Service,并将所述Service添加到Service管理器中,Service获取模块根据所述操作请求获取具有所述系统权限的Service具体为:从Service管理器中获取具有所述系统权限的Service。

进一步的,所述装置还包括初始化模块,用于对所述Service进行初始化,所述初始化过程包括:通过所述Service动态解析所述终端设备至少一个硬件的配置文件。

进一步的,所述装置还包括反馈模块,用于在Service获取模块获取具有所述系统权限的Service后,向操作请求发起方返回所述Service的唯一标识符。

第三方面,本发明实施例提供一种终端设备,所述终端设备包括上述的系统权限管理装置。

第四方面,本发明实施例提供一种服务器,所述服务器包括至少一个上述的系统权限管理装置。

第五方面,本发明实施例提供一种权限管理系统,包括服务器和至少一个终端设备,其中所述服务器包括至少一个上述的系统权限管理装置。

通过本发明实施例提供的系统权限管理方法、装置及相应的设备,通过提供具有系统权限的Service,对于需要系统权限但又没有系统权限的操作,可以通过Service为这些操作提供系统权限代理,继而执行这些操作,根据本发明实施例的方案,可以将不同操作所需的各种系统权限集中到Service中进行统一管理,避免大量修改代码,降低代码维护的复杂度。

附图说明

为了更清楚地说明本发明或现有技术中的方案,下面将对实施例或现有技术描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例一中提供的系统权限管理方法的流程图。

图2为本发明实施例二中提供的系统权限管理方法的流程图。

图3为本发明实施例三中提供的系统权限管理装置的结构框图。

图4为本发明实施例四中提供的系统权限管理装置的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,附图中给出了本发明的较佳实施例。本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例,相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

实施例一

本发明实施例提供一种系统权限管理方法,所述方法具体应用于终端设备,在本发明实施例中,所述终端设备尤其指采用Android系统的终端设备,比如采用Android系统的手机、平板电脑、电视等,便于描述,在本实施例及后续实施例中,必要的时候均以采用Android系统的手机为例进行相关说明。下面对本实施例中所提供的只读属性修改方法的实现流程进行详细说明,具体请参阅图1所述的流程图,所述方法具体包括以下步骤:

S101、获取操作请求,其中,所述操作的执行需要系统权限;

S102、根据所述操作请求获取具有所述系统权限的Service;

S103、通过所述Service提供的接口执行所述需要系统权限的操作。

下面对上述步骤进行详细说明,在终端设备上的操作来源于终端设备的各个应用模块,比如设备中有些应用需要控制寄存器、GPIO的操作,具体如控制电源灯、网络灯、IR灯、摄像头、扬声器等。这些分散在不同模块的操作如果涉及到系统安全性或者稳定性,一般需要获得系统授权。本实施例提供的方法对这些分散、且需要系统授权的操作进行集中管理,统一获取不同应用模块的操作请求。在安卓手机中,由于Android系统引入SElinux安全机制,使得手机上各模块或者应用的一些操作因为权限问题而不能执行,比如Kernel 3.18.20默认/sys/devices/virtual/下各个设备文件不允许other用户拥有写权限,相应的,应用模块对/sys/devices/virtual/下的文件的写操作将不能成功。在本实施例中,所述Service可为这些权限受限的操作提供了高系统权限的代理服务,通过获取所述Service来执行原本系统权限受限的操作。在Service中,Service提供了控制寄存器、GPIO等硬件相关性强的接口,同时也提供了需要系统权限的操作的访问接口。通过Service提供的接口来执行所述需要系统权限的操作。比如手机上某个游戏应用需要调用摄像头,根据SElinux安全机制,这种操作是受限的,此时可根据调用摄像头的请求获取Service,通过Service提供的接口来调用摄像头。

通过本发明实施例提供的系统权限管理方法,对于不同应用模块的权限受限的操作,通过获取具有系统权限的Service,可以通过Service为这些操作提供系统权限代理,从而可执行这些权限受限的操作,根据本发明实施例的方案,可以将权限受限的不同操作集中到Service中进行统一管理,避免大量修改代码,降低代码维护的复杂度。

实施例二

在本发明实施例中,所述系统权限管理方法还包括创建所述Service,并将所述Service注册添加到Service管理器中,具体地,所述应用模块通过binder通信机制与所述Service进行交互,在Android系统中,binder通信是一种client-server的通信结构,在所述应用模块与所述Service进行交互的过程中,所述应用模块作为client端存在,而所述Service作为server端存在,即所述Service为所述应用模块提供系统权限代理服务,所述应用模块通过获得所述Service的代理接口对所述Service进行直接调用。

相应的,在本发明实施例中,所述根据所述操作请求获取具有所述系统权限的Service具体为:从ServiceManager(即Service管理器)中查询并获取具有所述系统权限的Service。当从ServiceManager中获得具有所述系统权限的Service后,由ServiceManager向作为操作请求发起方的所述应用模块返回所述Service的唯一标识符,从而建立所述应用模块与所述Service直接的交互通信。

在本实施例中,所述方法还包括对所述Service进行初始化,在本实施例中,终端设备的寄存器和GPIO等硬件信息汇总成一个配置文件跟随Android系统的升级包进行发布,由Service对所述配置文件进行动态解析,这样的操作提供了一个跨不同硬件平台的处理框架。相应的,所述初始化过程包括:通过所述Service动态解析所述终端设备至少一个硬件的配置文件;在执行所述需要系统权限的操作过程中,所述Service调用相应的硬件进行操作处理。

参阅图2,可选的,本发明实施例提供另一种系统权限管理方法的具体步骤如下:

S201、Android系统启动时启动Service。

S202、Service进行初始化,完成配置文件的解析。

S203、获取操作请求,其中,所述操作的执行需要系统权限;

S204、根据所述操作请求从ServiceManager中获取具有所述系统权限的Service;

S205、通过所述Service提供的接口执行所述需要系统权限的操作。

上述步骤的相关内容可参阅前述实施例中的相关描述,在此不再赘述。

通过本发明实施例提供的系统权限管理方法,通过创建具有系统权限的Service,对于需要系统权限但又没有系统权限的操作,可以通过Service为这些操作提供系统权限代理,从而在不对这些操作进行权限修改的情况下即可执行这些操作。通过把硬件相关性强的操作集中在一起,通过提供高权限的Service集中进行操作,易于维护,便于对一些现有方案快速改进以满足SElinux安全机制的要求。

实施例三

参阅图3,图示为本发明实施例提供的一种系统权限管理装置的结构框图,所述装置包括请求获取模块301、Service获取模块302和操作执行模块303,其中,所述请求获取模块301用于获取操作请求,其中,所述操作的执行需要系统权限;所述Service获取模块302用于根据所述操作请求获取具有所述系统权限的Service;所述操作执行模块303用于通过所述Service提供的接口执行所述需要系统权限的操作。

下面对各模块之间的处理交互过程进行详细说明,在终端设备上的众多操作来源于终端设备的各个应用模块,这些分散在不同模块的操作如果涉及到系统安全性或者稳定性,一般需要获得系统授权。本实施例提供的系统权限管理装置可对这些分散、且需要系统授权的操作进行集中管理,通过请求获取模块301获取不同应用模块的操作请求。本实施例提供Service为这些权限受限的操作提供了高系统权限的代理服务,具体通过Service获取模块302获取所述Service,并由操作执行模块303来执行原本系统权限受限的操作。在Service中,Service提供了控制寄存器、GPIO等硬件相关性强的接口,同时也提供了需要系统权限的操作的访问接口。通过Service提供的接口来执行所述需要系统权限的操作。比如手机上某个游戏应用需要调用摄像头,根据SElinux安全机制,这种操作是受限的,此时可根据调用摄像头的请求获取Service,通过Service提供的接口来调用摄像头。

通过本发明实施例提供的系统权限管理方法装置,通过提供具有系统权限的Service,对于需要系统权限但又没有系统权限的操作,可以通过Service为这些操作提供系统权限代理,继而执行这些操作,根据本发明实施例的方案,可以将不同操作所需的各种系统权限集中到Service中进行统一管理,避免大量修改代码,降低代码维护的复杂度。

实施例四

在本发明实施例中,参阅图4,所述装置还包括Service创建模块401,用于创建所述Service,并将所述Service添加到Service管理器中,在Android系统中,binder通信是一种client-server的通信结构,在本实施例中,应用模块通过binder通信机制与所述Service进行交互,在所述应用模块与所述Service进行交互的过程中,所述应用模块作为client端存在,而所述Service作为server端存在,即所述Service为所述应用模块提供系统权限代理服务,所述应用模块通过获得所述Service的代理接口对所述Service进行直接调用。Service获取模块302根据所述操作请求获取具有所述系统权限的Service具体为:从Service管理器中获取具有所述系统权限的Service。相应的,在本发明实施例中,所述Service获取模块302根据所述操作请求获取具有所述系统权限的Service具体为:从ServiceManager(即Service管理器)中查询并获取具有所述系统权限的Service。进一步的,参阅图4,所述装置还包括反馈模块402,用于在Service获取模块获取具有所述系统权限的Service后,将向操作请求发起方返回所述Service的唯一标识符,当Service获取模块302从ServiceManager中获得具有所述系统权限的Service后,通过反馈模块402向作为操作请求发起方的所述应用模块返回所述Service的唯一标识符,从而建立所述应用模块与所述Service直接的交互通信。

进一步的,参阅图4,所述装置还包括初始化模块403,用于对所述Service进行初始化,所述初始化过程包括:通过所述Service动态解析所述终端设备至少一个硬件的配置文件。在本实施例中,终端设备的寄存器和GPIO等硬件信息汇总成一个配置文件跟随Android系统的升级包进行发布,由Service对所述配置文件进行动态解析,这样的操作提供了一个跨不同硬件平台的处理框架。相应的,初始化模块403进行初始化过程包括:通过所述Service动态解析所述终端设备至少一个硬件的配置文件;在操作执行模块303执行所述需要系统权限的操作过程中,所述Service调用相应的硬件进行操作处理。

通过本发明实施例提供的系统权限管理装置,通过创建具有系统权限的Service,对于需要系统权限但又没有系统权限的操作,可以通过Service为这些操作提供系统权限代理,从而在不对这些操作进行权限修改的情况下即可执行这些操作。通过把硬件相关性强的操作集中在一起,通过提供高权限的Service集中进行操作,易于维护,便于对一些现有方案快速改进以满足SElinux安全机制的要求。

实施例五

本发明实施例提供一种终端设备,所述终端设备上述的系统权限管理装置。所述系统权限管理装置的结构参阅前述实施例中相关技术内容,在此不再赘述。

实施例六

本发明实施例提供一种服务器,所述服务器包括至少一个上述的系统权限管理装置。所述系统权限管理装置的结构参阅前述实施例中相关技术内容,在此不再赘述。

实施例七

本发明实施例提供一种权限管理系统,包括服务器和至少一个终端设备,其中所述服务器包括至少一个上述的系统权限管理装置。所述系统权限管理装置的结构参阅前述实施例中相关技术内容,在此不再赘述。

需要说明的是,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个非易失性计算机可读取存储介质中。实现上述各软件功能单元的功能的相关程序指令存储在所述非易失性计算机可读取存储介质中,所述程序指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置、智能终端设备等)或处理器(Processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上仅为本发明的实施例,但并不限制本发明的专利范围,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本发明说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本发明专利保护范围之内。

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