用于终端权限管理的方法和终端的制作方法_2

文档序号:8259306阅读:来源:国知局
了根据本发明的用于终端权限管理的系统的示例应用场景的示意图。
[0034]图2是示出了根据本发明实施例的示例权限管理流程。
[0035]图3是示出了根据本发明实施例的用于终端权限管理的示例方法的流程图。
[0036]图4是示出了根据本发明实施例的执行图3所示方法的示例终端的框图。
【具体实施方式】
[0037]下面参照附图对本发明的优选实施例进行详细说明,在描述过程中省略了对于本发明来说是不必要的细节和功能,以防止对本发明的理解造成混淆。以下,以本发明应用于无线移动通信系统的场景为例,对本发明进行了详细描述。但本发明并不局限于此,本发明也可以应用于固定通信系统、有线通信系统,或者应用于无线移动通信系统、固定通信系统、有线通信系统等的任意混合结构。就移动通信系统而言,本发明并不局限于所涉及的各个移动通信终端的具体通信协议,可以包括(但不限于)2G、3G、4G、5G网络,WCDMA,CDMA2000、TD-SCDMA系统等,不同的移动终端可以采用相同的通信防议,也可以采用不同的通信协议。此外,本发明并不局限于移动终端的具体操作系统,可以包括(但不限于)1S、Windows Mobile、Symbian、Android等,不同的移动终端可以采用相同的操作系统,也可以采用不同的操作系统。
[0038]图1是示出了根据本发明的用于终端权限管理的系统1000的应用场景的示意图。如图1所示,系统1000可以包括终端100和服务器200。为了清楚起见,图中仅示出了一个终端100和一个服务器200,但本发明并不局限于此,可以包括两个或更多数目的终端和/或服务器等等。终端100可以属于用户或者可以由用户操作。终端100和服务器200可以通过通信网络300进行通信。通信网络300的示例可以包括(但不限于):互联网、移动通信网络、固定线路(如xDSL、光纤等)等。
[0039]在图1所示实施例中,为了在终端100上管理权限,将根据本发明的实施例的权限管理客户端150 (以下简称为客户端150)安装在终端100上。客户端150可以由用户以软件的形式白行安装在终端100中,或者可以由生产厂商以硬件或固件的形式安装在终端100中。在一些实施例中,客户端150可以是例如在用户购买了终端100之后从网络中下载的专门用于本发明的应用软件。在另一些实施例中,客户端150可以是例如由生产厂商以固件或硬件形式预先安装在终端100中的应用程序。在又一些实施例中,客户端150可以是由生产厂商生产的硬件模块或终端100本身。
[0040]如前文所述,在终端100上,当应用安装和/或应用(服务)运行时,应用都有可能发起ROOT权限请求,以获取ROOT权限。在一个实施例中,终端100可以采用如下文将结合图1和图2来描述的终端上的ROOT权限管理的示例流程。
[0041]I)、服务启动
[0042]首先,当终端100上的系统启动时,除了关键的系统服务之外,可以优先启动根据本发明实施例的白名单检测服务(下文中简称为Si),以确保在需要被监听的所有应用启动之前,SI就已经开始运行并监听所有ROOT权限请求。
[0043]此外,在一个实施例中,SI可以使用 Android NDK (Native Development Kit,即本地开发包)进行开发,并可以通过JNI (Java Native Interface,即Java本地接口 )方式调用安卓系统提供的内核系统调用接口,并从而实现本发明的功能。当然,SI也可以使用其他方式来开发并实现,本发明不限于此。
[0044]2)白名单审新
[0045]在一个实施例中,SI在启动时,可以首先发起更新过程。在更新过程中,SI首先可以通过比较终端100上保存的当前白名单文件的时间戳以及远程服务器(例如,服务器200)上的最新白名单文件的时间戳,来判断是否需要对本地的白名单进行更新。如果发现本地时间戳早于远程时间戳,则表明本地白名单文件需要更新。接下来,SI和远程白名单服务器将进行通讯,并下载最新白名单文件至指定的临时目录。在一个实施例中,通信可以通过HTTP(或可选的HTTPS)方式来进行。当然,在其他实施例中,通信也可以通过其他通信协议来进行,包括(但不限于):FTP、SFTP, TFTP等等。
[0046]在一个实施例中,当下载最新的白名单成功之后,可以首先将终端100上的现有(本地)白名单文件进行备份操作。这样,可以保证如果更新失败的话,能够使用备份的白名单文件来进行恢复,而不会造成无白名单可用的严重后果。
[0047]此外,SI会对下载后的白名单文件进行基本的完整性和有效性校验。例如,可以对下载后的白名单文件的数字签名和数字摘要进行验证,以确保其完整性和有效性。在确认下载的最新白名单文件无误后,可以将临时目录下的更新白名单文件保存至指定目标路径,例如,替换终端100上的白名单文件。
[0048]此外,可以将在更新过程(包括更新检查、更新操作、校验过程等)中产生的更新相关信息以日志方式加以记录。例如,在安卓系统中,可以将更新相关信息以默认WARNING和ERROR级别作为日志加以记录。日志可以通过明文文本文件方式存放在和白名单同级的目录下,例如系统中的 “/sdcard/whitelist/update.10g”。
[0049]3)白名单加载
[0050]在SI执行完白名单更新操作之后,可以读取更新过的本地白名单文件,并可以采用HASH MAP方式在内存中建立白名单列表项的列表队列。在一个实施例中,MAP格式可以如下所述:
[0051]〈应用(服务)名数字摘要〉
[0052]其中,“数字摘要”字段是前面对应应用的数字摘要值,可以使用例如以MD5、SHAl等算法获得的数字摘要值。该数字摘要值可以用于识别不同的应用和/或服务。
[0053]此外,白名单列表文件可以用加密文本文件方式存放在系统SD指定位置,例如“/sdcard/whitelist/list.data”。在一个实施例中,可以使用AES加密算法。当然,本发明不限于此,也可以使用其他加密算法,例如DES、3DES、椭圆曲线加密等等。
[0054]4)权限请求的检测和拦截
[0055]在加载白名单之后,SI可以调用监听模块(单元),对终端100上的应用安装、应用运行时的ROOT权限请求行为进行监听。该监听模块可以采用后台服务(service)方式运行。
[0056]由于在安卓系统中,应用通常可以采用以下方式向系统请求ROOT权限:
[0057]Process p = Runtime.getRuntime.exec(〃 su〃 );
[0058]因此,在一个实施例中,可以通过修改命令“su”(也可以是其他ROOT权限请求命令,例如“sudo”等),并在其处理流程中插入根据本发明实施例的权限控制模块来实现本发明实施例的解决方案。在另一个实施例中,也可以通过修改Runtime类的getRuntime.exec方法,对调用的命令进行判断。如果判断所调用的命令是“su”之类的ROOT权限请求命令,则同样可以在Runtime类的getRuntime.exec方法中插入根据本发明实施例的权限控制模块来实现本发明实施例的解决方案。当然,本发明不限于上述检测和拦截ROOT权限请求的方法。
[0059]5)白名单兀配
[0060]当SI发现了在应用安装或应用(服务)(例如,应用Al)运行时产生的ROOT权限请求
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1