CN110795164B - 应用封装方法、装置及应用运行方法、装置 - Google Patents

应用封装方法、装置及应用运行方法、装置 Download PDF

Info

Publication number
CN110795164B
CN110795164B CN201910943930.3A CN201910943930A CN110795164B CN 110795164 B CN110795164 B CN 110795164B CN 201910943930 A CN201910943930 A CN 201910943930A CN 110795164 B CN110795164 B CN 110795164B
Authority
CN
China
Prior art keywords
application
sandbox
program
packaged
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910943930.3A
Other languages
English (en)
Other versions
CN110795164A (zh
Inventor
郭海明
杨智宇
刘前伟
路轶
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qianxin Technology Group Co Ltd
Secworld Information Technology Beijing Co Ltd
Original Assignee
Qianxin Technology Group Co Ltd
Secworld Information Technology Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qianxin Technology Group Co Ltd, Secworld Information Technology Beijing Co Ltd filed Critical Qianxin Technology Group Co Ltd
Priority to CN201910943930.3A priority Critical patent/CN110795164B/zh
Publication of CN110795164A publication Critical patent/CN110795164A/zh
Application granted granted Critical
Publication of CN110795164B publication Critical patent/CN110795164B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44578Preparing or optimising for loading

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例提供一种应用封装方法、装置及应用运行方法、装置,包括:创建一个封装后应用的专属安装包文件夹;所述专属安装包文件夹的assets目录下包括有待封装原始应用的安装包;设置封装后应用的权限与程序入口;创建沙箱引导程序,添加沙箱核心程序;打包封装后应用的专属安装包文件夹,生成封装后应用的安装包。本发明实施例提供的应用封装方法在进行封装时,将待封装原始应用的安装包直接拷贝到相关目录下,无需对安装包内的内容做任何修改。因此不会破坏原始应用的完整性。

Description

应用封装方法、装置及应用运行方法、装置
技术领域
本发明涉及移动应用安全领域,尤其涉及一种应用封装方法、装置及应用运行方法、装置。
背景技术
随着智能终端的成熟与普及,以手机、平板电脑为代表的个人智能终端设备逐渐进入企业事业单位,终端企事业单位已经开始支持员工在个人移动设备上使用企业应用程序,员工使用个人智能终端设备办公已经成为一种无法逆转的潮流。然而,如何保障在移动端办公时的安全成为了全新的机遇与挑战。
沙箱,又叫沙盘,是一个虚拟系统程序,允许在沙盘环境中运行浏览器或其他程序,运行所产生的变化可以随后删除。它创造了一个类似沙盒的独立作业环境,在其内部运行的程序并不能对硬盘产生永久性的影响。沙箱在网络安全领域中,可被用来测试不受信任的文件或应用程序。基于沙箱的这一特点,在移动端办公领域,可将企业应用程序封装在沙箱中,从而实现个人与企业数据的隔离,保障移动端办公时的安全。除移动端办公外的其他应用领域,同样有类似的需求。
现有技术中,将业务应用封装时需要对原始应用的安装包进行拆包处理,将沙箱功能完全注入到原始应用中,破坏了原始应用的完整性。这种方法封装出来的应用容易被移动安全防护技术所防护,导致封装后的应用无法启动或被检测出盗版。此外,现有技术在封装应用时也没有充分考虑数据安全的问题,安全防护功能上有所不足。
发明内容
本发明实施例提供一种应用封装方法、装置及应用运行方法、装置,用以解决现有技术中的应用被封装在沙箱时原始应用的完整性被破坏的缺陷,实现原始应用的完整封装。
第一方面,本发明实施例提供了一种应用封装方法,包括:
创建一个封装后应用的专属安装包文件夹;所述专属安装包文件夹的assets目录下包括有待封装原始应用的安装包;
设置封装后应用的权限与程序入口;
创建沙箱引导程序,添加沙箱核心程序;
打包封装后应用的专属安装包文件夹,生成封装后应用的安装包。
上述技术方案中,在创建一个封装后应用的专属安装包文件夹之后,还包括:在所述专属安装包文件夹的assets目录下添加所需安全模块组件的标记以及所需安全模块组件的安装包;其中,所述安全模块组件用于实现数据安全防护。
上述技术方案中,所述设置封装后应用的权限与程序入口包括:通过修改AndroidManifest.xml的方式来添加封装后应用的权限与程序入口。
上述技术方案中,所述创建沙箱引导程序包括:创建包含有沙箱引导程序的classes.dex文件。
上述技术方案中,所述添加沙箱核心程序包括:在所述封装后应用的专属安装包文件夹的assets目录下添加沙箱核心程序。
第二方面,本发明实施例提供一种应用运行方法,用于实现所述应用封装方法所得到的封装后应用的运行,包括:
启动应用的命令触发后,为待启动的应用创建进程;
解析封装后应用的安装包,在所创建的进程中加载封装后应用;
初始化沙箱运行环境;
在所述沙箱运行环境中加载原始应用并运行。
上述技术方案中,在所述初始化沙箱运行环境之后,还包括:初始化沙箱安全模块;所述沙箱安全模块包括安全模块组件。
上述技术方案中,所述启动应用的命令为安卓系统Launcher中调用的startActivity方法。
上述技术方案中,所述初始化沙箱运行环境包括:加载沙箱引导程序,由所述沙箱引导程序启动沙箱核心程序,从而通过钩子函数创建沙箱安全运行环境。
上述技术方案中,所述初始化沙箱安全模块包括:调用并运行所述沙箱安全模块所含安全模块组件的安装包。
第三方面,本发明实施例提供一种应用封装装置,包括:
专属安装包文件夹创建模块,用于创建一个封装后应用的专属安装包文件夹;所述专属安装包文件夹的assets目录下包括有待封装原始应用的安装包;
权限与程序入口设置模块,用于设置封装后应用的权限与程序入口;
沙箱程序创建模块,用于创建沙箱引导程序,添加沙箱核心程序;
打包模块,用于打包封装后应用的专属安装包文件夹,生成封装后应用的安装包。
上述技术方案中,还包括:安全模块组件添加模块,用于在所述专属安装包文件夹的assets目录下添加所需安全模块组件的标记以及所需安全模块组件的安装包;其中,所述安全模块组件用于实现数据安全防护。
上述技术方案中,所述设置封装后应用的权限与程序入口包括:通过修改AndroidManifest.xml的方式来添加封装后应用的权限与程序入口。
上述技术方案中,所述创建沙箱引导程序包括:创建包含有沙箱引导程序的classes.dex文件。
上述技术方案中,所述添加沙箱核心程序包括:在所述封装后应用的专属安装包文件夹的assets目录下添加沙箱核心程序。
第四方面,本发明实施例提供一种应用运行装置,用于实现所述应用封装装置所得到的封装后应用的运行,包括:
进程创建模块,用于在启动应用的命令触发后,为待启动的应用创建进程;
封装后应用解析与加载模块,用于解析封装后应用的安装包,在所创建的进程中加载封装后应用;
沙箱运行环境初始化模块,用于初始化沙箱运行环境;
原始应用加载与运行模块,用于在所述沙箱运行环境中加载原始应用并运行。
上述技术方案中,还包括:沙箱安全模块初始化模块,用于初始化沙箱安全模块;所述沙箱安全模块包括安全模块组件。
上述技术方案中,所述启动应用的命令为安卓系统Launcher中调用的startActivity方法。
上述技术方案中,所述初始化沙箱运行环境包括:加载沙箱引导程序,由所述沙箱引导程序启动沙箱核心程序,从而通过钩子函数创建沙箱安全运行环境。
上述技术方案中,所述初始化沙箱安全模块包括:调用并运行所述沙箱安全模块所含安全模块组件的安装包。
第五方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如所述应用封装方法的步骤,或实现如所述应用运行方法的步骤。
第六方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如所述应用封装方法的步骤,或实现如所述应用运行方法的步骤。
本发明实施例提供的一种应用封装方法、装置及应用运行方法、装置在对原始应用进行封装时,将待封装原始应用的安装包直接拷贝到相关目录下,无需对安装包内的内容做任何修改。因此不会破坏原始应用的完整性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的应用封装方法的流程图;
图2为本发明另一实施例提供的应用封装方法的流程图;
图3为本发明实施例提供的应用运行方法的流程图;
图4为本发明另一实施例提供的应用运行方法的流程图;
图5为本发明实施例所提供的应用封装装置的结构示意图;
图6为本发明另一实施例所提供的应用封装装置的结构示意图;
图7为本发明实施例所提供的应用运行装置的结构示意图;
图8为本发明实施例所提供的应用运行装置的结构示意图;
图9示例了一种电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了便于理解,在对本发明实施例所提供的方法与装置做详细说明之前,首先对沙箱及沙箱的相关概念进行描述。
沙箱是一个虚拟系统程序,它在运行时能创建一个类似沙盒的独立作业环境,应用程序可以在这个独立作业环境内正常运行。
从逻辑上区分,沙箱程序包括沙箱引导程序、沙箱核心程序。沙箱引导程序是引导启动沙箱运行环境的程序。沙箱核心程序用于完成自身的初始化、安全运行环境加载、被封装应用加载等功能。沙箱运行时,首先启动沙箱引导程序,接着由沙箱引导程序启动沙箱核心程序。当沙箱正常运行后,就可以加载需要在沙箱运行环境内运行的应用。
图1为本发明实施例提供的应用封装方法的流程图,如图1所示,为了解决上述技术问题,本发明实施例提供了一种应用封装方法,该应用封装方法适用于安卓(Android)环境下,该方法包括:
步骤101、创建一个封装后应用的专属安装包文件夹;所述专属安装包文件夹的assets目录下包括有待封装原始应用的安装包;
步骤102、设置封装后应用的权限与程序入口;
所述权限用于规定用户可以对封装后应用做何种类型的操作;所述程序入口用于描述程序从哪里开始运行。由于待封装的原始应用在被封装后,其原有的权限与程序入口无法为外界所知,不能直接被封装后应用使用,因此需要在本步骤中设置封装后应用的权限与程序入口。
在本发明实施例中,可通过修改AndroidManifest.xml的方式来添加封装后应用的权限与程序入口。
步骤103、在移动终端操作系统中创建沙箱引导程序,在封装后应用的专属安装包文件夹中添加沙箱核心程序;
在本发明实施例中,在安卓系统中创建沙箱引导程序可通过创建包含有沙箱引导程序的classes.dex文件来实现。沙箱核心程序可添加在封装后应用的专属安装包文件夹的assets目录下。
步骤104、打包封装后应用的专属安装包文件夹,实现对原始应用的封装,生成封装后应用的安装包。
安卓系统自身提供打包工具,利用这些打包工具即可实现对封装后应用的专属安装包文件夹的打包操作。
以上是对本发明实施例提供的应用封装方法所实现的应用封装过程的描述。最终所得到的封装后应用可视为对原始应用的一种“替换”,它在运行时依然会调用原始应用的Res文件和Libs文件,依然执行原始应用所能实现的功能。
本发明实施例提供的应用封装方法在进行封装时,将待封装原始应用的安装包直接拷贝到相关目录下,无需对安装包内的内容做任何修改。因此不会破坏原始应用的完整性。
基于上述任一实施例,图2为本发明另一实施例提供的应用封装方法的流程图,如图2所示,本发明实施例提供了一种应用封装方法,该应用封装方法适用于安卓(Android)环境下,该方法包括:
步骤201、创建一个封装后应用的专属安装包文件夹;所述专属安装包文件夹的assets目录下包括有待封装原始应用的安装包;
步骤202、在所述专属安装包文件夹的assets目录下添加所需安全模块组件的标记以及所需安全模块组件的安装包;
所述安全模块组件是用来实现数据安全防护功能的组件,在本发明实施例中,所述数据安全防护功能有多种类型,包括:数据透明加密(如支持国密算法,AES等),应用内数据控制(如防止复制、粘贴等),应用访问权限隔离(如分享隔离等),截屏、录屏控制,分享控制,屏幕水印、外置SD卡读写控制。在本发明实施例中,一种安全模块组件用于实现对应的一种类型的数据安全防护功能,要为封装后应用设置多种类型的数据安全防护功能就需要在所述专属安装包文件夹的assets目录下添加多个对应的安全模块组件的标记及安装包。在本发明的其他实施例中,一种安全模块组件也能实现一种以上类型的数据安全防护功能,这能减少封装时的工作量,但在配置灵活性上会有所不足。
安全模块组件的标记用于描述在封装后的应用中所要包括的安全模块组件的信息,它反映了封装后的应用所要采用的安全策略。标记的表达方式可以有多种,如可以是安全模块组件的名称、用于表示安全模块组件类型的数值等。
安全模块组件的安装包是用于实现安全模块组件安装的数据包。
步骤203、设置封装后应用的权限与程序入口;
步骤204、在移动终端操作系统中创建沙箱引导程序,在封装后应用的专属安装包文件夹中添加沙箱核心程序;
步骤205、打包封装后应用的专属安装包文件夹,实现对原始应用的封装,生成封装后应用的安装包。
以上是对本发明实施例提供的应用封装方法所实现的应用封装过程的描述。本发明实施例提供的应用封装方法在进行封装时,进一步地将安全模块组件的标记与安装包添加在专属安装包文件夹的assets目录下,使得封装后应用具有了数据安全防护功能,提高了封装后应用的数据安全性。
本发明实施例还提供了一种应用运行方法,该方法实现了前述任一本发明实施例所得到的封装后应用的运行。图3为本发明实施例提供的应用运行方法的流程图,如图3所示,该方法包括:
步骤301、启动应用的命令触发后,移动终端操作系统为待启动的应用创建进程;
由于应用的封装对用户而言是透明的,因此用户在移动终端的控制界面上所看到的图标依然是原始应用的图标。但由于原始应用的程序入口已经被封装后应用接管,因此用户触发启动原始应用的命令,如单击或双击原始应用的图标,会转变为移动终端操作系统对封装后应用的启动命令。移动终端操作系统据此调用相关方法,如安卓系统Launcher调用startActivity方法,该startActivity方法表明启动应用的命令已经被触发。
移动终端操作系统识别到启动应用的命令已经触发后,为待启动的应用创建进程,使得待启动应用能够运行在自己的进程空间中。
步骤302、移动终端操作系统解析封装后应用的安装包,在所创建的进程中加载封装后应用;
步骤303、启动沙箱程序,初始化沙箱运行环境;
在本步骤中,封装后应用启动时,首先加载沙箱引导程序,然后由沙箱引导程序启动沙箱核心程序,从而通过hook技术(钩子函数)创建沙箱安全运行环境;
步骤304、在沙箱运行环境中加载原始应用并运行。
以上是对本发明实施例所提供的应用运行方法的过程描述。由于原始应用在沙箱运行环境中运行,因此原始应用的所有操作均被沙箱运行环境Hook和控制。本发明实施例所提供的应用运行方法通过创建沙箱运行环境为被封装的原始应用提供一个与安卓系统及普通应用程序隔离的运行环境,原始应用与安卓系统及其他普通应用的交互都通过沙箱运行环境提供的接口进行,这个接口与安卓系统提供的完全一致,对被封装的原始应用透明。
本发明实施例所提供的应用运行方法为被封装的原始应用提供一个与安卓系统及普通应用程序隔离的运行环境,有效地保证了数据的安全性。
基于上述任一本发明实施例,本发明另一实施例还提供了一种应用运行方法,该方法实现了前述任一本发明实施例所得到的封装后应用的运行。图4为本发明另一实施例提供的应用运行方法的流程图,如图4所示,该方法包括:
步骤401、启动应用的命令触发后,移动终端操作系统为待启动的应用创建进程;
步骤402、移动终端操作系统解析封装后应用安装包,在所创建的进程中加载封装后应用;
步骤403、启动沙箱程序,初始化沙箱运行环境;
步骤404、初始化沙箱安全模块;
所述沙箱安全模块由封装时所添加的安全模块组件组成,初始化沙箱安全模块时调用并运行相应安全模块组件的安装包。
步骤405、在沙箱运行环境中加载原始应用并运行。
本发明实施例所提供的应用运行方法为所运行的应用提供了具有数据安全功能的沙箱运行环境,进一步提高了应用运行的安全性。
基于上述任一实施例,图5为本发明实施例所提供的应用封装装置的结构示意图,如图5所示,本发明实施例所提供的应用封装装置包括:
专属安装包文件夹创建模块501,用于创建一个封装后应用的专属安装包文件夹;所述专属安装包文件夹的assets目录下包括有待封装原始应用的安装包;
权限与程序入口设置模块502,用于设置封装后应用的权限与程序入口;其中,设置封装后应用的权限与程序入口包括:通过修改AndroidManifest.xml的方式来添加封装后应用的权限与程序入口;
沙箱程序创建模块503,用于创建沙箱引导程序,添加沙箱核心程序;其中,创建沙箱引导程序包括:创建包含有沙箱引导程序的classes.dex文件;添加沙箱核心程序包括:在所述封装后应用的专属安装包文件夹的assets目录下添加沙箱核心程序;
打包模块504,用于打包封装后应用的专属安装包文件夹,生成封装后应用的安装包。
本发明实施例提供的应用封装装置在进行封装时,将待封装原始应用的安装包直接拷贝到相关目录下,无需对安装包内的内容做任何修改。因此不会破坏原始应用的完整性。
基于上述任一实施例,图6为本发明另一实施例所提供的应用封装装置的结构示意图,如图6所示,本发明另一实施例所提供的应用封装装置包括:
专属安装包文件夹创建模块601,用于创建一个封装后应用的专属安装包文件夹;所述专属安装包文件夹的assets目录下包括有待封装原始应用的安装包;
安全模块组件添加模块602,用于在所述专属安装包文件夹的assets目录下添加所需安全模块组件的标记以及所需安全模块组件的安装包;其中,所述安全模块组件用于实现数据安全防护;
权限与程序入口设置模块603,用于设置封装后应用的权限与程序入口;其中,设置封装后应用的权限与程序入口包括:通过修改AndroidManifest.xml的方式来添加封装后应用的权限与程序入口;
沙箱程序创建模块604,用于创建沙箱引导程序,添加沙箱核心程序;其中,创建沙箱引导程序包括:创建包含有沙箱引导程序的classes.dex文件;添加沙箱核心程序包括:在所述封装后应用的专属安装包文件夹的assets目录下添加沙箱核心程序;
打包模块605,用于打包封装后应用的专属安装包文件夹,生成封装后应用的安装包。
本发明实施例提供的应用封装装置在进行封装时,进一步地将安全模块组件的标记与安装包添加在专属安装包文件夹的assets目录下,使得封装后应用具有了数据安全防护功能,提高了封装后应用的数据安全性。
基于上述任一实施例,图7为本发明实施例所提供的应用运行装置的结构示意图,该应用运行装置用于实现上述任一实施例所提供的应用封装装置所得到的封装后应用的运行;如图7所示,本发明实施例所提供的应用运行装置包括:
进程创建模块701,用于在启动应用的命令触发后,为待启动的应用创建进程;其中,所述启动应用的命令为安卓系统Launcher中调用的startActivity方法;
封装后应用解析与加载模块702,用于解析封装后应用的安装包,在所创建的进程中加载封装后应用;
沙箱运行环境初始化模块703,用于初始化沙箱运行环境;其中,所述初始化沙箱运行环境包括:加载沙箱引导程序,由所述沙箱引导程序启动沙箱核心程序,从而通过钩子函数创建沙箱安全运行环境;
原始应用加载与运行模块704,用于在所述沙箱运行环境中加载原始应用并运行。
本发明实施例所提供的应用运行装置为被封装的原始应用提供一个与安卓系统及普通应用程序隔离的运行环境,有效地保证了数据的安全性。
基于上述任一实施例,图8为本发明实施例所提供的应用运行装置的结构示意图,该应用运行装置用于实现上述任一实施例所提供的应用封装装置所得到的封装后应用的运行;如图8所示,本发明实施例所提供的应用运行装置包括:
进程创建模块801,用于在启动应用的命令触发后,为待启动的应用创建进程;其中,所述启动应用的命令为安卓系统Launcher中调用的startActivity方法;
封装后应用解析与加载模块802,用于解析封装后应用的安装包,在所创建的进程中加载封装后应用;
沙箱运行环境初始化模块803,用于初始化沙箱运行环境;其中,所述初始化沙箱运行环境包括:加载沙箱引导程序,由所述沙箱引导程序启动沙箱核心程序,从而通过钩子函数创建沙箱安全运行环境;
沙箱安全模块初始化模块804,用于初始化沙箱安全模块;所述沙箱安全模块包括安全模块组件;其中,所述初始化沙箱安全模块包括:调用并运行所述沙箱安全模块所含安全模块组件的安装包;
原始应用加载与运行模块805,用于在所述沙箱运行环境中加载原始应用并运行。
本发明实施例所提供的应用运行装置为所运行的应用提供了具有数据安全功能的沙箱运行环境,进一步提高了应用运行的安全性。
图9示例了一种电子设备的实体结构示意图,如图9所示,该电子设备可以包括:处理器(processor)910、通信接口(Communications Interface)920、存储器(memory)930和通信总线940,其中,处理器910,通信接口920,存储器930通过通信总线940完成相互间的通信。处理器910可以调用存储器930中的逻辑指令,以执行如下方法:创建一个封装后应用的专属安装包文件夹;所述专属安装包文件夹的assets目录下包括有待封装原始应用的安装包;设置封装后应用的权限与程序入口;创建沙箱引导程序,添加沙箱核心程序;打包封装后应用的专属安装包文件夹,生成封装后应用的安装包。或执行如下方法:启动应用的命令触发后,为待启动的应用创建进程;解析封装后应用的安装包,在所创建的进程中加载封装后应用;初始化沙箱运行环境;在所述沙箱运行环境中加载原始应用并运行。
此外,上述的存储器930中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的方法,例如包括:接收智能电视发送的电视节目的节目信息和实时心率信息,所述节目信息包括:创建一个封装后应用的专属安装包文件夹;所述专属安装包文件夹的assets目录下包括有待封装原始应用的安装包;设置封装后应用的权限与程序入口;创建沙箱引导程序,添加沙箱核心程序;打包封装后应用的专属安装包文件夹,生成封装后应用的安装包。或:启动应用的命令触发后,为待启动的应用创建进程;解析封装后应用的安装包,在所创建的进程中加载封装后应用;初始化沙箱运行环境;在所述沙箱运行环境中加载原始应用并运行。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (18)

1.一种应用封装方法,其特征在于,包括:
创建一个封装后应用的专属安装包文件夹;所述专属安装包文件夹的assets目录下包括有待封装原始应用的安装包,其中,所述封装后应用为所述原始应用的替换,用于执行所述原始应用的功能;
设置封装后应用的权限与程序入口,其中,所述权限用于规定用户对封装后应用做何种类型的操作,所述程序入口用于描述程序从何处开始运行;
创建沙箱引导程序,添加沙箱核心程序,其中,所述添加沙箱核心程序包括:在所述封装后应用的专属安装包文件夹的assets目录下添加沙箱核心程序;
打包封装后应用的专属安装包文件夹,生成封装后应用的安装包。
2.根据权利要求1所述的应用封装方法,其特征在于,在创建一个封装后应用的专属安装包文件夹之后,还包括:在所述专属安装包文件夹的assets目录下添加所需安全模块组件的标记以及所需安全模块组件的安装包;其中,所述安全模块组件用于实现数据安全防护。
3.根据权利要求1或2所述的应用封装方法,其特征在于,所述设置封装后应用的权限与程序入口包括:通过修改AndroidManifest.xml的方式来添加封装后应用的权限与程序入口。
4.根据权利要求1或2所述的应用封装方法,其特征在于,所述创建沙箱引导程序包括:创建包含有沙箱引导程序的classes.dex文件。
5.一种应用运行方法,其特征在于,用于实现权利要求1-4任一项所述应用封装方法所得到的封装后应用的运行,包括:
启动应用的命令触发后,为待启动的应用创建进程;
解析封装后应用的安装包,在所创建的进程中加载封装后应用;
初始化沙箱运行环境,其中,所述初始化沙箱运行环境包括:加载沙箱引导程序,由所述沙箱引导程序启动沙箱核心程序,从而通过钩子函数创建沙箱安全运行环境;
在所述沙箱运行环境中加载原始应用并运行,其中,所述封装后应用为所述原始应用的替换,用于执行所述原始应用的功能。
6.根据权利要求5所述的应用运行方法,其特征在于,在所述初始化沙箱运行环境之后,还包括:初始化沙箱安全模块;所述沙箱安全模块包括安全模块组件。
7.根据权利要求5或6所述的应用运行方法,其特征在于,所述启动应用的命令为安卓系统Launcher中调用的startActivity方法。
8.根据权利要求6所述的应用运行方法,其特征在于,所述初始化沙箱安全模块包括:调用并运行所述沙箱安全模块所含安全模块组件的安装包。
9.一种应用封装装置,其特征在于,包括:
专属安装包文件夹创建模块,用于创建一个封装后应用的专属安装包文件夹;所述专属安装包文件夹的assets目录下包括有待封装原始应用的安装包,其中,所述封装后应用为所述原始应用的替换,用于执行所述原始应用的功能;
权限与程序入口设置模块,用于设置封装后应用的权限与程序入口,其中,所述权限用于规定用户对封装后应用做何种类型的操作,所述程序入口用于描述程序从何处开始运行;
沙箱程序创建模块,用于创建沙箱引导程序,添加沙箱核心程序,其中,所述添加沙箱核心程序包括:在所述封装后应用的专属安装包文件夹的assets目录下添加沙箱核心程序;
打包模块,用于打包封装后应用的专属安装包文件夹,生成封装后应用的安装包。
10.根据权利要求9所述的应用封装装置,其特征在于,还包括:安全模块组件添加模块,用于在所述专属安装包文件夹的assets目录下添加所需安全模块组件的标记以及所需安全模块组件的安装包;其中,所述安全模块组件用于实现数据安全防护。
11.根据权利要求9或10所述的应用封装装置,其特征在于,所述设置封装后应用的权限与程序入口包括:通过修改AndroidManifest.xml的方式来添加封装后应用的权限与程序入口。
12.根据权利要求9或10所述的应用封装装置,其特征在于,所述创建沙箱引导程序包括:创建包含有沙箱引导程序的classes.dex文件。
13.一种应用运行装置,其特征在于,用于实现权利要求9-12任一项所述应用封装装置所得到的封装后应用的运行,包括:
进程创建模块,用于在启动应用的命令触发后,为待启动的应用创建进程;
封装后应用解析与加载模块,用于解析封装后应用的安装包,在所创建的进程中加载封装后应用;
沙箱运行环境初始化模块,用于初始化沙箱运行环境,其中,所述初始化沙箱运行环境包括:加载沙箱引导程序,由所述沙箱引导程序启动沙箱核心程序,从而通过钩子函数创建沙箱安全运行环境;
原始应用加载与运行模块,用于在所述沙箱运行环境中加载原始应用并运行,其中,所述封装后应用为所述原始应用的替换,用于执行所述原始应用的功能。
14.根据权利要求13所述的应用运行装置,其特征在于,还包括:沙箱安全模块初始化模块,用于初始化沙箱安全模块;所述沙箱安全模块包括安全模块组件。
15.根据权利要求13或14所述的应用运行装置,其特征在于,所述启动应用的命令为安卓系统Launcher中调用的startActivity方法。
16.根据权利要求14所述的应用运行装置,其特征在于,所述初始化沙箱安全模块包括:调用并运行所述沙箱安全模块所含安全模块组件的安装包。
17.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至4任一项所述应用封装方法的步骤,或实现如权利要求5至8任一项所述应用运行方法的步骤。
18.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至4任一项所述应用封装方法的步骤,或实现如权利要求5至8任一项所述应用运行方法的步骤。
CN201910943930.3A 2019-09-30 2019-09-30 应用封装方法、装置及应用运行方法、装置 Active CN110795164B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910943930.3A CN110795164B (zh) 2019-09-30 2019-09-30 应用封装方法、装置及应用运行方法、装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910943930.3A CN110795164B (zh) 2019-09-30 2019-09-30 应用封装方法、装置及应用运行方法、装置

Publications (2)

Publication Number Publication Date
CN110795164A CN110795164A (zh) 2020-02-14
CN110795164B true CN110795164B (zh) 2024-04-12

Family

ID=69438682

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910943930.3A Active CN110795164B (zh) 2019-09-30 2019-09-30 应用封装方法、装置及应用运行方法、装置

Country Status (1)

Country Link
CN (1) CN110795164B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104408367A (zh) * 2014-11-28 2015-03-11 北京奇虎科技有限公司 应用程序配置方法与装置
CN104462880A (zh) * 2014-11-28 2015-03-25 北京奇虎科技有限公司 应用程序加壳配置方法与装置
CN105912353A (zh) * 2015-12-23 2016-08-31 北京奇虎科技有限公司 应用程序封装方法及装置
CN106096394A (zh) * 2016-06-16 2016-11-09 北京奇虎科技有限公司 一种安卓应用的广告拦截方法和装置
CN106897607A (zh) * 2015-12-17 2017-06-27 北京奇虎科技有限公司 一种应用程序监控方法及装置
CN108985086A (zh) * 2018-07-18 2018-12-11 中软信息系统工程有限公司 应用程序权限控制方法、装置及电子设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9870239B2 (en) * 2014-09-16 2018-01-16 Xiaomi Inc. Method and device for running application program

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104408367A (zh) * 2014-11-28 2015-03-11 北京奇虎科技有限公司 应用程序配置方法与装置
CN104462880A (zh) * 2014-11-28 2015-03-25 北京奇虎科技有限公司 应用程序加壳配置方法与装置
CN106897607A (zh) * 2015-12-17 2017-06-27 北京奇虎科技有限公司 一种应用程序监控方法及装置
CN105912353A (zh) * 2015-12-23 2016-08-31 北京奇虎科技有限公司 应用程序封装方法及装置
CN106096394A (zh) * 2016-06-16 2016-11-09 北京奇虎科技有限公司 一种安卓应用的广告拦截方法和装置
CN108985086A (zh) * 2018-07-18 2018-12-11 中软信息系统工程有限公司 应用程序权限控制方法、装置及电子设备

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Android APP加固方案的研究;彭守镇;;软件工程(第06期);全文 *
Android系统基于提升优先权限的攻击;张会先;;电脑知识与技术(第18期);全文 *
DroidInjector: A process injection-based dynamic tracking system for runtime behaviors of Android applications;Wenhao Fan;Computers & Security;第70卷;全文 *

Also Published As

Publication number Publication date
CN110795164A (zh) 2020-02-14

Similar Documents

Publication Publication Date Title
US9027075B2 (en) Enforcing security rules at runtime
JP6166839B2 (ja) 実行時のアプリケーションメソッドを置き換えるためのシステム及び方法
US20160335431A1 (en) Method of Securing Non-Native Code
US9871800B2 (en) System and method for providing application security in a cloud computing environment
US20100005449A1 (en) Method and apparatus for improving security in an application level virtual machine environment
WO2016033966A1 (zh) 应用数据的保护方法及装置
CN111400757B (zh) 防止安卓第三方库中native代码泄露用户隐私的方法
CN109255235B (zh) 基于用户态沙箱的移动应用第三方库隔离方法
CN115378735B (zh) 一种数据处理方法、装置、存储介质及电子设备
AU2021206497A1 (en) Method and apparatus for authority control, computer device and storage medium
KR20200090784A (ko) 응용 프로그램 시작 방법, 시작 장치 및 컴퓨터 판독가능 저장 매체
CN109784039B (zh) 移动终端安全运行空间的构建方法、电子设备、存储介质
WO2022078366A1 (zh) 应用保护方法、装置、设备及介质
CN114595462A (zh) 一种数据处理的方法和装置
US11861364B2 (en) Circular shadow stack in audit mode
US9659156B1 (en) Systems and methods for protecting virtual machine program code
CN112835639B (zh) 一种Hook实现方法、装置、设备、介质及产品
CN110795164B (zh) 应用封装方法、装置及应用运行方法、装置
CN110806860B (zh) 安卓环境下的应用封装方法、装置及应用运行方法、装置
CN110825365B (zh) 一种定制webview特性的方法、装置、设备和介质
CN109783156B (zh) 一种应用的启动控制方法及装置
US9021271B1 (en) Injecting code decrypted by a hardware decryption module into Java applications
KR101862382B1 (ko) 안드로이드 환경에서의 어플리케이션 데이터 관리 방법 및 장치
CN110084005A (zh) 一种代码的处理方法及装置
CN117056941B (zh) 一种基于脚本语言的安全基线的运行方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088

Applicant after: Qianxin Technology Group Co.,Ltd.

Applicant after: Qianxin Wangshen information technology (Beijing) Co.,Ltd.

Address before: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088

Applicant before: Qianxin Technology Group Co.,Ltd.

Applicant before: LEGENDSEC INFORMATION TECHNOLOGY (BEIJING) Inc.

GR01 Patent grant
GR01 Patent grant