CN107220083A - 一种安卓系统中免安装运行应用程序的方法和系统 - Google Patents
一种安卓系统中免安装运行应用程序的方法和系统 Download PDFInfo
- Publication number
- CN107220083A CN107220083A CN201710362787.XA CN201710362787A CN107220083A CN 107220083 A CN107220083 A CN 107220083A CN 201710362787 A CN201710362787 A CN 201710362787A CN 107220083 A CN107220083 A CN 107220083A
- Authority
- CN
- China
- Prior art keywords
- program
- apk
- installation
- exempt
- application program
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000009434 installation Methods 0.000 title claims abstract description 47
- 238000004891 communication Methods 0.000 claims abstract description 15
- 230000008569 process Effects 0.000 claims description 28
- 238000004458 analytical method Methods 0.000 claims description 10
- 230000000694 effects Effects 0.000 claims description 10
- 102000006479 Heterogeneous-Nuclear Ribonucleoproteins Human genes 0.000 claims description 8
- 108010019372 Heterogeneous-Nuclear Ribonucleoproteins Proteins 0.000 claims description 8
- 238000007726 management method Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims 1
- 230000007474 system interaction Effects 0.000 claims 1
- 230000002708 enhancing effect Effects 0.000 abstract 1
- 230000006870 function Effects 0.000 description 12
- 230000004048 modification Effects 0.000 description 9
- 238000012986 modification Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 5
- 238000011161 development Methods 0.000 description 5
- 238000011900 installation process Methods 0.000 description 5
- 230000000712 assembly Effects 0.000 description 3
- 238000000429 assembly Methods 0.000 description 3
- 239000011230 binding agent Substances 0.000 description 3
- 239000003795 chemical substances by application Substances 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 241000700605 Viruses Species 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000011514 reflex Effects 0.000 description 2
- 241000726445 Viroids Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005314 correlation function Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44568—Immediately runnable code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种安卓系统中免安装运行应用程序的方法和系统,涉及智能移动终端系统软件技术领域,能够在虚拟环境中免安装动态加载运行应用程序,方法包括:用户打开虚拟环境控制程序,启动目标加密或原生应用程序包;所述虚拟环境控制程序构建所述目标程序的组件信息,虚拟出程序运行所需的各种系统资源,并通过钩子动态截获目标程序和操作系统的通信请求,代理目标程序和系统进行交互,使得目标程序在未安装的情况下直接运行。该方法和系统能够让用户在其可控的虚拟环境中免安装试运行应用程序,从而极大程度上增强程序运行的安全性,具有较高的兼容性。
Description
技术领域
本发明涉及智能移动终端系统软件技术领域,尤其涉及一种安卓系统中免安装运行应用程序的方法和系统。
背景技术
基于目前的安卓应用程序技术,开发人员在完成安卓应用程序开发后,会把程序代码和资源文件一起编译打包成一种能被安卓系统安装和使用的文件包:即APK(AndroidPackage Kit,安卓应用程序包),再将APK上传到应用市场供用户下载。在使用应用程序之前,安卓系统必须先安装该APK,安装过程包括一系列验证、解析、复制、注册和优化APK的步骤。在完成安装后,被安装的应用程序被添加并显示在程序列表中,并需要通过Launcher(启动程序)启动。
APK的安装过程冗余繁琐,期间需要用户多次确认才能完成安装。此外,安装完成后,APK文件会保留在特定系统目录下,每次启动系统都需要对该目录进行完整扫描。随着已安装的程序的增加,扫描时间也随之变长,导致系统启动速度变慢。并且,一旦病毒、广告等恶意应用程序被用户无意安装,系统还可能因此遭到恶意程序的入侵,造成用户隐私泄露等危险。
另一方面,由于缺乏特定的技术保护,APK文件本身容易被逆向工程和恶意篡改。逆向工程是一种技术过程,即对APK文件进行反编译并在反编译的基础上进行分析及研究,从而得出该程序的功能结构、内部逻辑、实现方法和资源等要素,进而偷取商业机密并制作出功能相近的竞争产品。APK篡改则是在逆向工程的基础上加入、修改或删除后,达到修改程序原先的行为目的。例如,加入广告代码,加入钓鱼代码偷取用户隐私信息,修改或删除校验代码以实现对程序的破解。APK篡改是最近几年来手机病毒和针对移动终端的恶意程序喷井式地爆发的一个重要原因。
为了简化安装过程和防止APK篡改,现有技术中采用免安装动态加载运行加密APK,来提高安装系统安全性,目前实现方法大致分为两类:
(1)通过修改安卓系统框架(Framework)、Java运行环境、系统库接口等系统代码来实现动态加载加密应用。例如,通过为安卓系统中的Dalvik虚拟机和Linux系统库增加接口,使得安卓系统具有从内存中直接加载可执行文件的能力。然而,这种方法需要修改安卓操作系统,依赖终端开发商的支持,大大降低了其平台兼容性。
(2)通过反向打包APK,修改程序逻辑或替换程序入口,再重新打包APK来实现程序的加密和动态加载。例如:通过修改被调用程序,在被调用程序APK中增加插件组件类,负责)对APK核心部分进行加解密,然后将修改后的运行程序文件放回APK主体文件中,再通过使用类加载器(Class Loader)和Java反射机制来动态加载调用被调用程序;然而,这类方法会导致原生APK的数字签名失效,因此违背了原生应用程序开发人员的法律授权并可能面临法律风险。因此,越来越多应用程序开发者通过远程验证(Remote Attestation)来保证程序的完整性,防止针对程序的非法修改。这些限制无疑增加了这种方法的部署成本,给开发者带来二次开发和额外的测试开销。
综上,现有的动态加载运行APK的方法具有兼容性差的缺点。
发明内容
本发明提供一种安卓系统中免安装运行应用程序的方法和系统,通过虚拟运行程序需要的各种资源和环境,克服了现有动态加载应用程序方法需要修改安卓系统代码、需要修改并重新编译目标程序与破坏原有数字签名、需要root移动终端以获取管理员权限,才能够动态运行应用程序的缺点,具有较高的兼容性。
为达到上述目的,本发明采用如下技术方案:
一种安卓系统中免安装运行应用程序的方法,包括:
S1、虚拟环境控制程序扫描并筛选出虚拟环境目录中的应用程序文件(AndroidPackage Kit,APK),并将所述虚拟环境目录中的应用程序以程序图标的形式显示在虚拟环境控制程序界面上;
S2、根据用户在所控制程序的界面上选择的程序图标,确定所述选择的程序图标代表的目标APK;
S3、APK分析模块对所述目标APK包含的全局配置文件(AndroidManifest.xml),解析出运行所述目标APK所需的免安装程序包信息(PackageInfo),并将所述组件信息存储于免安装程序包信息数据库,所述免安装程序包信息数据库由包管理服务器(PackageManagerService PMS)代理管理;
S4、虚拟环境控控制程序通知容器进程模块创建运行所述目标APK所需的子进程(Process)作为容器(Container)进程,所述容器进程载入所述目标APK,所述容器进程中的钩子(Hook)模块动态截获所述目标应用程序与操作系统之间的通信和接口调用请求,所述钩子模块将所述通信和接口调用请求重新定向发送给活动管理器服务(Activity ManagerService,AMS)代理、PMS代理和其他系统服务代理,允许AMS代理、PMS代理和其他系统服务代理管理所述目标应用程序和操作系统进行交互;
S5、AMS代理接收到所述通信和接口调用请求后,查询所述目标APK的所述免安装程序包信息数据库,所述AMS代理通知所述操作系统加载和启动所述目标APK的组件,所述AMS代理负责转换所述目标程序和系统AMS的通信,使得目标程序和已安装在系统中的应用程序一样正常运行;
S6、所述组件向所述PMS代理发送信息查询请求,所述PMS代理配置目标APK在AMS代理启动运行过程中所需的组件的信息,并返回所述目标应用程序;
S7、所述其他系统服务代理通过截获的所述通信和接口调用请求,代理所述目标应用程序和所述操作系统的交互,即其他系统服务代理通过钩子模块代替目标APK向操作系统发送服务请求,并把反馈结果返回目标APK,不会因为请求失败而导致目标应用程序运行的异常退出,确保所述目标APK正常运行,并监控目标应用程序的通信和请求,防止目标应用程序非法访问操作系统,进行偷取用户隐私数据等攻击行为。
进一步的, 所述虚拟环境目录中的APK通过APK加密工具加密,所述目标APK在S3解析之前,通过APK解密模块解密。
进一步的,所述免安装程序包信息包括:所述目标APK的组件和属性,能够响应的系统事件和程序启动位置。
进一步的,所述属性包括主题、图标、标签和权限。
进一步的,所述免安装程序包信息数据库存储于手机本地内存中,由所述PMS代理管理,所述操作系统无法识别所述免安装程序包信息数据库。
进一步的,所述钩子模块包括Java钩子和Native钩子,所述Java钩子和Native钩子用于重写所述目标APK内部的Java和C/C++逻辑。
进一步的,所述组件包括:活动(Activities)、服务(Services)、广播接受者(Broadcast Receivers)和内容提供者(Content Provider)。
本发明还提供了一种安卓系统中免安装运行应用程序的系统,包括虚拟环境控制程序和APK加密工具,其中,所述虚拟环境控制程序,负责解密APK文件和构建运行所述目标应用程序所需的各种系统资源和环境;APK加密工具为独立于虚拟环境之外的程序,根据用户提供的密钥对所述目标APK文件进行字节加密。
进一步的,所述虚拟环境控制程序用于建立、管理和控制运行程序所需的虚拟环境。虚拟环境控制程序包括:APK解密模块、APK分析模块、容器进程模块、钩子模块、PMS代理、AMS代理、和其他系统服务代理;所述APK加密工具独立运行,能够根据用户提供的密钥对APK文件进行字节加密,并将加密后的APK存储于虚拟环境目录。
本发明提供的一种安卓系统中免安装运行应用程序的方法和系统,通过动态分析应用程序APK文件,在程序运行时截获应用程序和操作系统之间的通信,代理操作系统的和目标程序进行通信,最终完成(加密)程序在虚拟运行环境中免安装运行。与现有APK动态加载技术相比,本发明不需要终端生产厂商修改安卓系统代码,不需要应用开发者修改应用程序自身逻辑,也不需要用户root系统获得最高权限,能够避免系统和应用程序重新开发和测试的开销,大大降低了其在移动终端上部署的成本,并同时提高程序运行的安全性能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为一种安卓系统中免安装运行应用程序的系统的结构图;
图2为现有技术APP安装的流程图;
图3为现有技术APP启动的流程图;
图4为一种安卓系统中免安装运行应用程序的方法的时序图。
具体实施方式
为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。
本发明实施例提供一种安卓系统中免安装运行应用程序的方法,如图1和图4所示,包括:
S1、APK加密工具对原始APK进行加密,得到加密APK文件,并存储于虚拟环境控制程序所属的特定目录,虚拟环境控制程序扫描并筛选出虚拟环境目录中的APK,并将所述虚拟环境目录中的APK以程序图标的形式显示在虚拟环境控制程序界面上,其中,APK加密工具直接加密原始APK文件,而非仅仅加密原始APK文件中的可执行文件或可执行文件中某些部分,因此不需要反向打包原始APK,不会破坏原始APK对应的APP的数字签名;
S2、根据用户选择的程序图标,确定程序图标代表的APK作为目标APK;
S3、PMS代理向APK解密模块请求解密以及确认数字签名和证书,确认通过后,APK解密模块对目标APK进行解密,APK分析模块对解密后的目标APK进行分析,构建运行所述目标APK所需的组件信息构造程序的PackageInfo信息,并将所述组件信息存储于免安装程序包信息数据库,其中,所述未安装程序的完整包信息只能由本发明提出的一种安卓系统中免安装运行应用程序的系统识别,并在虚拟环境控制程序构建的虚拟环境中加载运行;
S4、容器进程模块创建运行所述目标APK所需的进程,所述容器进程模块通过设置钩子模块来动态截获所述目标应用程序和操作系统的通信和接口调用请求,实现AMS、PMS和其他系统服务请求重新定向到对应的服务代理;
S5、AMS代理通过查询所述免安装程序包信息数据库,加载和启动所述目标APK,其中,AMS代理通过查询PMS代理中获得目标程序信息,包括ApplicationInfo和ActivityInfo信息,启动目标APK与其各种组件;
S6、PMS代理管理所述免安装程序包信息数据库,配置目标APK在运行中所需各的种组件信息,包括:Activities、Services、Broadcast Receivers和Content Provider;
S7、其他系统服务代理通过截获的所述通信和接口调用请求,代理所述目标应用程序和所述操作系统的交互,确保所述目标APK正常运行。
所述一种安卓系统中免安装运行应用程序的方法的时序图如图4所示。当一个应用程序通过APK加密工具加密并下载到虚拟环境后,PMS代理需要向APK解密模块请求解密以及确认数字签名和证书。需要指出的是,本发明也可以免安装直接运行未加密APK。如果PMS发现APK未加密,则上诉解密步骤省略。当APK文件通过数字签名认证后,PMS需要向APK分析模块请求生成相应数据结构来构造程序的PackageInfo。所有未安装程序的完整包信息会被保存在PMS代理所管理的免安装程序信息数据库中。系统PMS无法识别此数据库,则对本地系统而言此(加密)应用程序未安装。而本系统和发明能够显示该(加密)应用程序,并在虚拟环境中运行。当用户选择该APP图标后,AMS代理会通知容器模块进程为目标APP创建新的容器进程。当新的容器进程构造完成后,容器进程模块会在进程中添加Java和Native钩子,以实现目标应用程序对AMS、PMS和其他系统服务请求重定向到对应的服务代理上。然后,AMS代理通过查询PMS代理中获得目标程序信息,包括ApplicationInfo和ActivityInfo,启动目标APP与其各种组件。如此,一个(加密)移动APP在本发明提供的虚拟环境下能够免安装运行。与现有通过Java反射机制来动态加载运行安卓应用程序不同,本发明技术通过在虚拟环境中提供代理机制来实现程序的免安装运行,从而避免了对系统以及原生APP自身的逻辑进行修改,因而在保护应用开发者利益和终端用户软件安全的同时也提高了安卓软件的兼容性,减少了程序二次开发和测试的开销。
本发明还提供了一种安卓系统中免安装运行应用程序的系统,包括虚拟环境控制程序和APK加密工具。
虚拟环境控制程序包括以下模块:
(1)APK解密模块:用于提示用户输入密码,对加密APK文件进行解密,生成原始APK文件。
(2)APK分析模块:用于分析解密后的APK文件,以生成应用程序运行所需的完整的包信息PackageInfo,包括: Activities、Services、Broadcast Receivers和ContentProvider。APK分析模块解析出的信息存储于免安装程序包信息数据库中。
(3)容器进程模块:用于创建虚拟环境进程以供目标APK运行,并根据存储于免安装程序数据库中的组件信息加载并运行目标APK。
(4)钩子模块:用于动态截获在容器进程中运行的目标APK和操作系统之间的通信和接口调用,并重新导向到本系统提供的系统服务代理模块上去。
(5)PMS代理:用于存储、管理所有非安装程序信息,并连接系统PMS管理系统中已安装程序的信息。
(6)AMS代理:用于加载、启动和管理非安装程序实例,并连接系统AMS管理系统中已安装程序运行实例。
(7)其他系统服务代理,用于实现操作系统和应用程序之间除PMS和AMS之外的接口,比如网络连接,相机等服务接口,代理容器中运行的目标应用程序和安装操作系统进行交互,使得安卓系统认为运行的是虚拟环境控制程序,然而实际加载运行的为目标应用。
现有技术中,一个APP包含一个或多个系统定义的组件,包括: Activities、Services、Broadcast Receivers和Content Provider。其中, Activity组件主要管理应用程序的用户界面; Service组件负责与用户界面无关的程序业务逻辑; BroadcastReceiver组件用于订阅系统消息; Content Provider提供程序之间的数据共享。程序的安装运行包APK由全局配置文件、可执行文件、资源和库等文件和目录组成。全局配置文件申明了程序运行所需的各种信息,包括ApplicationInfo、组件信息(包括AcitivityInfo、ServiceInfo和ProviderInfo)和权限信息。在程序安装过程中,系统PMS会解析全局配置文件,并根据其中申明的标签来建立合适的数据结构以存储完整的安装包信息并加以管理。
现有安卓应用程序安装过程包括以下五个步骤,如图2所示,包括:
(1)安卓安装程序把APK文件复制到特定目录并加以校验。如果APK文件未被修改,其数字签名完整,则安装继续;否者安装程序提示用户安装失败;
(2)PMS对APK文件进行解压,分析其中的全局配置文件;
(3)PMS根据通过全局配置文件解析出的信息创建合适的数据结构以存储目标程序完整的包信息(PackageInfo)。与此同时,应用程序会被分配用户ID和用户组ID,以方便权限管理;
(4)PMS把目标程序信息保存于几个重要数据结构中以供系统和其他程序查询。例如,mPackages以Package名字为关键字存储系统中所有程序的PackageInfo;mActivites用于保存所有程序的ActivityInfo;
(5)构建的信息会被再次集中整理,并存储在系统特定文件中以备系统下次启动时读取。至此,程序安装过程结束。
由此可见,如果一个应用程序不经过安装,其ApplicationInfo和ActivityInfo等组件信息不会注册到系统中。当程序启动时,PMS查询不到相关信息,导致程序启动失败。
现有一个安装后的安卓应用程序的启动过程,如图3所示,包括以下几个步骤:
(1)用户在Launcher程序提供的界面上点击目标程序图标,Launcher程序向AMS发送程序启动请求;
(2)AMS接到启动请求后,会为待启动的应用程序创建一个进程,具体来说,AMS会调用startProcessLocked函数向Zygote进程发送一个创建应用程序进程的请求。接到请求后,Zygote进程进行分裂并调用ZygoteInit.main函数完成ActivityThread类的实例。ActivityThread.main函数是新创建进程的入口,负责创建并进入消息循环,然后把其内部类ApplicationThread作为Binder对象返回给AMS;
(3)AMS在拿到上述Binder对象后,会通过其调用bindApplication函数加载程序到内存,其中,bindApplication函数所需参数之一是待启动程序的ApplicationInfo信息,如果程序没有安装,AMS则无法通过PMS获取该程序的ApplicationInfo信息,以至于程序无法启动;
(4)AMS继续通过上述Binder对象调用sheduleLaunchActivity函数启动程序的主Activity,其中,scheduleLaunchActivity函数所需的参数之一是启动程序的组件信息ActivityInfo,同样,如果程序没有安装,AMS获取程序的ActivityInfo信息;
(5)目标程序在运行中如果要启动其他组件,也会向AMS发送启动请求,AMS在收到请求后,通过PMS得到相应组件的信息,调用相关函数启动该组件,至此,程序启动过程结束。由此可见,如果一个程序未安装,首先Launcher无法通过PMS找到该程序的相关信息,以至于在界面上无法显示该程序,用户看不见图标也就因此无法启动应用。其次,如果程序未安装,AMS在步骤(4)调用bindApplication函数和步骤(5)调用scheduleLaunchActivity函数时无法通过PMS找到程序组件信息,也会导致程序启动失败。
因此,为了在不修改程序逻辑和安卓系统的条件下实现应用程序免安装运行,本发明提供PMS代理和AMS代理,并通过钩子重定向目标程序向系统PMS和AMS的请求到相应代理上。PMS代理负责动态解析APK文件,构建并存储程序运行所需的各种信息。AMS代理负责根据PMS代理提供的各种信息,重新执行bindApplication和scheduleLaunchActivity函数来加载启动未安装的应用程序。此外,本发明还提供各种系统服务代理,来保证程序在运行中能够正常使用这些系统服务。
综上,本发明的有益效果包括:
(1)免安装运行程序避免了繁琐的安装过程,减少了系统启动所需要扫描程序的个数,加快了系统启动速度。避免了现有技术中安装过程中重复确认,重复扫描注册表的冗余步骤,流程简单,提高了安装效率;(2)保护应用开发者利益,通过加密程序,能有效防止应用被逆向工程和篡改,防止程序被嵌入各类病毒、广告等恶意代码(3)通过加密工具和虚拟环境控制程序结合,绑定目标应用只能够在指定移动终端上运行,能有效防止盗版和避免企业级应用在未授权终端平台运行;(4)通过免安装试运行程序,用户可以在体验程序功能的同时,有效避免可疑应用程序对用户系统的破坏,加大了恶意程序入侵系统的难度,保护终端用户安全(5):本系统和技术兼容现有安卓系统,无需运行在root权限下运行,无需修改操作系统,支持现有安卓开发环境。移动应用开发者无需针对本发明安全虚拟环境进行二次开发,可降低其开发成本,同时现有移动应用程序可直接在本虚拟运行环境中运行,并同时提高目标移动应用程序的安全性能;(6)由于本系统和技术无需修改操作系统,方便本发明的终端部署,大大降低了在移动终端上部署的成本,移动终端部署更方便。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (9)
1.一种安卓系统中免安装运行应用程序的方法,其特征在于,包括:
S1、虚拟环境控制程序扫描并筛选出虚拟环境目录中的应用程序文件(AndroidPackage Kit,APK),并将所述虚拟环境目录中的应用程序以程序图标的形式显示在虚拟环境控制程序界面上;
S2、根据用户在所述控制程序的界面上选择的程序图标,确定所述选择的程序图标代表的目标应用程序和目标APK;
S3、APK分析模块根据所述目标APK包含的全局配置文件,解析出运行所述目标APK所需的程序包信息,并将所述程序包信息存储于免安装程序包信息数据库;
S4、所述虚拟环境控制程序通知容器进程模块创建运行所述目标APK所需的容器进程,所述容器进程载入所述目标APK,所述容器进程中的钩子模块动态截获所述目标应用程序与操作系统之间的通信和接口调用请求,所述钩子模块将所述目标应用程序的通信和接口调用请求重新定向发送给活动管理器服务(Activity Manager Service,AMS)代理、包管理器服务(Package Manager Service, PMS)代理和其他系统服务代理;
S5、所述AMS代理接收到所述通信和接口调用请求后,查询所述目标应用程序的所述免安装程序包信息,所述AMS代理通知所述操作系统的AMS启动所述目标APK的组件;
S6、所述组件向所述PMS代理发送信息查询请求,所述PMS代理配置目标应用程序在运行过程中所需的所述组件的信息并返回所述目标应用程序;
S7、所述其他系统服务代理通过截获的所述通信和接口调用请求,代理所述目标应用程序和所述操作系统中的账户管理器、声音管理器、蓝牙管理器、连接管理器的系统交互服务。
2.根据权利要求1所述的一种安卓系统中免安装运行应用程序的方法,其特征在于,所述虚拟环境目录中的APK通过APK加密工具加密,所述目标APK在S3解析之前,通过APK解密模块解密。
3.根据权利要求1所述的一种安卓系统中免安装运行应用程序的方法,其特征在于,所述免安装程序包信息包括:所述目标APK的组件、属性、响应的系统事件和处理系统事件的程序启动位置。
4.根据权利要求3所述的一种安卓系统中免安装运行应用程序的方法,其特征在于,所述属性包括主题、图标、标签和权限。
5.根据权利要求1所述的一种安卓系统中免安装运行应用程序的方法,其特征在于,所述免安装程序包信息数据库存储于手机本地内存中,由所述PMS代理管理,所述操作系统无法识别所述免安装程序包信息数据库。
6.根据权利要求1所述的一种安卓系统中免安装运行应用程序的方法,其特征在于,所述钩子模块包括Java钩子和Native钩子,所述Java钩子和Native钩子用于重写所述目标应用程序内部的Java和C/C++逻辑。
7.根据权利要求1所述的一种安卓系统中免安装运行应用程序的方法,其特征在于,所述组件包括:活动、服务、广播接受者和内容提供者。
8.一种安卓系统中免安装运行应用程序的系统,其特征在于,包括虚拟环境控制程序和APK加密工具。
9.根据权利要求8所述的一种安卓系统中免安装运行应用程序的系统,其特征在于,所述虚拟环境控制程序包括:APK解密模块、APK分析模块、容器进程模块、钩子模块、PMS代理、AMS代理、和其他系统服务代理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710362787.XA CN107220083B (zh) | 2017-05-22 | 2017-05-22 | 一种安卓系统中免安装运行应用程序的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710362787.XA CN107220083B (zh) | 2017-05-22 | 2017-05-22 | 一种安卓系统中免安装运行应用程序的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107220083A true CN107220083A (zh) | 2017-09-29 |
CN107220083B CN107220083B (zh) | 2020-12-18 |
Family
ID=59945051
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710362787.XA Active CN107220083B (zh) | 2017-05-22 | 2017-05-22 | 一种安卓系统中免安装运行应用程序的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107220083B (zh) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108830268A (zh) * | 2018-05-28 | 2018-11-16 | 北京小米移动软件有限公司 | 内容获取方法、装置、终端及存储介质 |
CN109189584A (zh) * | 2018-07-05 | 2019-01-11 | 北京三快在线科技有限公司 | 应用程序之间的通信方法、装置、电子设备及存储介质 |
TWI649694B (zh) * | 2017-10-30 | 2019-02-01 | 國立臺灣大學 | 一種安卓動態框架及其方法 |
CN110389791A (zh) * | 2019-05-22 | 2019-10-29 | 百度在线网络技术(北京)有限公司 | 组件调度方法、装置、设备及存储介质 |
CN110417785A (zh) * | 2019-07-31 | 2019-11-05 | 湖南微算互联信息技术有限公司 | 一种云手机游戏的安装方法、系统和存储介质 |
CN110442327A (zh) * | 2018-05-03 | 2019-11-12 | 阿里巴巴集团控股有限公司 | 一种应用程序构建方法、装置、服务器 |
CN110543789A (zh) * | 2018-05-29 | 2019-12-06 | 腾讯科技(深圳)有限公司 | 手柄与第三方应用程序进行适配的方法、装置及存储介质 |
CN110807191A (zh) * | 2019-09-30 | 2020-02-18 | 奇安信科技集团股份有限公司 | 一种应用程序的安全运行方法及装置 |
CN111492345A (zh) * | 2018-10-15 | 2020-08-04 | 华为技术有限公司 | 优化和运行安卓应用程序的方法以及相关装置 |
CN111510780A (zh) * | 2020-04-10 | 2020-08-07 | 广州华多网络科技有限公司 | 视频直播控制、桥接、流控、播控方法及客户端 |
CN111950012A (zh) * | 2020-08-21 | 2020-11-17 | 深信服科技股份有限公司 | 一种应用运行方法、装置、设备及计算机可读存储介质 |
CN112199151A (zh) * | 2020-09-07 | 2021-01-08 | 成都安易迅科技有限公司 | 一种应用程序的运行方法及装置 |
CN112511585A (zh) * | 2020-10-16 | 2021-03-16 | 麒麟软件有限公司 | 一种基于安卓系统远程桌面的输入重定向方法及系统 |
CN112784289A (zh) * | 2021-01-26 | 2021-05-11 | 济南大学 | Android应用程序加密网络流量的提取系统及方法 |
CN113467784A (zh) * | 2021-07-23 | 2021-10-01 | 腾讯科技(成都)有限公司 | 应用程序处理方法及其装置、计算机可读存储介质 |
CN113849231A (zh) * | 2021-09-01 | 2021-12-28 | 珠海格力电器股份有限公司 | 应用程序运行方法、装置、存储介质及电子设备 |
CN113934464A (zh) * | 2021-12-14 | 2022-01-14 | 北京鲸鲮信息系统技术有限公司 | Linux系统中启动安卓应用的方法、装置和电子设备 |
CN114201237A (zh) * | 2021-12-14 | 2022-03-18 | 北京欧珀通信有限公司 | 应用程序运行方法、装置、电子设备及存储介质 |
CN114579206A (zh) * | 2022-03-17 | 2022-06-03 | 重庆紫光华山智安科技有限公司 | 动态加载应用程序的方法、装置、设备及介质 |
CN115019418A (zh) * | 2021-11-26 | 2022-09-06 | 荣耀终端有限公司 | 蓝牙车钥匙控车方法、装置和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104267983A (zh) * | 2014-09-23 | 2015-01-07 | 上海卓盟信息科技有限公司 | 基于安卓平台的重度游戏封包方法 |
CN104375861A (zh) * | 2014-11-04 | 2015-02-25 | 北京奇虎科技有限公司 | 基于安卓平台的应用程序免安装运行的方法、装置及终端 |
CN104462879A (zh) * | 2014-11-28 | 2015-03-25 | 北京奇虎科技有限公司 | 应用程序免Root运行控制方法与装置 |
-
2017
- 2017-05-22 CN CN201710362787.XA patent/CN107220083B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104267983A (zh) * | 2014-09-23 | 2015-01-07 | 上海卓盟信息科技有限公司 | 基于安卓平台的重度游戏封包方法 |
CN104375861A (zh) * | 2014-11-04 | 2015-02-25 | 北京奇虎科技有限公司 | 基于安卓平台的应用程序免安装运行的方法、装置及终端 |
CN104462879A (zh) * | 2014-11-28 | 2015-03-25 | 北京奇虎科技有限公司 | 应用程序免Root运行控制方法与装置 |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI649694B (zh) * | 2017-10-30 | 2019-02-01 | 國立臺灣大學 | 一種安卓動態框架及其方法 |
CN110442327A (zh) * | 2018-05-03 | 2019-11-12 | 阿里巴巴集团控股有限公司 | 一种应用程序构建方法、装置、服务器 |
CN110442327B (zh) * | 2018-05-03 | 2023-06-23 | 阿里巴巴集团控股有限公司 | 一种应用程序构建方法、装置、服务器 |
CN108830268A (zh) * | 2018-05-28 | 2018-11-16 | 北京小米移动软件有限公司 | 内容获取方法、装置、终端及存储介质 |
CN110543789A (zh) * | 2018-05-29 | 2019-12-06 | 腾讯科技(深圳)有限公司 | 手柄与第三方应用程序进行适配的方法、装置及存储介质 |
CN109189584A (zh) * | 2018-07-05 | 2019-01-11 | 北京三快在线科技有限公司 | 应用程序之间的通信方法、装置、电子设备及存储介质 |
CN111492345A (zh) * | 2018-10-15 | 2020-08-04 | 华为技术有限公司 | 优化和运行安卓应用程序的方法以及相关装置 |
CN110389791A (zh) * | 2019-05-22 | 2019-10-29 | 百度在线网络技术(北京)有限公司 | 组件调度方法、装置、设备及存储介质 |
CN110417785A (zh) * | 2019-07-31 | 2019-11-05 | 湖南微算互联信息技术有限公司 | 一种云手机游戏的安装方法、系统和存储介质 |
CN110807191A (zh) * | 2019-09-30 | 2020-02-18 | 奇安信科技集团股份有限公司 | 一种应用程序的安全运行方法及装置 |
CN111510780A (zh) * | 2020-04-10 | 2020-08-07 | 广州华多网络科技有限公司 | 视频直播控制、桥接、流控、播控方法及客户端 |
CN111510780B (zh) * | 2020-04-10 | 2021-10-26 | 广州方硅信息技术有限公司 | 视频直播控制、桥接、流控、播控方法及客户端 |
CN111950012A (zh) * | 2020-08-21 | 2020-11-17 | 深信服科技股份有限公司 | 一种应用运行方法、装置、设备及计算机可读存储介质 |
CN112199151A (zh) * | 2020-09-07 | 2021-01-08 | 成都安易迅科技有限公司 | 一种应用程序的运行方法及装置 |
CN112199151B (zh) * | 2020-09-07 | 2023-10-24 | 成都安易迅科技有限公司 | 一种应用程序的运行方法及装置 |
CN112511585A (zh) * | 2020-10-16 | 2021-03-16 | 麒麟软件有限公司 | 一种基于安卓系统远程桌面的输入重定向方法及系统 |
CN112511585B (zh) * | 2020-10-16 | 2023-06-30 | 麒麟软件有限公司 | 一种基于安卓系统远程桌面的输入重定向方法及系统 |
CN112784289B (zh) * | 2021-01-26 | 2022-10-18 | 济南大学 | Android应用程序加密网络流量的提取系统及方法 |
CN112784289A (zh) * | 2021-01-26 | 2021-05-11 | 济南大学 | Android应用程序加密网络流量的提取系统及方法 |
CN113467784A (zh) * | 2021-07-23 | 2021-10-01 | 腾讯科技(成都)有限公司 | 应用程序处理方法及其装置、计算机可读存储介质 |
CN113467784B (zh) * | 2021-07-23 | 2023-12-22 | 腾讯科技(成都)有限公司 | 应用程序处理方法及其装置、计算机可读存储介质 |
CN113849231A (zh) * | 2021-09-01 | 2021-12-28 | 珠海格力电器股份有限公司 | 应用程序运行方法、装置、存储介质及电子设备 |
CN113849231B (zh) * | 2021-09-01 | 2024-05-10 | 珠海格力电器股份有限公司 | 应用程序运行方法、装置、存储介质及电子设备 |
CN115019418A (zh) * | 2021-11-26 | 2022-09-06 | 荣耀终端有限公司 | 蓝牙车钥匙控车方法、装置和存储介质 |
CN115019418B (zh) * | 2021-11-26 | 2023-09-05 | 荣耀终端有限公司 | 蓝牙车钥匙控车方法、装置和存储介质 |
CN114201237A (zh) * | 2021-12-14 | 2022-03-18 | 北京欧珀通信有限公司 | 应用程序运行方法、装置、电子设备及存储介质 |
CN113934464A (zh) * | 2021-12-14 | 2022-01-14 | 北京鲸鲮信息系统技术有限公司 | Linux系统中启动安卓应用的方法、装置和电子设备 |
CN114579206A (zh) * | 2022-03-17 | 2022-06-03 | 重庆紫光华山智安科技有限公司 | 动态加载应用程序的方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107220083B (zh) | 2020-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107220083A (zh) | 一种安卓系统中免安装运行应用程序的方法和系统 | |
US8893298B2 (en) | Network linker for secure execution of unsecured apps on a device | |
CN105427096B (zh) | 支付安全沙箱实现方法及系统与应用程序监控方法及系统 | |
US9542552B2 (en) | Extensible platform for securing apps on a mobile device using policies and customizable action points | |
US8549656B2 (en) | Securing and managing apps on a device | |
US8769305B2 (en) | Secure execution of unsecured apps on a device | |
US8990920B2 (en) | Creating a virtual private network (VPN) for a single app on an internet-enabled device or system | |
US8812868B2 (en) | Secure execution of unsecured apps on a device | |
US8955142B2 (en) | Secure execution of unsecured apps on a device | |
Stach et al. | Privacy management for mobile platforms--a review of concepts and approaches | |
US9405520B2 (en) | Method for the dynamic creation of an execution environment for an application to secure the application, associated computer program product and computing apparatus | |
KR101628361B1 (ko) | 리눅스 기반의 보안 운영 체제를 위한 보안 정책 제공 방법 및 시스템 | |
CN106295255B (zh) | 应用程序的加固方法和装置 | |
CN102830992A (zh) | 插件加载方法及系统 | |
US20160055344A1 (en) | Data loss prevention during app execution using e-mail enforcement on a mobile device | |
CN103888948B (zh) | 一种智能终端移动应用的安全控制方法和装置 | |
CN104462997A (zh) | 一种保护移动终端上工作数据的方法、装置和系统 | |
US9672353B2 (en) | Securing and managing apps on a device using policy gates | |
Kawabata et al. | Sanadbox: Sandboxing third party advertising libraries in a mobile application | |
Sohr et al. | Software security aspects of Java-based mobile phones | |
WO2016187556A1 (en) | Creating multiple workspaces in a device | |
CN106648770B (zh) | 一种应用程序安装包的生成方法、加载方法及装置 | |
CN107689934B (zh) | 一种保障信息安全的方法、服务器及客户端 | |
CN114301682A (zh) | 数据处理方法、装置和终端设备 | |
Nazar et al. | Rooting Android–Extending the ADB by an auto-connecting WiFi-accessible service |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20201203 Address after: Yudaojie Qinhuai District of Nanjing City, Jiangsu Province, No. 29 210016 Applicant after: Nanjing University of Aeronautics and Astronautics Address before: 200435 room 50, No. 201, Gonghe village, Shanghai, Baoshan District Applicant before: Han Hao Applicant before: Jin Guang |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |