一种调用系统命令的方法和装置与流程

文档序号:12363207阅读:175来源:国知局
一种调用系统命令的方法和装置与流程
本发明实施例涉及计算机
技术领域
,尤其涉及一种调用系统命令的方法和装置。
背景技术
:Android(安卓)系统处于系统安全的考虑,对运行在Android系统上的应用程序进行权限的细粒度管理和隔离,防止越权行为的发生和滥用权限获取敏感数据,即一般应用程序只具有APP(应用)权限,较核心的应用可具有System(系统)权限,具有APP权限的应用程序只能访问自己的文件和目录,不能访问系统的数据,具有System权限的应用程序可以在系统中创建和删除文件,访问设备等。而Android系统中的系统命令需要具有root权限才能执行,这就导致Android应用程序由于权限问题基无法使用现有的系统命令。但是,随着Android智能终端产品的普及,Android应用程序的功能也越来越丰富,用户对应用程序的需求也越来越多,而在实现各种功能需求的时候,常常因为权限的问题导致原本可通过现有的系统命令实现的功能变得更加复杂化。技术实现要素:本发明实施例提供一种调用系统命令的方法和装置,用以通过应用程序调用系统命令,从而应用程序在实现各种功能需求的时候更加简单化。本发明实施例提供一种应用程序调用系统命令的方法,包括:第一应用程序获取第二应用程序访问系统命令的请求消息,所述请求消息中携带有第二应用程序的标识以及第二应用程序的系统调用指令;所述第一应用程序将所述请求消息发送给位于系统核心层的服务进程,所述服务进程执行所述系统调用指令,并根据所述第二应用程序的标识将执行结果返回给所述第二应用程序,所述服务进程预先设置于系统核心层中。本发明实施例还提供一种应用程序调用系统命令的装置,包括:获取模块,用于获取第二应用程序访问系统命令的请求消息,所述请求消息中携带有第二应用程序的标识以及第二应用程序的系统调用指令;处理模块,用于将所述请求消息发送给位于系统核心层的服务进程,所述服务进程执行所述系统调用指令,并根据所述第二应用程序的标识将执行结果返回给所述第二应用程序,所述服务进程预先设置于系统核心层中。上述实施例提供的一种应用程序调用系统命令的方法和装置,包括:首先第一应用程序获取第二应用程序访问系统命令的请求消息,该请求消息中携带有第二应用程序的标识以及第二应用程序的系统调用指令;然后第一应用程序将请求消息发送给位于系统核心层的服务进程,由服务进程执行系统调用指令,并由服务进程根据第二应用程序的标识将执行结果返回给第二应用程序,其中,服务进程预先设置于系统核心层中。可以看出,第一应用程序获取第二应用程序访问系统命令的请求消息后,可将请求消息发送给位于系统核心层的服务进程,由服务进程执行请求消息中携带的第二应用程序的系统调用指令,并由服务进程将执行结果返还给第二应用程序,从而实现第二应用程序间接调用系统命令并获取调用系统命令的结果,进而使得第二应用程序在实现各种功能需求的时候更加简单化。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍。图1为本发明实施例提供的一种应用程序调用系统命令的方法流程示意图;图2为本发明实施例提供的通过合法签名列表对允许调用系统命令的第二应用程序的验证流程示意图;图3为本发明实施例提供的服务进程基于通信链路的基础上所执行的流程示意图;图4为本发明实施例提供的终端W的结构示意图;图5为本发明实施例提供的应用程序X通过绑定的套接字A与服务进程Y之间的交互流程示意图;图6为本发明实施例提供的一种应用程序调用系统命令的装置结构示意图。具体实施方式为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。需要说明的是,本发明实施例中的第一应用程序与第二应用程序并不相同,第二应用程序可为系统中的任意一个应用程序,而第一应用程序则具有获取第二应用程序调用系统命令的调用指令并将该调用指令发送给位于系统核心层的服务进程的功能。需要注意的是,本发明实施例提供的应用程序调用系统命令的方法并不仅限于应用于安卓系统中,凡是在系统中采用本发明实施例提供的应用程序调用系统命令的方法均属于本发明实施例所保护的范围。图1示例性示出了本发明实施例提供的一种应用程序调用系统命令的方法流程示意图,如图1所示,该流程可包括:S101、第一应用程序获取第二应用程序访问系统命令的请求消息,该请求消息中携带有第二应用程序的标识以及第二应用程序的系统调用指令。S102、第一应用程序将获取的第二应用程序访问系统命令的请求消息发送给位于系统核心层的服务进程,由该服务进程执行所述系统调用指令,并由服务进程根据第二应用程序的标识将执行结果返回给第二应用程序。其中,可将服务进程预先设置于系统核心层中。在上述步骤S101之前,第一应用程序还对第二应用程序访问的各种命令进行检测,当检测到第二应用程序访问系统命令失败时,获取第二应用程序的标识以及第二应用程序的系统调用指令。为了保障系统的安全性,可在系统中设置安全机制,即可在系统的应用程序框架层中预先存储合法签名列表,并在合法签名列表中存储允许调用系统命令的第二应用程序的签名值,以保证只有签名值位于合法签名列表中的第二应用程序才允许调用系统命令。当系统中预先存储上述合法签名列表时,并且在第一应用程序获取第二应用程序访问系统命令的请求消息之后,通过合法签名列表对允许调用系统命令的第二应用程序的验证流程,可参见图2。S201、第一应用程序获取第二应用程序访问系统命令的请求消息,该请求消息中携带有第二应用程序的标识以及第二应用程序的系统调用指令。S202、第一应用程序根据请求消息中携带的第二应用程序的标识,获取第二应用程序的签名值。具体的,第一应用程序可根据系统中第二应用程序的访问记录,获取第二应用程序的签名值,例如,获取第二应用程序的MD5值,并将获取的MD5值与合法签名列表中预存储的S203、判断预先存储的合法签名列表中是是否存在第二应用程序的签名值,若存在,则转至步骤S204,否则结束流程。S204、第一应用程序将请求消息发送给位于系统核心层的服务进程,由服务进程执行所述系统调用指令,并由服务进程根据第二应用程序的标识将执行结果返回给第二应用程序。优选的,还可在系统运行库层中预先设置套接字(socket),并将套接字的标识信息分别与服务进程和第一应用程序进行绑定,用以建立第一应用程序与服务进程之间的通信链路。基于第一应用程序与服务进程之间的通信链路的基础上,在第一应用程序将请求消息发送给服务进程后,服务进程所执行的流程,可参见图3。S301、服务进程从接收第一应用程序发送的请求消息,该请求消息中携带有第二应用程序的标识以及第二应用程序的系统调用指令。具体的,服务进程可通过监听通信链路的端口,等待接收第一应用程序发送的请求消息。S302、服务进程根据请求消息中携带的第二应用程序的系统调用指令,执行所述系统调用指令,获取执行结果,该执行结果中可携带有第二应用程序的标识。S303、服务进程将执行结果通过第一应用程序与服务进程之间的通信链路将执行结果返回给第一应用程序。第一应用程序在接收到服务进程返回的执行结果后,可根据执行结果中携带的第二应用程序的标识,将该执行结果发送给第二应用程序,以实现第二应用程序间接的调用系统指令。下面通过一个具体的例子对上述的方法流程进行详细的解释说明。在该例子中,预先在终端W的系统中设置应用程序X、服务进程Y、套接字A,并将服务进程Y设置于系统的核心层中,将应用程序X设置于系统的应用程序框架层中,将套接字A设置于系统的运行库层中,并将套接字A的标识信息分别发送给应用程序X以及服务进程Y。同时,还在系统的应用程序框架层中预先存储有合法签名列表1,预先存储在系统应用程序框架层中的合法签名列表1的内容,可参见表格1。表格1合法签名列表XXXYYY……假设终端W的系统的应用程序层中还存在应用程序B、应用程序C以及应用程序D,则终端W的结构示意图,可参见图4。进一步假设应用程序B的标识为111,并假设应用程序B在实现某种功能时需要执行系统调用指令“ping192.168.3.1”,由于系统调用指令ping192.168.3.1为系统命令,而应用程序B不具有执行系统命令的权限,因此应用程序B在执行系统调用指令ping192.168.3.1时会返回失败的信息,例如,返回失败的信息为“ping192.168.3.1不是内部或外部命令,也不是可运行的程序或批处理文件”。当应用程序X检测到应用程序B执行系统调用指令“ping192.168.3.1”失败时,应用程序X通过绑定的套接字A与服务进程Y之间的交互流程,可参见图5。S501、应用程序X在检测到应用程序B访问系统命令失败时,获取应用程序B发送的请求消息,该请求消息中携带有应用程序B的标识以及应用程序B所要访问的系统命令。其中,在系统中预先设置应用程序X时,可将应用程序X所占用的端口号发送给应用程序B,以实现应用程序B与应用程序X之间的通信。S502、应用程序X根据请求消息中应用程序B的标识111,查询应用程序B在系统中的访问记录,根据应用程序B在系统中的访问记录,获取应用程序B的签名值XXX。S503、应用程序X将获取的应用程序B的签名值XXX与系统中预先设置的合法签名列表1中预先存储的签名值进行比对,由于预先设置在系统中的合法签名列表中1存在签名值XXX,因此应用程序X通过合法签名列表1对应用程序B的签名值验证通过。S504、在应用程序X通过合法签名列表1对应用程序B的签名值验证通过后,应用程序X将应用程序B的标识111以及系统调用指令“ping192.168.3.1”通过预先绑定的套接字A发送给服务进程Y。S505、服务进程Y在接收到应用程序X发送的应用程序B的标识111以及系统调用指令“ping192.168.3.1”后,执行系统调用指令“ping192.168.3.1”,获取的执行结果,可如下所示:“正在Ping192.168.3.1具有32字节的数据:来自192.168.3.1的回复:字节=32时间<1msTTL=64192.168.3.1的Ping统计信息:数据包:已发送=4,已接收=4,丢失=0<0%丢失>往返行程的估计时间<以毫秒为单位>最短=0ms,最长=0ms,平均=0ms。”S506、服务进程Y将应用程序B的标识111以及获取的执行结果通过预先绑定的套接字A发送给应用程序X。S507、应用程序X在接收到服务进程Y发送的应用程序B的标识111以及执行结果之后,根据应用程序B的标识将执行结果发送给应用程序B。应用程序B在接收到应用程序X发送的执行结果以后,即可实现某种功能。需要说明的是,上述举例中的终端W,可指向用户提供语音和/或数据连通性的设备(device),包括无线终端或有线终端。无线终端可以是具有无线连接功能的手持式设备、或连接到无线调制解调器的其他处理设备,经无线接入网与一个或多个核心网进行通信的移动终端。例如,无线终端可以是移动电话(或称为“蜂窝”电话)和具有移动终端的计算机。又如,无线终端也可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置。根据以上内容可以看出,在第一应用程序获取第二应用程序访问系统命令的请求消息后,第一应用程序可将请求消息发送给位于系统核心层的服务进程,由服务进程执行请求消息中携带的第二应用程序的系统调用指令,并由服务进程将执行结果返还给第二应用程序,从而实现第二应用程序间接调用系统命令并获取调用系统命令的结果,进而使得第二应用程序在实现各种功能需求的时候更加简单化。同时,由于在系统中设置有安全机制,从而还能够规避风险,保障系统安全。基于相同的技术构思,本发明实施例还提供一种应用程序调用系统命令的装置,如图6所示,该装置可包括:获取模块601,用于获取第二应用程序访问系统命令的请求消息,所述请求消息中携带有第二应用程序的标识以及第二应用程序的系统调用指令;处理模块602,用于将所述请求消息发送给位于系统核心层的服务进程,所述服务进程执行所述系统调用指令,并根据所述第二应用程序的标识将执行结果返回给所述第二应用程序,所述服务进程预先设置于系统核心层中。较佳的,获取模块601,还用于:在获取第二应用程序访问系统命令的请求消息之前,当检测到所述第二应用程序访问系统命令失败时,获取所述第二应用程序的标识以及所述第二应用程序的系统调用指令。较佳的,获取模块601,还用于在获取第二应用程序访问系统命令的请求消息之后,根据所述请求消息中携带的第二应用程序的标识,获取所述第二应用程序的签名值;处理模块602,还用于判断合法签名列表中是否存在所述第二应用程序的签名值,若存在,则将所述请求消息发送给所述服务进程;其中,所述合法签名列表中存储了允许调用系统命令的第二应用程序的签名值,且所述合法签名列表预先存储于系统应用程序框架层中。较佳的,处理模块602,具体用于:所述第一应用程序将所述请求消息通过套接字发送给所述第一应用程序中位于系统核心层的服务进程,所述套接字预先设置于系统运行库层。较佳的,处理模块602,具体用于:将所述套接字的标识信息分别与所述服务进程和所述第一应用程序进行绑定,以建立所述第一应用程序与所述服务进程通信链路;所述服务进程将所述执行结果通过所述通信链路发送给所述第一应用程序;所述第一应用程序根据所述第二应用程序的标识将所述执行结果发送给所述第二应用程序。从上述内容可以看出:在第一应用程序获取第二应用程序访问系统命令的请求消息后,第一应用程序可将请求消息发送给位于系统核心层的服务进程,由服务进程执行请求消息中携带的第二应用程序的系统调用指令,并由服务进程将执行结果返还给第二应用程序,从而实现第二应用程序间接调用系统命令并获取调用系统命令的结果,进而使得第二应用程序在实现各种功能需求的时候更加简单化。同时,由于在系统中设置有安全机制,从而还能够规避风险,保障系统安全。本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1