本发明专利技术提供一种运行应用程序的方法和装置。在沙盒中运行所述应用程序的主程序,当所述主程序需要进行具有系统权限的操作时,通过进程通信向所述应用程序的辅助程序发送操作请求;在沙盒外运行所述应用程序的辅助程序,所述辅助程序执行所述操作请求对应的操作,通过进程通信向所述主程序返回操作结果。采用本发明专利技术提供的运行应用程序的方法和装置,能够使应用程序具有系统权限。
【技术实现步骤摘要】
运行应用程序的方法和装置
本专利技术涉及计算机技术,尤其涉及一种运行应用程序的方法和装置。
技术介绍
在iOS系统中,应用程序均在沙盒(简称sandbox)中运行。 在沙盒中运行的应用程序只能访问该应用程序目录下的文件。当应用程序运行在 沙盒中时,该应用程序不具有系统权限,因而不能访问其它目录下的文件,也无法调用受限 的应用程序编程接口(Application Programming Interface,简称API)。例如,在沙盒中 运行的文字处理程序无法打开在短信息收件箱中存储的短信息。
技术实现思路
本专利技术的第一个方面是提供一种运行应用程序的方法,用以解决现有技术中的缺 陷,使应用程序具有系统权限。 本专利技术的另一个方面是提供一种运行应用程序的装置,用以解决现有技术中的缺 陷,使应用程序具有系统权限。 本专利技术的第一个方面是提供一种运行应用程序的方法,包括: 在沙盒中运行所述应用程序的主程序,当所述主程序需要进行具有系统权限的操 作时,通过进程通信向所述应用程序的辅助程序发送操作请求; 在沙盒外运行所述应用程序的辅助程序,所述辅助程序执行所述操作请求对应的 操作,通过进程通信向所述主程序返回操作结果。 如上所述的方法,其中, 所述辅助程序通过挂钩技术挂载到系统程序中。 如上所述的方法,其中,所述在沙盒中运行所述应用程序的主程序之前,还包括: 备份系统程序的初始化代码; 采用挂钩技术,将当前的系统程序的初始化代码替换为所述辅助程序的初始化代 码,所述辅助程序的初始化代码中包括实现所述辅助程序与所述主程序的进程通信的代 码; 调用备份的系统程序的初始化代码; 备份系统程序的反初始化代码; 采用挂钩技术,将当前的系统程序的反初始化代码替换为所述辅助程序的反初始 化代码; 调用备份的系统程序的反初始化代码。 如上所述的方法,其中,所述辅助程序为独立运行的程序。 本专利技术的另一个方面是提供一种运行应用程序的装置,包括: 沙盒,用于运行所述应用程序的主程序,当所述主程序需要进行具有系统权限的 操作时,通过进程通信向所述应用程序的辅助程序发送操作请求; 辅助程序单元,用于运行所述辅助程序,所述辅助程序执行所述操作请求对应的 操作,通过进程通信向所述主程序返回操作结果。 如上所述的装置,其中,所述辅助程序单元为通过挂钩技术挂载所述辅助程序的 系统程序单元。 如上所述的装置,其中,所述系统程序单元包括: 初始化子单元,用于备份系统程序的初始化代码,采用挂钩技术将当前的系统程 序的初始化代码替换为所述辅助程序的初始化代码,所述辅助程序的初始化代码中包括实 现所述辅助程序与所述主程序的进程通信的代码,调用备份的系统程序的初始化代码; 反初始化子单元,用于备份系统程序的反初始化代码,采用挂钩技术将当前的系 统程序的反初始化代码替换为所述辅助程序的反初始化代码,调用备份的系统程序的反初 始化代码。 如上所述的装置,其中,所述辅助程序单元为独立的程序运行单元。 由上述
技术实现思路
可见,在沙盒运行应用程序的主程序,在沙盒以外运行该应用程 序的辅助程序,在主程序与辅助程序之间通过进程通信,如果主程序需要进行具有系统权 限的操作,主程序通过进程通信消息向辅助程序发送操作请求,由辅助程序执行该操作,并 将操作结果通过进程通信消息返回给主程序,因此,主程序能够通过辅助程序执行具有系 统权限的操作,从而使得该应用程序具有系统权限。 【附图说明】 图1为本专利技术实施例一的运行应用程序的方法的流程图; 图2为本专利技术实施例二的运行应用程序的方法的流程图; 图3为本专利技术实施例三的运行应用程序的装置的结构示意图; 图4为本专利技术实施例四的运行应用程序的装置的结构示意图。 【具体实施方式】 在本专利技术各个实施例中,将应用程序分为主程序和辅助程序,主程序与辅助程序 采用进程通信方式进行通信,其中,主程序用于执行该应用程序的各个功能,其中包括需要 系统权限才能实现的功能,当主程序需要实现上述需要系统权限才能实现的功能时,主程 序通过进程通信告知辅助程序,辅助程序用于执行主程序涉及的需要系统权限才能执行的 各种操作。本专利技术提出的运行应用程序的方法和装置如下述各个实施例所述。 图1为本专利技术实施例一的运行应用程序的方法的流程图。如图1所示,该方法包 括以下过程。 步骤101 :在沙盒中运行应用程序的主程序,通过进程通信向所述应用程序的辅 助程序发送操作请求。 在本步骤中,在沙盒中运行应用程序的主程序,当所述主程序需要进行具有系统 权限的操作时,通过进程通信向所述应用程序的辅助程序发送操作请求。 步骤102 :在沙盒外运行应用程序的辅助程序,辅助程序执行所述操作请求对应 的操作,通过进程通信向主程序返回操作结果。 在本步骤中,辅助程序在沙盒外运行,辅助程序执行所述操作请求对应的操作,通 过进程通信向主程序返回操作结果。 在本专利技术实施例一中,将应用程序分为主程序和辅助程序,在沙盒中运行应用程 序的主程序,在沙盒外运行该应用程序的辅助程序,在主程序与辅助程序之间建立进程通 信,如果主程序需要进行具有系统权限的操作,主程序通过进程通信向辅助程序发送操作 请求,由辅助程序执行该操作,并将操作结果通过进程通信返回给主程序,因此,主程序能 够通过辅助程序执行具有系统权限的操作,从而使得该应用程序具有系统权限。 在上述本专利技术实施例一中,辅助程序可以通过挂钩技术挂载到系统程序中,或者, 辅助程序还可以为一个独立运行的程序。 图2为本专利技术实施例二的运行应用程序的方法的流程图。在本专利技术实施例二中, 仅以辅助程序通过挂钩技术挂载到系统程序中为例。如图2所示,该方法包括以下过程。 首先,将辅助程序通过挂钩(简称Hook)技术挂载到系统程序中,具体地,该过程可 以包括以下的步骤201至步骤206。 步骤201 :备份系统程序的初始化代码。 在本步骤执行前,当前的系统程序的初始化代码为原始的系统程序的初始化代 码,在本步骤中,对上述系统程序的初始化代码进行备份。在完成备份操作后,存储备份的 系统程序的初始化代码,以供后续的步骤203使用,并且,对于当前的系统程序的初始化代 码执行以下步骤202。 步骤202 :采用挂钩技术,将当前的系统程序的初始化代码替换为辅助程序的初 始化代码。 在本步骤中,采用挂钩技术,将当前的系统程序的初始化代码替换为辅助程序的 初始化代码。其中,辅助程序的初始化代码中包括实现所述辅助程序与所述主程序的进程 通信的代码。本专利技术实施例对进程通信的实现方式不做限制,例如,可以采用套接字(简称 Socket)方式、管道方式或者其它能够支持进程通信的任何方式。 步骤203 :调用备份的系统程序的初始化代码。 在本步骤中,调用备份的系统程序的初始化代码,也就是调用原始的系统程序的 初始化代码,从而保证步骤202的挂钩处理不会影响系统功能。 步骤204 :备份系统程序的反初始化代码。 在本步骤执行前,当前的系统程序的反初始化代码为原始的系统程序的反初始化 本文档来自技高网...
【技术保护点】
一种运行应用程序的方法,其特征在于,包括:在沙盒中运行所述应用程序的主程序,当所述主程序需要进行具有系统权限的操作时,通过进程通信向所述应用程序的辅助程序发送操作请求;在沙盒外运行所述应用程序的辅助程序,所述辅助程序执行所述操作请求对应的操作,通过进程通信向所述主程序返回操作结果。
【技术特征摘要】
1. 一种运行应用程序的方法,其特征在于,包括: 在沙盒中运行所述应用程序的主程序,当所述主程序需要进行具有系统权限的操作 时,通过进程通信向所述应用程序的辅助程序发送操作请求; 在沙盒外运行所述应用程序的辅助程序,所述辅助程序执行所述操作请求对应的操 作,通过进程通信向所述主程序返回操作结果。2. 根据权利要求1所述的方法,其特征在于, 所述辅助程序通过挂钩技术挂载到系统程序中。3. 根据权利要求1或2所述的方法,其特征在于,所述在沙盒中运行所述应用程序的主 程序之前,还包括: 备份系统程序的初始化代码; 采用挂钩技术,将当前的系统程序的初始化代码替换为所述辅助程序的初始化代码, 所述辅助程序的初始化代码中包括实现所述辅助程序与所述主程序的进程通信的代码; 调用备份的系统程序的初始化代码; 备份系统程序的反初始化代码; 采用挂钩技术,将当前的系统程序的反初始化代码替换为所述辅助程序的反初始化代 码; 调用备份的系统程序的反初始化代码。4. 根据权利要求1所述的方法,其特征在于, 所述辅助程序为独立运行的程序。5. -种运...
【专利技术属性】
技术研发人员:陈静聪,李斌,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。