一种文件处理的方法、系统及装置的制作方法

文档序号:6434450阅读:99来源:国知局
专利名称:一种文件处理的方法、系统及装置的制作方法
技术领域
本发明涉及操作系统技术领域,特别涉及一种文件处理的方法、系统及装置。
背景技术
近年来,Android操作系统由于它的开源性,越来越被广泛应用,采用android系 统开发的智能手机、平板电脑等嵌入式设备层出不穷。
Android操作系统是基于Linux 2. 6内核的操作系统,它分为四个层linux内核 层,系统运行库层,应用程序框架层和应用程序层。其中,Linux内核层,即kernel层包括 了 Android的核心系统服务,如安全性,内存管理,进程管理等;系统运行库层主要包括程 序库和android运行库,程序库能被Android系统中不同的组件使用,Android运行库提供 了 JAVA编程语言核心库的大多数功能;应用程序框架层是核心应用所使用的API框架,开 发人员同样可以使用这些框架来开发自己的应用;应用程序层是用Java语言编写的运行 在虚拟机上的程序。
由于Android是基于Linux内核的,所以Android的安全系统也是基于Linux的安 全架构建立的。Linux是一个多用户、多任务的操作系统,用户和组件起着重要的作用,不同 的用户和组件对同一文件的访问属性不同,这样使Linux系统更为安全。因此,在Android 操作系统中,系统为每一个应用程序创建了一个用户和组件。这些用户和组件都是普通用 户,不能访问Iinux内核层的数据,只能访问对应应用程序的文件和目录,也不能访问其他 应用程序的数据。这样保护应用程序的私有数据,将应用与应用,应用与系统隔离开,增强 系统的安全性和健壮性。
可见,目前Android操作系统中,每个应用程序只有系统(system)权限,而没有最 高权限,即根(root)权限,从而,只能对私有数据进行操作,这样,虽然增强了系统的安全 性,但同时也带来了一些问题。当应用层的程序,即应用程序需要对系统文件进行一些操作 时,如向系统目录下拷贝或修改文件内容、属性,配置网络地址等,这些都需要拥有最高权 限(root权限)的用户才能够操作,由于应用程序只有system权限,因此,不能执行这些操 作。发明内容
本发明实施例提供一种文件处理的方法、系统及装置,用以在保证Android操作 系统的安全性的同时,提高Android操作系统的文件处理能力。
本发明实施例提供一种文件处理的方法,包括
内核层接收应用程序层发送的报文;
所述内核层对接收到的报文进行验证,验证通过时,执行所述报文中包括的所述 应用程序层没有权限执行的文件处理命令。
本发明实施例提供一种文件处理的系统,包括应用程序层和内核层,其中,
所述应用程序层,用于向所述内核层发送报文;
所述内核层,用于接收所述报文,并对接收到的报文进行验证,验证通过时,执行 所述报文中包括的所述应用程序层没有权限执行的文件处理命令。
本发明实施例提供一种业务处理的装置,应用于内核层中包括
接收单元,用于接收应用程序层发送的报文;
处理单元,用于对接收到的报文进行验证,验证通过时,执行所述报文中包括的所 述应用程序层没有权限执行的文件处理命令。
本发明实施例提供一种业务处理的装置,应用于应用程序层中,包括
获取单元,用于获取第一报文验证码;
组建单元,用于根据所述第一报文验证码,以及所述应用程序层没有权限执行的 文件处理命令,组建报文,其中,所述报文的包头为加密后的第一报文验证码,所述报文的 消息体为所述应用程序层没有权限执行的文件处理命令;
发送单元,用于通过socket通信协议,将所述报文发送给所述内核层。
本发明实施例中,Android操作系统中的应用程序层没有权限执行的文件处理命 令时,将该文件处理命令生成报文发送给内核层,该内核层具有最高权限,这样,内核层接 收到报文后,对该报文进行验证,验证通过时,执行所述报文中包括的所述应用程序层没有 权限执行的文件处理命令。从而,只有system权限的应用程序层可通过具有root权限的 内核层对系统文件进行处理,提高Android操作系统的文件处理能力。并且,所有的系统文 件都只是由内核层进行处理,每个应用程序的私有数据仍各自隔离,确保了操作系统的安 全性。


图1为本发明实施例中文件处理的流程图2为本发明实施例中文件处理系统的架构图3为本发明实施例中内核层中文件处理装置的结构图4为本发明实施例中应用程序层文件处理装置的结构图。
具体实施方式
本发明实施例中,Android操作系统的Iinux内核层即kernel层具有root权限, 可对系统文件进行处理,这样,当Android操作系统的应用层的程序需对系统文件进行处 理时,因其不具备root权限,则须将该任务发送给kernel层,由kernel层执行该任务。从 而,在保证系统的安全性的同时,提高了文件处理能力。
本发明实施例中,Android操作系统中的应用程序需要对系统文件进行一些操 作时,如向系统目录下拷贝或修改文件内容、属性,配置网络地址等,由于应用程序只有 system权限,因此,不能执行这些操作,须将这些没有权限执行的文件处理命令发送给内核 层,由内核层执行,即只有system权限的应用程序层可通过具有root权限的内核层对系统 文件进行处理。
参见图1,Android操作系统中文件处理的过程包括
步骤101 :应用程序层向内核层发送报文,该报文中包括的所述应用程序层没有 权限执行的文件处理命令。
应用程序层执行文件处理命令前,可判断是否有权限执行该文件处理命令,当确 定没有权限执行该文件处理命令时,向内核层发送报文,该报文中包括的所述应用程序层 没有权限执行的文件处理命令。
这里,应用程序层可直接向内核层发送携带文件处理命令的报文。还可以组件一 个安全的报文,然后再发送,其具体过程包括
获取第一报文验证码,并根据第一报文验证码,以及应用程序层没有权限执行的 文件处理命令,组建报文,最后,通过socket通信协议,将报文发送给内核层。其中,报文的 包头为加密后的第一报文验证码,报文的消息体为所述应用程序层没有权限执行的文件处 理命令。
即可通过应用程序层的用户界面获取第一报文验证码,或者,从系统的存储单元 中获取第一报文验证码,然后对该第一报文验证码进行加密,将加密后的第一报文验证码 作为报文的包头,将应用程序层没有权限执行的文件处理命令作为报文的消息体,然后,通 过socket通信协议,将报文发送给内核层。
另外,本发明实施例中,还可直接采用报文验证码对文件处理命令进行加密,生成 报文,将该报文发送给内核层。
步骤102 :内核层接收应用程序层发送的报文。
内核层与应用程序层之间可采用多种通信协议。例如步骤101中,应用程序层通 过socket通信协议,将报文发送给内核层,这里,内核层监听socket端口,通过该socket 端口接收应用程序层发送的报文。当然,本发明实施例还包括别的通信协议,例如比如共 享文件,消息邮箱等。
步骤103 :内核层对接收到的报文进行验证,验证通过时,执行步骤104,否则,流程结束。
本发明实施例中可只对报文的包头进行验证,或只对报文的消息体进行验证,或 者,对报文的包头以及消息体都进行验证。其中,
对报文的包头进行验证时,组建报文的方式不同,内核层对报文的验证过程也不 同,即验证过程的解密协议与组建报文过程中的加密协议一致。例如,报文的包头加密了, 验证过程包括
对接收的报文的包头进行解密,获得第二报文验证码,将第二报文验证码与保存 的第一报文验证码进行比对,当两者一致时,对报文的包头验证通过;否则,验证未通过。
本发明实施例中,可以对内核层放开权限,即所有的文件处理命令都可以执行,因 此,这里,不需对报文的消息体进行验证,当对报文的包头验证通过时,即可执行步骤104, 否则,流程结束。
本发明另一实施例中,还可只对内核层部分开放权限,即内核层只能执行部分的 文件处理命令,因此,内核层中保存了可执行的文件处理命令,对报文的包头验证通过之 后,还需对报文的消息体进行验证。具体过程包括
内核层在保存的可执行的文件处理命令中查找是否有接收到的报文的消息体中 的文件处理命令;若有,确定该报文为合法报文,执行步骤104,否则,流程结束。这样,只对 内核层部分开放权限,进一步提高了操作系统的安全性。
当然,本发明另一实施例中,可只对报文的消息体进行验证,即内核层在保存的可执行的文件处理命令中查找是否有接收到的报文的消息体中的文件处理命令;若有,确定 该报文为合法报文,执行步骤104,否则,流程结束。
步骤104 :内核层执行报文中包括的应用程序层没有权限执行的文件处理命令, 文件处理过程结束。
内核层对接收的报文验证通过了,即可执行报文消息体中的应用程序层没有权限 执行的文件处理命令,实现文件的处理。
本发明实施例中,对内核层可通过调用execve (const char*filename, char*const argv [], char*const envp[])函数执行应用层程序没有权限执行的文件处理 命令。
在上述文件处理过程,Android操作系统中的应用程序层可通过内核层对系统文 件进行操作,提高了 Android操作系统的文件处理能力。同时,所有的系统文件都只是由内 核层进行处理,每个应用程序的私有数据仍各自隔离,确保了操作系统的安全性。
本发明实施例中,Android操作系统的内核层必须有最高权限,因此,在内核层 接收应用程序层发送的报文之前,还需激活内核层,使内核层具有最高权限。一般应用 Android操作系统的终端开机时,该Android操作系统的内核层就被激活。这里,可在 Android操作系统的init. rc文件中定义一个服务myserver,将内核层编译好的可执行程 序server放入/system/bin目录下,把内核层程序server定义为要运行的服务,如下
service myserver/system/bin/server
这样,myserver就有了 root权限。由于init. rc文件是在安装Android操作系 统的开机的时候被系统调用,所以每次开机的时候服务myserver就会被创建。
采用了 Android操作系统的终端都可通过上述方法对文件进行处理。例如采用 了 Android操作系统的家庭信息终端通过上述方法进行网络地址配置。应用程序层的网络 地址配置模块获得终端用户输入的IP地址、子网掩码、网关地址和DNS后,该配置模块中将 它们组建成报文的消息体,并获取报文验证码进行加密,将加密后的验证码作为报文的包 头,与内核层的server进行通信,将报文发送给内核层的server。
内核层的server收到报文后,将报文进行解析并验证,如果是合法的报文,就获 取消息体中的IP地址、子网掩码等相关信息,并调用配置网络的命令进行网络配置。这样 就实现了在应用层配置网络地址,即实现了系统文件的处理。
其中,内核层具有全部权限时,内核层的server可只对报文的包头进行验证。若 内核层只有部分权限,此时,内核层的server对报文的包头进行验证后,还需判断能否执 行配置网络的命令,即在保存的可执行命令中查找是否有配置网络的命令,若有,就获取消 息体中的IP地址、子网掩码等相关信息,进行网络配置。否则,返回非法报文的指令。
由此可见,本发明实施例中,当应用程序需要对系统文件进行一些操作时,如向系 统目录下拷贝或修改文件内容、属性,配置网络地址等,虽然应用程序只有system权限,但 该应用程序可通过具有root权限的内核层来进行这些操作,,提高Android操作系统的文 件处理能力。
通过上述文件处理的方法,可知本发明实施例中的文件处理的系统,参见图2,包 括应用程序层100和内核层200,其中,
应用程序层100,用于向内核层200发送报文。
内核层200,用于接收报文,并对接收到的报文进行验证,验证通过时,执行报文中 包括的应用程序层100没有权限执行的文件处理命令。
该系统中,应用程序层100,具体用于获取第一报文验证码,根据第一报文验证码, 以及应用程序层没有权限执行的文件处理命令,组建报文,通过socket通信协议,将报文 发送给内核层,其中,报文的包头为加密后的第一报文验证码,报文的消息体为应用程序层 没有权限执行的文件处理命令。
内核层200,具体用于监听socket端口,通过socket端口接收应用程序层发送的 报文,对接收的报文的包头进行解密,获得第二报文验证码,将第二报文验证码与保存的第 一报文验证码进行比对,当两者一致时,对所述报文的包头验证通过,执行报文中包括的应 用程序层没有权限执行的文件处理命令。
本发明实施例中应用程序层100组建报文的方式可以有多种,内核层200对报文 的验证过程也有多种,一般,程序层100组建报文过程中的加密协议与内核层200验证过程 的解密协议一致。
另外,应用程序层100与内核层200的通信协议也可以有多种,并不限于socket 通信协议。
内核层200可以对所有的文件处理命令都可以执行,或者,内核层200只能有部分 权限,只能执行部分的文件处理命令。
当该内核层200只具有部分权限时,具体用于在保存的可执行的文件处理命令中 查找是否有所述报文的消息体中的文件处理命令,若有,确定所述报文为合法报文。
该文件处理系统中,还包括激活装置,用于激活所述内核层,使所述内核层具有最 高权限。
在上述操作系统中,应用于内核层中的文件处理的装置,参见图3,包括接收单 元310和处理单元320。
接收单元310,用于接收应用程序层发送的报文。
处理单元320,用于对接收到的报文进行验证,验证通过时,执行所述报文中包括 的所述应用程序层没有权限执行的文件处理命令。
其中,接收单元310,具体用于监听socket端口,通过所述socket端口接收应用程 序层发送的报文。
处理单元320,具体用于对接收的报文的包头进行解密,获得第二报文验证码,将 所述第二报文验证码与保存的第一报文验证码进行比对,当两者一致时,验证通过,执行所 述报文中包括的所述应用程序层没有权限执行的文件处理命令。
该处理单元320,具体用于在保存的可执行的文件处理命令中查找是否有所述报 文的消息体中的文件处理命令,若有,确定所述报文为合法报文。
在上述操作系统中,应用于应用程序层中的文件处理的装置,参见图4,包括获 取单元410,组建单元420,和发送单元430。
获取单元410,用于获取第一报文验证码。
组建单元420,用于根据第一报文验证码,以及应用程序层没有权限执行的文件处 理命令,组建报文,其中,报文的包头为加密后的第一报文验证码,报文的消息体为应用程 序层没有权限执行的文件处理命令。
发送单元430,用于通过socket通信协议,将报文发送给内核层。
上述所有的实施例中都是以Android操作系统为例进行描述的,但是本发明实施 例不限于此,基于Linux内核层的所有操作系统都可以应用到上述所有的实施例中,例如塞班系统。
本发明实施例中,基于Linux内核层的操作系统中的应用程序层没有权限执行 的文件处理命令时,将该文件处理命令生成报文发送给内核层,该内核层具有最高权限, 这样,内核层接收到报文后,对该报文进行验证,验证通过时,执行所述报文中包括的所述 应用程序层没有权限执行的文件处理命令。这样,基于Linux内核层的操作系统中只有 system权限的应用程序层可通过具有root权限的内核层对系统文件进行操作,提高了基 于Linux内核层的操作系统的文件处理能力。同时,所有的系统文件都只是由内核层进行 处理,每个应用程序的私有数据仍各自隔离,确保了操作系统的安全性。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精 神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围 之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种文件处理的方法,其特征在于,包括 内核层接收应用程序层发送的报文; 所述内核层对接收到的报文进行验证,验证通过时,执行所述报文中包括的所述应用程序层没有权限执行的文件处理命令。
2.如权利要求1所述的方法,其特征在于,所述应用程序层发送报文包括 获取第一报文验证码; 根据所述第一报文验证码,以及所述应用程序层没有权限执行的文件处理命令,组建报文,其中,所述报文的包头为加密后的第一报文验证码,所述报文的消息体为所述应用程序层没有权限执行的文件处理命令; 通过socket通信协议,将所述报文发送给所述内核层。
3.如权利要求2所述的方法,其特征在于,所述内核层接收应用程序层发送的报文包括 所述内核层监听socket端口,通过所述socket端口接收所述应用程序层发送的报文。
4.如权利要求2所述的方法,其特征在于,所述内核层对接收到的报文进行验证包括 对接收的报文的包头进行解密,获得第二报文验证码; 将所述第二报文验证码与保存的第一报文验证码进行比对,当两者一致时,对所述报文的包头验证通过。
5.如权利要求2或4所述的方法,其特征在于,所述内核层对接收到的报文进行验证包括 在保存的可执行的文件处理命令中查找是否有所述报文的消息体中的文件处理命令; 若有,确定所述报文为合法报文。
6.如权利要求1所述的方法,其特征在于,所述内核层接收应用程序层发送的报文之前,还包括 激活所述内核层,使所述内核层具有最高权限。
7.一种文件处理的系统,其特征在于,包括应用程序层和内核层,其中, 所述应用程序层,用于向所述内核层发送报文; 所述内核层,用于接收所述报文,并对接收到的报文进行验证,验证通过时,执行所述报文中包括的所述应用程序层没有权限执行的文件处理命令。
8.如权利要求7所述的系统,其特征在于, 所述应用程序层,具体用于获取第一报文验证码,根据所述第一报文验证码,以及所述应用程序层没有权限执行的文件处理命令,组建报文,通过socket通信协议,将所述报文发送给所述内核层,其中,所述报文的包头为加密后的第一报文验证码,所述报文的消息体为所述应用程序层没有权限执行的文件处理命令; 所述内核层,具体用于监听socket端口,通过所述socket端口接收所述应用程序层发送的报文,对接收的报文的包头进行解密,获得第二报文验证码,将所述第二报文验证码与保存的第一报文验证码进行比对,当两者一致时,对所述报文的包头验证通过,执行所述报文中包括的所述应用程序层没有权限执行的文件处理命令。
9.如权利要求8所述的系统,其特征在于,所述内核层,具体用于在保存的可执行的文件处理命令中查找是否有所述报文的消息体中的文件处理命令,若有,确定所述报文为合法报文。
10.如权利要求7所述的系统,其特征在于,还包括 激活装置,用于激活所述内核层,使所述内核层具有最高权限。
11.一种文件处理的装置,其特征在于,应用于内核层中,包括 接收单元,用于接收应用程序层发送的报文; 处理单元,用于对接收到的报文进行验证,验证通过时,执行所述报文中包括的所述应用程序层没有权限执行的文件处理命令。
12.如权利要求11所述的装置,其特征在于, 所述接收单元,具体用于监听socket端口,通过所述socket端口接收应用程序层发送的报文。
13.如权利要求11所述的装置,其特征在于, 所述处理单元,具体用于对接收的报文的包头进行解密,获得第二报文验证码,将所述第二报文验证码与保存的第一报文验证码进行比对,当两者一致时,对所述报文的包头验证通过,执行所述报文中包括的所述应用程序层没有权限执行的文件处理命令。
14.如权利要求11或13所述的装置,其特征在于, 所述处理单元,具体用于在保存的可执行的文件处理命令中查找是否有所述报文的消息体中的文件处理命令,若有,确定所述报文为合法报文。
15.一种文件处理的装置,其特征在于,应用于应用程序层中,包括 获取单元,用于获取第一报文验证码; 组建单元,用于根据所述第一报文验证码,以及所述应用程序层没有权限执行的文件处理命令,组建报文,其中,所述报文的包头为加密后的第一报文验证码,所述报文的消息体为所述应用程序层没有权限执行的文件处理命令; 发送单元,用于通过socket通信协议,将所述报文发送给所述内核层。
全文摘要
本发明公开了一种文件处理的方法、系统及装置,用以在保证Android操作系统的安全性的同时,提高Android操作系统的文件处理能力。该方法包括内核层接收应用程序层发送的报文,所述内核层对接收到的报文进行验证,验证通过时,执行所述报文中包括的所述应用程序层没有权限执行的文件处理命令。
文档编号G06F21/57GK103034811SQ20111029443
公开日2013年4月10日 申请日期2011年9月29日 优先权日2011年9月29日
发明者张宏海, 何晗春, 戴寅 申请人:北大方正集团有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1