权限请求响应方法及相应的装置制造方法

文档序号:6636012阅读:163来源:国知局
权限请求响应方法及相应的装置制造方法
【专利摘要】本发明以Android应用场景为例,公开一种权限请求响应方法,包括以下步骤:启动属于系统级别的通信接口,通过该通信接口监听外部权限请求;依据该权限请求获得请求方的特征标识,在预置的认证列表中检索该特征标识是否处于被允许的状态;当该特征标识为被允许状态时,为该权限请求向系统申请权限。借助本发明所实现的权限请求管理功能,具有通信快速高效、技术安全可靠的特点。
【专利说明】权限请求响应方法及相应的装置

【技术领域】
[0001]本发明涉及计算机操作系统的权限管理技术,尤其涉及一种权限请求响应方法及相应的装置。

【背景技术】
[0002]基于Uinux诞生的操作系统,从Linux系列到移动终端的Android操作系统,均存在严格的用户管理机制。其中,以Android为例,系统的最高权限帐号为Root,该帐号的权限也代表着权限管理机制的最高级别,可以启动或停止一个进程,删除或增加用户,增加或禁用硬件等等。移动终端设备出厂时,厂商出于安全因素考虑,一般不向用户开放Root权限。在这种情况下,用户对移动终端设备所进行的系统操作,或者第三方应用例如手机安全软件需要实现某些诸如卸载出厂应用之类的功能时,便会受到阻碍。因此,获取Root权限便变得越来越普遍。
[0003]目前市面上的手机安全软件,例如“360手机助手”,通常配备有针对手机应用而提供的权限管理模块。获得Root权限后,需要进一步加强对权限请求的管理,因便实现对操作系统的安全监控,防止恶意应用随意实现自身目的,例如请求联系人权限、请求手机MEI权限等,以便做到既给予用户更大的操作自由度,又能够确保技术上的安全性。
[0004]现有技术在很大程度上实现了 Root权限管理,但是,也存在如下不足:一方面,由于进行权限管理的通信机制利用不善的缘故,导致Root权限管理的效率不高;另一方面,过分依赖于系统的功能,导致权限管理的运行效率不高。


【发明内容】

[0005]本发明的目的在于提供一种运行效率较为高效的权限请求响应方法及其相应的
>J-U ρ?α装直。
[0006]为实现本发明的目的,本发明采取如下技术方案:
[0007]本发明提供的一种权限请求响应方法,包括以下步骤:
[0008]启动属于系统级别的通信接口,通过该通信接口监听外部权限请求;
[0009]依据该权限请求获得请求方的特征标识,在预置的认证列表中检索该特征标识是否处于被允许的状态;
[0010]当该特征标识为被允许状态时,为该权限请求向系统申请权限。
[0011]较佳的,所述系统级别的通信接口,是指基于Android的Binder机制而建立的通信服务进程,用于与发起权限请求的外部应用进程通信。
[0012]较佳的,所述的特征标识,是指Android系统中的WD,每个UID对应于一个应用。
[0013]根据本发明一种实施例所揭示,所述预置的认证列表,存储有若干特征标识,特征标识在认证列表中的存在,表征该特征标识为被允许状态。
[0014]根据本发明另一实施例所揭示,所述预置的认证列表,存储有若干特征标识和对应每个特征标识设置的状态识别字段,当某个特征标识的相应的状态识别字段被设置为表征被允许的符号时,以该符号表征该特征标识为被允许状态。
[0015]进一步,当所述特征标识为非被允许状态时,拒绝所述的权限请求。
[0016]优选地,本方法包括另一步骤:从远程接口获取公共认证列表数据并更新本地的所述认证列表。
[0017]进一步,当采用该权限请求成功获取Root权限后,绑定发起该权限请求的用户进程与服务进程的通信,服务进程用于响应执行由用户进程请求执行的指令。
[0018]较佳的,本地的所述认证列表中,设置有用于表征与所述特征标识相对应的用户程序的权限作用周期的类型标识,在向系统申请权限时,对应所述类型标识申请不同类型的权限。
[0019]本发明提供的一种权限请求响应装置,其包括:
[0020]通信接口,被以系统级别的方式启动,用于监听外部权限请求;
[0021]检索单元,用于依据该权限请求获得请求方的特征标识,在预置的认证列表中检索该特征标识是否处于被允许的状态;
[0022]处理单元,当该特征标识为被允许状态时,用于为该权限请求向系统申请权限。
[0023]具体的,所述通信接口,为基于Android的Binder机制而建立的置于系统级别的通信服务进程,通过与外部应用进程通信获取所述权限请求。
[0024]较佳的,所述的特征标识,是指Android系统中的WD,每个UID对应于一个应用。
[0025]根据本发明的一种实施例所揭示,所述预置的认证列表,用于存储若干特征标识,特征标识在认证列表中的存在,表征该特征标识为被允许状态。
[0026]根据本发明的另一实施例所揭示,所述预置的认证列表,用于存储有若干特征标识和对应每个特征标识设置的状态识别字段,当某个特征标识的相应的状态识别字段被设置为表征被允许的符号时,以该符号表征该特征标识为被允许状态。
[0027]进一步,所述处理单元,当所述特征标识为非被允许状态时,用于拒绝所述的权限请求。
[0028]优先地,本发明包括维护单元,用于从远程接口获取公共认证列表数据并更新本地的所述认证列表。
[0029]进一步,该装置还包括服务进程,当采用该权限请求成功获取Root权限后,与发起该权限请求的用户进程绑定通信,该服务进程用于响应执行由用户进程请求执行的指令。
[0030]较佳的,本地的所述认证列表中,设置有用于表征与所述特征标识相对应的用户程序的权限作用周期的类型标识,在向系统申请权限时,对应所述类型标识申请不同类型的权限。
[0031]相较于现有技术,本发明至少具有如下优点:本发明使用系统级别的通信接口为基础,建立基于外部应用的权限请求的权限管理机制,具有通信快速、成功率高等优点,进一步,通过建立预置的认证列表,可以实现对外部应用的权限请求的独立管理,从技术角度来看,此一认证列表具备类似于防火墙的作用,具有数据集中、运行高效、安全可靠等优点。
[0032]本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。

【专利附图】

【附图说明】
[0033]本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0034]图1是本发明的权限请求响应方法的原理框图;
[0035]图2是本发明的权限请求响应装置的原理框图。

【具体实施方式】
[0036]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
[0037]本【技术领域】技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
[0038]本【技术领域】技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
[0039]本【技术领域】技术人员可以理解,这里所使用的“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,执行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS (Personal Communicat1ns Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA (Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS (Global Posit1ning System,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(MobiIe Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
[0040]本【技术领域】技术人员可以理解,这里所使用的服务器、云端、远端网络设备等概念,具有等同效果,其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云。在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。本发明的实施例中,远端网络设备、终端设备与WNS服务器之间可通过任何通信方式实现通信,包括但不限于,基于3GPP、LTE、WIMAX的移动通信、基于TCP/IP、UDP协议的计算机网络通信以及基于蓝牙、红外传输标准的近距无线传输方式。
[0041]本领域技术人员应当理解,本发明所称的“应用”、“应用程序”、“应用软件”以及类似表述的概念,是业内技术人员所公知的相同概念,是指由一系列计算机指令及相关数据资源有机构造的适于电子运行的计算机软件。除非特别指定,这种命名本身不受编程语言种类、级别,也不受其赖以运行的操作系统或平台所限制。理所当然地,此类概念也不受任何形式的终端所限制。
[0042]本发明一种权限请求响应方法的应用场景,以基于Unix系为基础的操作系统环境中实现的。为了实现本方法,需要将本方法实例化成应用程序,获取Root权限,安装并运行于相关操作系统中。
[0043]众所周知,Root权限是指Unix类操作系统(包括Linux、Android)的系统管理员权限,类似于Windows (视窗)系统中的Administrator (管理员)权限;Root权限可以访问和修改用户的移动设备中几乎所有的文件(Android系统文件及用户文件,不包括ROM)。但是,由于目前移动终端系统对于Root权限的管理是非常严格的,通常情况下多数应用或程序都不具备Root权限,因此对于某些需要具备Root权限的操作就无法执行,例如安装或卸载应用等操作;同时,此类操作调用进程每次执行相应操作时都需要向系统申请Root权限,但如果此时其他应用进程正在使用Root权限进行相关操作,则此调用进程的Root权限申请便无法成功;更甚者,如果用户在系统中设置了禁用Root权限的操作,则相关调用进程便无法进行相关操作。基于此,本发明提出只需要向系统发送一次Root权限获取请求,具体可通过调用系统内置的SU(Super User,超级用户)命令获取Root权限,或者通过获取具有Root权限的shell获取Root权限并在shell中启动进程,然后在获取所述系统的Root权限授权后,即可使后续其他调用进程需执行相关操作时无需重复申请Root权限;具体Root权限获取过程可参照现有技术的Root权限调用函数,本发明在此不再赘述。基于上述的先导知识,以下结合图1详细揭示本发明的权限请求响应方法。该方法包括如下步骤:
[0044]S11、启动属于系统级别的通信接口,通过该通信接口监听外部权限请求:
[0045]本实施例所称的通信接口,是指由以本方法所实现的一个程序模块运行于内存中,通过内存中的相应主进程实现如前所述的提权操作后,向系统注册一个通信服务进程。以Android为例,该通信服务进程基于Android系统所提供的Binder机制,向SystemManager注册自身,通过Android提供的固有的Binder机制,在通信服务进程与其监听的外部应用进程之间建立C/S架构的沟通管道。具体而言,当获取到系统的Root权限后,为了便于后续实现对外部应用进程的监听以及相关操作功能,本发明首先启动具有已经获得Root权限的由本方法实例化后得以运行而形成的主进程,通过主进程在系统中插入所述通信服务进程,例如可通过系统调用函数ServiceManager.addService来实现插入操作,由此实现对本方法的实例化程序的成功运行,不仅使本方法的主进程常驻内存,而且由其建立的通信服务进程也成为系统级别的通信接口。需要注意的是,所述通信服务进程通过上述的配置,已经成为系统级别的服务进程级别,其权限显然高于其他外部应用进程甚至所述主进程和其它进程等这些调用它的进程的权限,因此该通信服务进程可以作为通信基础,为其他调用它的进程提供通信保障,完成系统与其他调用它的进程之间的通信连接。由此也可以进一步推知,其他任何遵守本发明的通信接口的通信规范的客户端,均可通过Binder机制与本发明的通信接口进行通信,获取相应的权限。
[0046]因此,所述的通信接口,在本实施例中表现为所述的通信服务进程,其功能用于实现主进程与外部应用进程之间的Binder通信,这种通信方式具有快速稳定的特点。对于本方法的核心要旨而言,所述通信服务进程主要用于监听外部应用进程所发起的权限请求,这一权限请求一般即是指期望获得Root权限实现对系统资源的深层访问的提权请求。对于本方法而言,除所述通信服务进程可用于建立通信接口外,当然,也可以通过其它进程来实现其它不同的功能,并且这些其它进程可以借助所述的通信服务进程与外部应用进程进行通信,从而内外结合完成其它特殊操作指令。例如,这些其它进程可以执行如下一种或多种操作,且不受此处的局限:执行预置应用的卸载、执行应用程序的安装或卸载、执行应用数据的备份或还原、执行应用程序的启用或禁用等。
[0047]所述的通信接口,成为进程间通信基础后,便可实现对外部应用进程的监听,当外部应用进程需要获得Root权限时,便会向系统发送获取Root权限的权限请求,通信服务进程由于其所处级别较高,便能优先获得并处理这一用户请求。通信服务进程获得该权限请求后,便可将其提交给本发明所述的主进程,由主进程做进一步的处理。
[0048]S12、依据该权限请求获得请求方的特征标识,在预置的认证列表中检索该特征标识是否处于被允许的状态:
[0049]众所周知的,Android系统中对UID (User Identifier,用户标识)的定义,是为每一个具体应用所特定的识别符号,具有唯一特征,因此,UID即是每个具体应用的唯一性的特征标识。本实施例中,本方法所实现的主进程,从通信接口转发的源自外部应用程序的进程的权限请求中,可以获得该外部应用程序进程的特征标识,依据该特征标识可以进一步识别相应的应用程序,并且决定是否予以开放权限请求响应。
[0050]本步骤中,藉由用于实现本步骤的主进程还负责一个认证列表的维护。该认证列表可以采用多种形式实现,各种形式的不同主要体现在其内部映射关系上,以下列举两种形式供参照:
[0051]A、可以仅仅存储每个默认允许获得Root权限的应用程序的WD,由此,进入该认证列表的特征标识所对应的应用程序,便被视为期望获得Root权限的请求,处于被允许的状态,将得到满足。
[0052]B、可以在A方案的认证列表中增加一个状态标识字段,为每个特征标识对应映射一个状态标识字符,例如,当某个WD所在的记录的状态标识字符为“Y”时,表征该WD所对应的权限请求为被允许状态;当为“N”时,表征该UID所对应的权限请求为非被允许状态。
[0053]除以上两种方式实现所述认证列表之外,为了便于进程调度,可以进一步增加进程标识PID,在主进程的生命周期中,并且在外部应用程序进行首次发送权限请求时,从中获得对应的PID,存储到认证列表中,供所述外部应用进程在下次发起权限请求时对照使用,以PID和UID共同决定权限请求的被允许状态。如此,可以进一步将权限请求管理细化到外部应用程序的子进程。
[0054]当以本方法实现的主进程收到通信接口转发的权限请求之后,提取其中的UID (以及PID,下同),然后以该WD去所述认证列表中检索,对于方式A,当认证列表中存在该WD时,即可确认所述WD所对应的权限请求应当被允许,如果认证列表中没有对应的UID,则表征该WD未被允许;对于方式B,当认证列表中存在该WD并且其状态标识字段的状态标识符为“Y”时,表征该UID所对应的权限请求应当被允许,反之,状态标识符为“N”时,表征该UID所对应的权限请求未被允许。
[0055]可以看出,采用本发明的认证列表,通过获取系统Root权限后启动具有Root权限的服务进程并向系统中插入通信服务进程,即可使调用通信服务进程的外部应用进程执行相应操作时无需重复申请Root权限,而可通过启动的主进程来执行相应操作,有效地避免了因Root权限正在使用或被禁用所带来的操作失败,进而大大提高了数据通信的效率。
[0056]所述的认证列表中原始数据的获取,可以是在本方法的历史使用过程中,依用户使用习惯而生成。例如,用户首次针对某个外部应用程序进程的请求,给予一个允许其获取Root权限的主观指示,即被本发明的主进程添加到该认证列表中,标记为被允许获取相应权限的状态,后续便可免弹窗询问。所述的认证列表也可以被远程维护,通过所述的主进程调用远程通信接口,定时或不定时地从云端下载最新的认证列表数据,以更新本地的认证列表,由此可以发挥大数据优势,使认证列表中的数据更具安全性。
[0057]适应上述情况,云端维护一张公共认证列表,由安装有以本发明的方法的程序的主进程上传用户针对各程序UID所做出的允许获取权限与否的数据,然后根据统计方法对各个UID进行统计,当多数用户例如60%允许某个UID可以获取Root权限时,标记该WD对应的状态标识字为“Y”,否则,标记为“N”。本地主进程通过远程接口下载该公共认证列表中,与本地的认证列表进行比对,在尊重用户主观指示的基础上,添加公共认证列表中的新增记录到本地认证列表中。当然,为了安全起见,可以针对两个表中,UID相同而状态不同的记录进行弹窗询问,看用户是否采用公共认证列表的数据,如果用户选择是,则将公共认证列表的该UID相关的记录替换本地认证列表的相应记录,如果不是,则放弃后续操作。可以看出,通过这种方式可以实现对认证列表的动态维护,使认证列表在技术实现的角度大大发挥了其安全作用。
[0058]可以理解,云端维护的公共认证列表的形式应不局限于所述WD、PID的字段信息,进一步可以推广到为其添加调用该通信服务进程的程序或者服务的签名信息等,使得通信服务进程可以进一步通过验证发起权限请求的程序或服务的签名信息来确定是否为其开放Root权限,强化其安全防护效果。
[0059]需要指出的是,所述的认证列表的存储形式,既可以是内存中的链表,也可以是存储于本地的数据库或文本文件的形式,可由本领域技术人员灵活实现。
[0060]S13、当该特征标识为被允许状态时,为该权限请求向系统申请权限。
[0061]通过前一步骤的实施,便可判断一个权限请求是所对应的特征标识是否为被允许状态,如果是,则可由本发明所实现的主进程为该权限请求放行,为该权限请求系统的Root权限,由系统向相应的外部应用程序进程开放Root权限。而如果前一步骤获得的结果是相应的特征标识为非被允许状态,那么,主进程可以拒绝该权限请求,通过其通信接口向外部应用进程返回假消息,使得外部应用进程所发放的权限请求无功而返;或者,也可直接返回权限请求不成功的回复。
[0062]通过本发明以上关于其权限请求响应方法,可以实现运行更高效的权限管理机制,不仅确保各进程之间的通信更为快速有效,而且在技术层面上,通过认证列表的作用,也能使得权限管理更为安全。
[0063]相应的,本发明可以依照前述的方法而提供一种权限请求响应装置,借助该装置所实现的各个模块,分别实现该方法的各个步骤,也可实现相应的功能。该装置可以在处理器上以逻辑功能的方式集中实现。请参阅图2,具体而言,本发明提供的权限请求响应装置,包括通信接口 U、检索单元12以及处理单元13。
[0064]所述的通信接口 11,由一运行于内存中的通信服务进程构建,通过内存中的相应主进程实现如前所述的提权操作后,向系统注册一个通信服务进程而实现。以Android为例,该通信服务进程基于Android系统所提供的Binder机制,向System Manager注册自身,通过Android提供的固有的Binder机制,在通信服务进程与其监听的外部应用进程之间建立C/S架构的沟通管道,通信服务进程便形成了所述的通信接口 11。具体而言,当获取到系统的Root权限后,为了便于后续实现对外部应用进程的监听以及相关操作功能,本发明通过一主进程在系统中插入所述通信服务进程,例如可通过系统调用函数ServiceManager.addService来实现插入操作,由此,不仅能使该主进程常驻内存,而且由其建立的通信服务进程也成为系统级别的通信接口 11。需要注意的是,所述通信服务进程通过上述的配置,已经成为系统级别的服务进程级别,其权限显然高于其他外部应用进程甚至所述主进程和其它进程等这些调用它的进程的权限,因此该通信服务进程可以作为通信基础,为其他调用它的进程提供通信保障,完成系统与其他调用它的进程之间的通信连接。
[0065]因此,所述的通信接口 11,在本实施例中表现为所述的通信服务进程,其功能用于实现主进程与外部应用进程之间的Binder通信,这种通信方式具有快速稳定的特点。对于本装置的核心要旨而言,所述通信服务进程主要用于监听外部应用进程所发起的权限请求,这一权限请求一般即是指期望获得Root权限实现对系统资源的深层访问的提权请求。对于本装置而言,除所述通信服务进程可用于建立通信接口 11外,当然,也可以通过其它进程来实现其它不同的功能,并且这些其它进程可以借助所述的通信服务进程与外部应用进程进行通信,从而内外结合完成其它特殊操作指令。例如,这些其它进程可以执行如下一种或多种操作,且不受此处的局限:执行预置应用的卸载、执行应用程序的安装或卸载、执行应用数据的备份或还原、执行应用程序的启用或禁用等、执行内存清理功能等。
[0066]所述的通信接口 11,成为进程间通信基础后,便可实现对外部应用进程的监听,当外部应用进程需要获得Root权限时,便会向系统发送获取Root权限的权限请求,通信服务进程由于其所处级别较高,便能优先获得并处理这一用户请求。通信服务进程获得该权限请求后,便可将其提交给本发明所述的主进程,由主进程做进一步的处理。
[0067]所述的检索单元12,用于依据该权限请求获得请求方的特征标识,在预置的认证列表中检索该特征标识是否处于被允许的状态。
[0068]众所周知的,Android系统中对UID (User Identifier,用户标识)的定义,是为每一个具体应用所特定的识别符号,具有唯一特征,因此,UID即是每个具体应用的唯一性的特征标识。本实施例中,本装置所实现的主进程,从通信接口 11转发的源自外部应用程序的进程的权限请求中,可以获得该外部应用程序进程的特征标识,依据该特征标识可以进一步识别相应的应用程序,并且决定是否予以开放权限请求响应。
[0069]本检索单元12中,藉由用于实现本检索单元12的主进程还负责一个认证列表的维护,基于此而构建一维护单元(未图示),用于维护所述的认证列表。逻辑上,该维护单元可以与本检索单元12合二为一,也可相互独立。该认证列表可以采用多种形式实现,各种形式的不同主要体现在其内部映射关系上,以下列举两种形式供参照:
[0070]A、可以仅仅存储每个默认允许获得Root权限的应用程序的WD,由此,进入该认证列表的特征标识所对应的应用程序,便被视为期望获得Root权限的请求,处于被允许的状态,将得到满足。
[0071]B、可以在A方案的认证列表中增加一个状态标识字段,为每个特征标识对应映射一个状态标识字符,例如,当某个WD所在的记录的状态标识字符为“Y”时,表征该WD所对应的权限请求为被允许状态;当为“N”时,表征该UID所对应的权限请求为非被允许状态。
[0072]除以上两种方式实现所述认证列表之外,为了便于进程调度,可以进一步增加进程标识PID,在主进程的生命周期中,并且在外部应用程序进行首次发送权限请求时,从中获得对应的PID,存储到认证列表中,供所述外部应用进程在下次发起权限请求时对照使用,以PID和UID共同决定权限请求的被允许状态。如此,可以进一步将权限请求管理细化到外部应用程序的子进程。
[0073]当以本装置实现的主进程收到通信接口 11转发的权限请求之后,提取其中的UID(以及PID,下同),然后以该WD去所述认证列表中检索,对于方式A,当认证列表中存在该WD时,即可确认所述WD所对应的权限请求应当被允许,如果认证列表中没有对应的UID,则表征该WD未被允许;对于方式B,当认证列表中存在该WD并且其状态标识字段的状态标识符为“Y”时,表征该UID所对应的权限请求应当被允许,反之,状态标识符为“N”时,表征该UID所对应的权限请求未被允许。
[0074]可以看出,采用本发明的认证列表,通过获取系统Root权限后启动具有Root权限的服务进程并向系统中插入通信服务进程,即可使调用通信服务进程的外部应用进程执行相应操作时无需重复申请Root权限,而可通过启动的主进程来执行相应操作,有效地避免了因Root权限正在使用或被禁用所带来的操作失败,进而大大提高了数据通信的效率。
[0075]所述认证列表的维护,由所述维护单元实现,包括如何使认证列表形成基础数据和如何更新其中的数据。
[0076]所述的认证列表中原始数据的获取,可以是在本装置的历史使用过程中,依用户使用习惯而生成。例如,用户首次针对某个外部应用程序进程的请求,给予一个允许其获取Root权限的主观指示,即被本发明的主进程添加到该认证列表中,标记为被允许获取相应权限的状态,后续便可免弹窗询问。所述的认证列表也可以结合云端进行远程维护,通过所述的主进程调用远程通信接口 11,定时或不定时地从云端下载最新的认证列表数据,以更新本地的认证列表,由此可以发挥大数据优势,使认证列表中的数据更具安全性。
[0077]适应上述情况,云端维护一张公共认证列表,由安装有以本发明的主进程上传用户针对各程序UID所做出的允许获取权限与否的数据,然后根据统计方法对各个UID进行统计,当多数用户例如60%允许某个HD可以获取Root权限时,标记该UID对应的状态标识字为“Y”,否则,标记为“N”。本地主进程通过远程接口下载该公共认证列表中,与本地的认证列表进行比对,在尊重用户主观指示的基础上,添加公共认证列表中的新增记录到本地认证列表中。当然,为了安全起见,可以针对两个表中,UID相同而状态不同的记录进行弹窗询问,看用户是否采用公共认证列表的数据,如果用户选择是,则将公共认证列表的该UID相关的记录替换本地认证列表的相应记录,如果不是,则放弃后续操作。显然,本地端的这些操作,应由所述的维护单元中的认证列表动态更新模块来实现,这样更符合逻辑划分。维护单元还可以进一步包括一程序升级模块,用于跟进本发明所实现的程序的动态更新。可以看出,通过这种方式可以实现对认证列表的动态维护,使认证列表在技术实现的角度大大发挥了其安全作用。
[0078]需要指出的是,所述的认证列表的存储形式,既可以是内存中的链表,也可以是存储于本地的数据库或文本文件的形式,可由本领域技术人员灵活实现。
[0079]所述的处理单元13,当该特征标识为被允许状态时,用于为该权限请求向系统申请权限;当该特征标识为未被允许状态时,用于拒绝该权限请求。
[0080]通过检索单元12的处理,便可判断一个权限请求是所对应的特征标识是否为被允许状态,如果是,则可由本发明所实现的主进程为该权限请求放行,为该权限请求系统的Root权限,由系统向相应的外部应用程序进程开放Root权限。而如果检索单元12获得的结果是相应的特征标识为非被允许状态,那么,主进程可以拒绝该权限请求,通过其通信接口 11向外部应用进程返回假消息,使得外部应用进程所发放的权限请求无功而返;或者,也可直接返回权限请求不成功的回复。
[0081]需要注意的是,Root权限的获取方式,从权限作用的生命周期来看,包括永久Root权限和临时Root权限,顾名思义,永久Root权限情况下,应用程序一经Root授权,以后可不必再进行Root提权操作;而临时Root权限情况下,权限作用的生命周期只是操作系统的一次从开机到关机的过程,下次开机依然需要进行Root。本发明的实现不受这种分类限制,但可以依据这两种不同方式来做可选的程序实现。例如,可以提供用户界面供用户选定是否进行永久Root或临时Root,结合所述本地认证列表中为各WD附加是否永久Root或临时Root的类型标识,然后按照不同的标识对发起请求的用户程序/进程做不同的权限请求开放处理。
[0082]如前所述,本发明可以通过服务进程来实现权限请求后的后续指令执行。服务进程可以是独立的,为说明的方便,称其为指令服务进程。当本发明实现权限管理的相关服务进程为用户权限请求成功获取系统Root权限后,即可绑定该服务进程与发起权限请求的用户进程之间的直接通信,然后,由用户进程向该服务进程发送指令,例如:执行预置应用的卸载、执行应用程序的安装或卸载、执行应用数据的备份或还原、执行应用程序的启用或禁用等、执行内存或缓存清理功能等。该服务进程构造有执行这些功能的函数,服务进程通过解析用户进程的指令,调用与用户目标功能相应的函数,实现相应的功能,从而解决用户的需求。
[0083]综上,通过上述的实施例可以看出,本发明的所实现的权限请求管理功能,具有通信快速高效、技术安全可靠的特点。
[0084]以上所述仅是本发明的部分实施方式,应当指出,对于本【技术领域】的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
【权利要求】
1.一种权限请求响应方法,其特征在于,包括以下步骤: 启动属于系统级别的通信接口,通过该通信接口监听外部权限请求; 依据该权限请求获得请求方的特征标识,在预置的认证列表中检索该特征标识是否处于被允许的状态; 当该特征标识为被允许状态时,为该权限请求向系统申请权限。
2.根据权利要求1所述的权限请求响应方法,其特征在于,所述系统级别的通信接口,是指基于Android的Binder机制而建立的通信服务进程,用于与发起权限请求的外部应用进程通信。
3.根据权利要求1所述的权限请求响应方法,其特征在于,所述的特征标识,是指Android系统中的WD,每个UID对应于一个应用。
4.根据权利要求1所述的权限请求响应方法,其特征在于,所述预置的认证列表,存储有若干特征标识,特征标识在认证列表中的存在,表征该特征标识为被允许状态。
5.根据权利要求1所述的权限请求响应方法,其特征在于,所述预置的认证列表,存储有若干特征标识和对应每个特征标识设置的状态识别字段,当某个特征标识的相应的状态识别字段被设置为表征被允许的符号时,以该符号表征该特征标识为被允许状态。
6.根据权利要求1至5中任意一项所述的权限请求响应方法,其特征在于,其包括以下步骤:从远程接口获取公共认证列表数据并更新本地的所述认证列表。
7.根据权利要求1至5中任意一项所述的权限请求响应方法,其特征在于,当采用该权限请求成功获取Root权限后,绑定发起该权限请求的用户进程与服务进程的通信,该服务进程用于响应执行由用户进程请求执行的指令。
8.根据权利要求1至5中任意一项所述的权限请求响应方法,其特征在于,本地的所述认证列表中,设置有用于表征与所述特征标识相对应的用户程序的权限作用周期的类型标识,在向系统申请权限时,对应所述类型标识申请不同类型的权限。
9.一种权限请求响应装置,其特征在于,其包括: 通信接口,被以系统级别的方式启动,用于监听外部权限请求; 检索单元,用于依据该权限请求获得请求方的特征标识,在预置的认证列表中检索该特征标识是否处于被允许的状态; 处理单元,当该特征标识为被允许状态时,用于为该权限请求向系统申请权限。
10.根据权利要求9所述的权限请求响应装置,其特征在于,所述通信接口,为基于Android的Binder机制而建立的置于系统级别的通信服务进程,通过与外部应用进程通信获取所述权限请求。
【文档编号】G06F21/45GK104346559SQ201410696530
【公开日】2015年2月11日 申请日期:2014年11月26日 优先权日:2014年11月26日
【发明者】宋振涛, 马金亭, 邹勇 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1