CN113590166A - 应用程序的更新方法、装置以及计算机可读存储介质 - Google Patents

应用程序的更新方法、装置以及计算机可读存储介质 Download PDF

Info

Publication number
CN113590166A
CN113590166A CN202110882645.2A CN202110882645A CN113590166A CN 113590166 A CN113590166 A CN 113590166A CN 202110882645 A CN202110882645 A CN 202110882645A CN 113590166 A CN113590166 A CN 113590166A
Authority
CN
China
Prior art keywords
application program
target
logic
running
file
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
Application number
CN202110882645.2A
Other languages
English (en)
Other versions
CN113590166B (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.)
Tencent Cyber Shenzhen Co Ltd
Original Assignee
Tencent Cyber Shenzhen 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 Tencent Cyber Shenzhen Co Ltd filed Critical Tencent Cyber Shenzhen Co Ltd
Priority to CN202110882645.2A priority Critical patent/CN113590166B/zh
Publication of CN113590166A publication Critical patent/CN113590166A/zh
Application granted granted Critical
Publication of CN113590166B publication Critical patent/CN113590166B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running

Landscapes

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

Abstract

本申请实施例涉及计算机领域,并公开了一种应用程序的更新方法、装置以及计算机可读存储介质;本申请实施例可以获取待处理应用程序对应的目标文件,并根据预设逻辑规则及目标文件生成目标逻辑编码;基于目标逻辑编码,对模拟运行应用程序的运行逻辑编码进行更新,得到更新后的模拟运行应用程序;启动更新后的模拟运行应用程序,得到更新后的模拟运行应用程序对应的模拟运行环境;通过模拟运行环境运行目标文件,得到待处理应用程序在更新运行逻辑编码后的运行结果。以此,在不具备高级管理权限时,基于模拟运行环境对终端设备上的应用程序的运行逻辑进行更改,提高用户的体验。

Description

应用程序的更新方法、装置以及计算机可读存储介质
技术领域
本申请涉及计算机领域,具体涉及一种应用程序的更新方法、装置以及计算机可读存储介质。
背景技术
随着电子设备产业的发展,应用软件给人们带来极大的生活体验。然而,部分应用软件可能无法满足用户或应用开发者的操作需求,为了使得应用软件满足用户或应用开发者的个性需求,需要对应用软件的运行逻辑进行更改。相关技术是通过获取终端设备的高级管理权限,通过高级管理权限对终端设备上应用程序的代码进行修改,以实现对应用程序的运行逻辑进行更改。
在对现有技术的研究和实践过程中,本申请的发明人发现对于现有的对应用程序的逻辑进行更改时,需要获取相关终端设备的高级管理权限,由于获取终端设备的高级管理权限的门槛比较高,这将影响更改终端设备上的应用程序逻辑的可行性,对于无高级管理权限的终端设备,将无法实现对应用程序的运行逻辑进行更改,影响用户的体验。
发明内容
本申请实施例提供一种应用程序的更新方法、装置以及计算机可读存储介质。可以在无高级管理权限时,对终端设备上应用程度的运行逻辑的更改,提高用户的体验。
本申请实施例提供一种应用程序的更新方法,包括:
获取待处理应用程序对应的目标文件,并根据预设逻辑规则及所述目标文件生成目标逻辑编码;
基于所述目标逻辑编码,对模拟运行应用程序的运行逻辑编码进行更新,得到更新后的模拟运行应用程序;
启动更新后的模拟运行应用程序,得到所述更新后的模拟运行应用程序对应的模拟运行环境;
通过所述模拟运行环境运行所述目标文件,得到所述待处理应用程序在更新运行逻辑编码后的运行结果。
相应的,本申请实施例提供一种应用程序的更新装置,包括:
获取单元,用于获取待处理应用程序对应的目标文件,并根据预设逻辑规则及所述目标文件生成目标逻辑编码;
更新单元,用于基于所述目标逻辑编码,对模拟运行应用程序的运行逻辑编码进行更新,得到更新后的模拟运行应用程序;
启动单元,用于启动更新后的模拟运行应用程序,得到所述更新后的模拟运行应用程序对应的模拟运行环境;
运行单元,用于通过所述模拟运行环境运行所述目标文件,得到所述待处理应用程序在更新运行逻辑编码后的运行结果。
在一些实施例中,所述运行单元,包括:
安装子单元,用于通过所述模拟运行环境对所述目标文件对应的待处理应用程序进行模拟安装,得到模拟安装后的待处理应用程序;
选取子单元,用于通过所述模拟运行环境从目标文件中选取所述模拟安装后的待处理应用程序对应的目标运行组件;
运行子单元,用于通过所述目标运行组件运行所述目标文件,得到所述待处理应用程序在更新运行逻辑编码后的运行结果。
在一些实施例中,所述运行子单元,还用于:
通过所述模拟运行环境对所述目标文件的标识信息进行更改,得到更改标识信息后的目标文件;
通过所述模拟运行环境启动所述目标运行组件;
通过所述目标运行组件运行所述更改标识信息后的目标文件。
在一些实施例中,所述运行子单元,还用于:
获取所述更改标识信息后的目标文件对应的待处理应用程序;
将所述更改标识信息后的目标文件对应的待处理应用程序与所述目标运行组件进行绑定,得到与所述目标运行组件具有绑定关系的待处理应用程序;
通过所述目标运行组件运行所述具有绑定关系的待处理应用程序。
在一些实施例中,所述运行子单元,还用于:
获取所述模拟运行应用程序对应的目标标识信息;
根据所述目标标识信息对所述目标文件的标识信息进行更改,得到所述更改标识信息后的目标文件。
在一些实施例中,所述获取单元,还用于:
对所述目标文件进行反向编译,得到所述目标文件对应的目标字节码;
获取所述目标字节码对应的逻辑编码内容;
根据预设逻辑规则及所述逻辑编码内容生成目标逻辑编码。
在一些实施例中,所述更新单元,还用于:
根据所述目标逻辑编码生成对应的目标逻辑编码子文件;
将所述目标逻辑编码子文件更新至所述模拟运行应用程序对应的逻辑编码文件,得到更新后的逻辑编码文件;
将更新后的逻辑编码文件对应的模拟运行应用程序确定为更新后的模拟运行应用程序。
此外,本申请实施例还提供一种计算机设备,包括处理器和存储器,所述存储器存储有应用程序,所述处理器用于运行所述存储器内的应用程序实现本申请实施例提供的应用程序的更新方法。
此外,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本申请实施例所提供的任一种应用程序的更新方法中的步骤。
此外,本申请实施例还提供一种计算机程序,所述计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例所提供的任一种应用程序的更新方法中的步骤。
本申请实施例可以获取待处理应用程序对应的目标文件,并根据预设逻辑规则及目标文件生成目标逻辑编码;基于目标逻辑编码,对模拟运行应用程序的运行逻辑编码进行更新,得到更新后的模拟运行应用程序;启动更新后的模拟运行应用程序,得到更新后的模拟运行应用程序对应的模拟运行环境;通过模拟运行环境运行目标文件,得到待处理应用程序在更新运行逻辑编码后的运行结果。由此可得,本申请实施例通过模拟运行应用程序对应用程序的运行逻辑进行更新,以在不具备终端设备的高级管理权限时,实现对终端设备上的应用程序的运行逻辑进行更新;进而,在确定待处理应用程序对应的目标逻辑编码后,将目标逻辑编码对模拟运行应用程序的运行逻辑编码进行更新,并运行更新后的模拟运行应用程序,以基于模拟运行环境运行目标文件,得到待更新应用程序在更新运行逻辑后运行结果,提高用户的体验。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的应用程序的更新系统的场景示意图;
图2是本申请实施例提供的应用程序的更新方法的步骤流程示意图;
图3是本申请实施例提供的应用程序的更新方法的另一步骤流程示意图;
图4是本申请实施例提供的运行逻辑编码的更新方法的场景示意图;
图5是本申请实施例提供的目标文件的运行时逻辑的更新方法的流程示意图;
图6是本申请实施例提供的虚拟运行环境框架的结构示意图;
图7是本申请实施例提供的应用程序的更新方法的场景示意图;
图8是本申请实施例提供的应用程序的更新装置的结构示意图;
图9是本申请实施例提供的计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种应用程序的更新方法、装置以及计算机可读存储介质。具体地,本申请实施例将从应用程序的更新装置的角度进行描述,该应用程序的更新装置具体可以集成在计算机设备中,该计算机设备可以是服务器,也可以是终端等设备。其中,该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
例如,参见图1,为本申请实施例提供的应用程序的更新系统的场景示意图。该场景包括计算机设备。
其中,计算机设备可以获取待处理应用程序对应的目标文件,并根据预设逻辑规则及目标文件生成目标逻辑编码;基于目标逻辑编码,对模拟运行应用程序的运行逻辑编码进行更新,得到更新后的模拟运行应用程序;启动更新后的模拟运行应用程序,得到更新后的模拟运行应用程序对应的模拟运行环境;通过模拟运行环境运行目标文件,得到待处理应用程序在更新运行逻辑编码后的运行结果。
其中,本申请实施例的应用程序的更新方式可以包括采集用于目标逻辑编码的生成、更新模拟运行应用程序的逻辑编码、启动模拟运行应用程序、运行目标文件等处理方式。
以下分别进行详细说明。需说明的是,以下实施例的顺序不作为对实施例优选顺序的限定。
参见图2,图2为本申请实施例提供的一种应用程序的更新方法的步骤流程示意图,具体流程如下:
101、获取待处理应用程序对应的目标文件,并根据预设逻辑规则及目标文件生成目标逻辑编码。
其中,该待处理应用程序可以是终端设备或服务器上的应用程序(Application,app),还可以是可安装在终端设备或服务器上的应用程序。例如,该到待处理应用程序可以新闻应用程序(新闻app)、视频应用程序(视频app)、音乐应用程序(音乐app)等。
其中,目标文件可以是应用程序对应的安装包文件或应用程序包文件,该目标文件为一种应用程序包文件格式,用于分发和安装移动应用及中间件。例如,以安卓终端为例,目标文件可以是安卓应用程序包文件(Android application package,APK),为了使得应用程序对应的代码能够在安卓终端设备上运行,需要先对代码进行编译,然后将编译的代码打包成为安卓终端设备的系统能识别的应用程序包文件,即目标文件。
在一些实施方式中,步骤“获取待处理应用程序对应的目标文件”,包括:接收模拟运行应用程序发送的待处理信息,其中,待处理信息包括待处理应用程序对应的标识信息;根据待处理应用程序对应的标识信息查找对应的目标文件。例如,以终端设备作为计算机设备为例,终端设备上预先安装有模拟运应用程序,该模拟运行应用程序用于对应用程序的测试,以及对应用程序文件的动态调试等,如用于对应用程序的运行逻辑的测试;当用户启动终端设备上的模拟运行应用程序后,可通过模拟运行应用程序的预设页面上对终端上的其他已安装或未安装的应用程序进行的测试、模拟运行或修改运行逻辑等操作,如当用户通过模拟运行应用程序的预设页面选择一个应用程序后,以进行对该应用程序进行运行时逻辑的修改,可以理解的是,该当前的应用程序为待处理应用程序,为了对待处理应用程序的运行时逻辑进行修改,需要获取该待处理应用程序对应的应用程序包文件,如APK文件,以便于继续根据该应用程序包文件实现对待处理应用程序的运行时逻辑进行修改。
其中,预设逻辑规则可以是根据用户针对应用程序的控制逻辑意图所定制的规则,该预设逻辑规则作为应用程序的目标运行时逻辑的参照规则,用于对应用程序现有的所有或部分运行时逻辑进行修改。例如,应用程序当前的运行逻辑为“1+1=2”,而用户针对该运行逻辑的控制逻辑意图为“1+1=3”,则可根据该控制逻辑意图生成对应的预设逻辑规则,以便于后续参照该预设逻辑规则对应用程序的运行时逻辑进行修改。
其中,该的目标逻辑编码可以是应用程序的运行逻辑对应的逻辑代码,如JAVA代码。
在一些实施方式中,步骤“根据预设逻辑规则及目标文件生成目标逻辑编码”,包括:
(1)对目标文件进行反向编译,得到目标文件对应的目标字节码。
其中,目标文件可以包括应用程序对应的源文件、源代码等。
其中,反向编译是指通过使用应用程序包编译工具,将应用程序包文件中的源文件和资源反编译出来,得到的字节码、源文件、源编码或资源文件等。反向编译得到的源文件、源编码和资源文件可在后续处理后再进行编译,以达到个性化定制、汉化应用程序包文件等目的。
其中,该目标字节码可以是由目标文件反编译得到的二进制代码,其可包含应用程序的运行逻辑对应的执行程序,该字节码可以由一序列操作码(Operation code,OP)代码/数据对组成,属于一种中间码。
(2)获取目标字节码对应的逻辑编码内容。
其中,该逻辑编码内容可以是反编译得到的字节码对应的逻辑内容。其中,该逻辑编码内容的获取方式可以为:可以通过预设的字节码识别工具对字节码进行识别,得到汉化后的逻辑内容。
需要说明的是,该逻辑编码内容可包括一个或多个子逻辑编码内容,每一子逻辑编码内容对应一个运行逻辑或运行子逻辑。例如,假设逻辑编码内容包括“1+1=2”、“2+2=4”、“3+3=6”等多个子逻辑编码内容,其中,“1+1=2”可以理解为一个运行逻辑或运行子逻辑,同理,“2+2=4”和“3+3=6”可分别理解为一个运行逻辑或运行子逻辑。此处不做限定。
(3)根据预设逻辑规则及逻辑编码内容生成目标逻辑编码。
其中,目标逻辑编码的生成方式可以为:从逻辑编码内容中选取预设逻辑规则对应的目标子逻辑编码内容,其中,该目标子逻辑编码内容为与预设逻辑规则关联的子内容,示例性的,预设逻辑规则为“1+1=3”,则从逻辑编码内容所选取的目标子逻辑编码内容可以为“1+1=2”;根据预设逻辑规则对目标子逻辑编码内容进行修改,得到修改后的目标子逻辑编码内容;对修改后的目标子逻辑编码内容进行转化处理,如编译,得到目标逻辑编码。
为了得到用于修改应用程序的运行时逻辑的目标逻辑,需要确定修改后的最终逻辑编码,即目标逻辑编码。本申请实施例在获取得到目标文件后,通过对目标文件进行反编译,得到目标字节码;通过获取目标字节码对应的逻辑内容;根据预设逻辑规则及逻辑编码内容生成目标逻辑编码。例如,通过静态反编译工具(如jed\jadx\dex2jar等)对目标文件进行反向编译,得到目标文件对应字节码(Bytecode),即目标字节码;通过预设的字节码识别工具对字节码进行识别,得到汉化后的逻辑内容;预设逻辑规则为“1+1=3”,从逻辑编码内容所选取的目标子逻辑编码内容可以为“1+1=2”,根据预设逻辑规则对目标子逻辑编码内容进行修改,得到修改后的目标子逻辑编码内容为“1+1=3”;将“1+1=3”的目标子逻辑编码内容编译转化为目标逻辑编码,如JAVA格式的代码。
通过以上方式,生成用于修改虚拟运行环境中运行时逻辑的目标逻辑编码,以便于后续根据该目标逻辑编码对模拟运行环境的运行时逻辑进行修改,使得模拟运行环境基于修改后的运行时逻辑运行目标文件,获取待处理应用程序在修改运行逻辑后的运行结果或效果。
102、基于目标逻辑编码,对模拟运行应用程序的运行逻辑编码进行更新,得到更新后的模拟运行应用程序。
其中,该模拟运行应用程序可以是预先安装在终端设备或服务器等计算机设备上的测试应用,用于对应用程序进行测试、对应用程序文件的动态调试、对应用程序的运行逻辑的修改/测试等。需要说明的是,运行该模拟运行应用程序,可使得计算机设备具有相应的模拟运行环境,以对计算机设备上的目标应用程序或未安装的应用程序进行模拟运行、运行逻辑修改等。
其中,该运行逻辑编码可以是在启动模拟运行应用后,相应的模拟运行环境在运行目标文件时所采用的运行逻辑对应的编码内容;模拟运行环境基于该运行逻辑编码,可采用对应的运行逻辑运行目标文件。
在一些实施方式中,步骤“基于目标逻辑编码,对模拟运行应用程序的运行逻辑编码进行更新,得到更新后的模拟运行应用程序”,包括:
(1)根据目标逻辑编码生成对应的目标逻辑编码子文件。
其中,该目标逻辑编码子文件可以是包含目标逻辑编码的文件,为逻辑编码在终端设备或服务器上的存储方式。该目标逻辑编码子文件的生成方式可以为:对目标逻辑编码进行打包,得到终端设备或服务器可识别/执行的目标逻辑编码子文件。
(2)将目标逻辑编码子文件更新至模拟运行应用程序对应的逻辑编码文件,得到更新后的逻辑编码文件。
其中,该逻辑编码文件可以是一个应用程序对应的编码文件集合,用于储存该应用程序所要运行的逻辑编码。需要说明的是,在对该逻辑编码文件机械能更新前,该逻辑编码文件可包含一个或多个逻辑编码子文件,或该逻辑编码文件在更新前可不包含逻辑编码子文件。
本申请实施例为了对模拟运行应用程序对应的模拟运行环境在模拟运行其他应用程序时的逻辑进行更新,需要将包含目标逻辑编码的子文件更新至模拟运行应用程序的编码文件集合中。具体的,该逻辑编码文件的更新方式可以为:检测逻辑编码文件是否包含与目标逻辑编码子文件相似的逻辑编码子文件,如,获取目标逻辑编码子文件中的目标逻辑编码与逻辑编码文件中每一逻辑编码子文件对应的逻辑编码之间的编码相似值,当编码相似值大于预设编码相似阈值时,确定逻辑编码文件包含与目标逻辑编码子文件相似的逻辑编码子文件;在检测到逻辑编码文件包含与目标逻辑编码子文件相似的逻辑编码子文件时,将逻辑编码文件中与目标逻辑编码子文件相似的逻辑编码子文件更新为目标逻辑编码子文件,得到更新后的逻辑编码文件,反之,在检测到逻辑编码文件不包含与目标逻辑编码子文件相似的逻辑编码子文件时,将目标逻辑编码子文件更新至模拟运行应用程序对应的逻辑编码文件,得到更新后的逻辑编码文件。
(3)将更新后的逻辑编码文件对应的模拟运行应用程序确定为更新后的模拟运行应用程序。
例如,以预先安装在终端设备或服务器上的模拟运行应用程序为例,为了修改模拟应用程序在运行待处理应用时所有或部分运行逻辑,本申请实施例在获取到目标逻辑编码后,如JAVA格式的逻辑编码,将JAVA格式的逻辑编码打包生成一个目标逻辑编码子文件,并将该目标逻辑编码子文件添加/更新至模拟运行应用程序对应的逻辑编码文件中,以对逻辑编码文件进行更新,得到更新后的模拟运行应用程序,以便于后续模拟运行环境以目标逻辑编码对应的运行逻辑运行目标文件,获取目标逻辑编码对应的运行逻辑的运行结果。
通过该以上方式,根据目标逻辑编码对模拟运行应用程序的运行逻辑编码进行更新,以便于后续的模拟运行环境基于修改后的运行时逻辑运行目标文件,获取待处理应用程序在修改运行逻辑后的运行结果或效果。
103、启动更新后的模拟运行应用程序,得到更新后的模拟运行应用程序对应的模拟运行环境。
为了使得终端设备或服务器得到模拟(虚拟化)运行目标文件的运行环境,需要启动模拟运行应用程序。本申请实施例在安装模拟运行应用程序及更新模拟运行应用程序的运行逻辑编码后,需要启动该更新后的模拟运行应用程序,以使得终端设备或服务器上运行该更新后的模拟运行应用程序,以搭建用于运行目标文件的模拟运行环境。
104、通过模拟运行环境运行目标文件,得到待处理应用程序在更新运行逻辑编码后的运行结果。
为了对待处理应用程序的运行时逻辑进行修改,得到待处理应用程序在更新运行逻辑编码后的运行结果,需要通过模拟运行环境运行目标文件。本申请实施例在启动模拟运行应用程序后,通过模拟运行环境的运行逻辑运行目标文件,得到更新后的运行逻辑编码运行待处理应用程序时的运行结果。
在一些实施方式中,步骤“通过模拟运行环境运行目标文件,得到待处理应用程序在更新运行逻辑编码后的运行结果”,包括:
(1)通过模拟运行环境对目标文件对应的待处理应用程序进行模拟安装,得到模拟安装后的待处理应用程序。
其中,该待处理应用程序可以是终端设备上已经安装或未安装的应用程序。
需要说明的是,本申请实施例是基于模拟运行环境运行待处理应用程序对应的目标文件,但是,待处理应用程序在终端上的实际安装与在模拟运行环境中的模拟安装是存在区别的,本申请实施例对待处理应用程序进行模拟安装,主要目的是获取待处理应用程序对应的源文件和资源数据。例如,在一些实施方式中,假设终端设备上已经真实安装了待处理应用程序,但是仍需要在通过模拟运行环境对相应的待处理应用程序进行安装,从而,在安装过程中获取待处理应用程序对应的源文件及资源数据,以用于后续在模拟运行操作。
在一些实施方式中,步骤“通过模拟运行环境对目标文件对应的待处理应用程序进行模拟安装,得到模拟安装后的待处理应用程序”,包括:
(1.1)通过模拟运行环境对待处理应用程序对应的目标文件进行解压,得到目标解压文件,其中,目标解压文件包括可执行子文件;
(1.2)基于模拟运行环境,将可执行子文件预加载至模拟运行应用程序的可执行文件;
(1.3)基于模拟运行环境,将模拟运行应用程序的可执行文件中的程序代码子文件拷贝至模拟运行应用程序的程序代码文件,得到模拟安装后的待处理应用程序。
其中,可执行子文件可以是包含待处理应用程序对应的全部操作指令合运行时数据的文件。例如,以dex文件作为可执行子文件为例,dex文件是安卓系统(Android系统)的可执行文件,其包含应用程序的全部操作指令以及运行时数据。
其中,程序代码子文件可以是包含程序函数或程序代码的文件,用于提供或分享代码和数据给其他应用程序进行使用。例如,本申请实施例以so文件作为程序代码子文件为例,通过该程序代码子文件提供该待处理应用程序对应的程序代码或程序函数给模拟运行应用程序,以使得模拟运行应用程序对该待处理应用程序对应的程序代码或程序函数进行使用。
为了使得待处理应用程序在模拟运行环境中进模拟安装,本申请实施例在通过对待处理应用程序对应的目标文件进行解压,以得到目标解压文件;将目标解压文件中的可执行子文件加载至模拟运行应用程序对应的可执行文件;将可执行文件中的程序代码子文件拷贝至模拟运行应用程序的程序代码文件,使得模拟运行应用程序可调用该待处理应用程序对应的程序代码子文件所包含的程序代码或程序函数。通过以上方式,实现通过模拟运行环境对目标文件对应的待处理应用程序进行模拟安装。
(2)通过模拟运行环境从目标文件中选取模拟安装后的待处理应用程序对应的目标运行组件。
其中,该目标文件中还可包括组件数据,如包括目标运行组件。
其中,目标运行组件用于承载对应的待处理应用程序的运行。例如,本实施例通过该目标运行组件承载待处理应用程序在模拟运行环境中运行。
为了使得待处理应用程序能够在模拟运行环境中运行,需要选取待处理应用程序对应的目标运行组件。具体的,该目标运行组件的选取方式可以为:对目标文件在待处理应用程序进行模拟安装时解析得到的组件进行采集;将采集的组件与待处理应用程序的标识进行关联,得到具有关联关系的组件存储至预设组件数据库;基于模拟安装后的待处理应用程序的标识,从预设组件数据库中选取与待处理应用程序对应的目标运行组件。
(3)通过目标运行组件运行目标文件,得到待处理应用程序在更新运行逻辑编码后的运行结果。
为了获取待处理应用程序在更新运行逻辑编码后的运行结果,本申请实施例通过目标运行组件运行目标文件,通过模拟运行环境中更新后的运行逻辑运行目标文件,以得到待处理应用程序在更新运行逻辑编码后的运行结果。
在一些实施方式中,步骤“通过目标运行组件运行目标文件”,包括:
(3.1)通过模拟运行环境对目标文件的标识信息进行更改,得到更改标识信息后的目标文件。
其中,该标识信息可以是文件的名称、标号等信息。
由于模拟运行环境在运行目标文件时,对于终端设备或服务器的运行系统而言,当前的模拟运行进程为模拟运行应用程序对应的一个子进程;对于被运行起来的目标文件而言,当前的模拟运行进程属于目标文件所定义的进程本身。这两者之间存在进程差异,进而导致目标文件的代码与运行系统(终端设备或服务器的系统)之间存在理解差异,这可能会导致模拟运行环境运行目标文件失败。
为了避免目标文件的代码与运行系统之间存在理解差异的现象,需要对目标文件的标识信息进行修改,以避免后续模拟运行环境在运行目标文件时出现代码理解差异的现象。
在一些实施方式,步骤“通过模拟运行环境对目标文件的标识信息进行更改,得到更改标识信息后的目标文件”,包括:
(3.1.1)获取模拟运行应用程序对应的目标标识信息;
(3.1.2)根据目标标识信息对目标文件的标识信息进行更改,得到更改标识信息后的目标文件。
为了使得模拟运行环境在运行目标文件时代码与运行系统之间理解一致,本申请实施例对目标文件中运行系统服务所调用的代码进行修改,以使得模拟运行环境在运行目标文件时,目标文件中相关的代码与运行系统之间理解一致。具体的,对目标文件中运行系统服务所调用的代码进行修改的方式可以为:获取模拟运行应用程序对应的目标标识信息;根据目标标识信息对目标文件的标识信息进行更改,如,将目标文件的标识信息更改为目标标识信息,使得目标文件更改后的标识信息与模拟运行应用程序的目标标识信息一致。以此,可使得模拟运行环境在运行目标文件时,对于运行系统而言,当前的模拟运行进程就是模拟运行应用程序对应的进程,而对于被运行起来的目标文件而言,当前的模拟运行进程就是目标文件所定义的进程本身,可使得目标文件中运行系统所调用的代码与运行系统所理解的代码一致,不存在理解差异,确保后续模拟运行环境能够正常运行目标文件。
(3.2)通过模拟运行环境启动目标运行组件。
为了使得模拟运行环境后续能够运行待处理用于程序,需要启动目标运行组件,以便于后续通过目标运行组件运行目标文件,以实现通过模拟运行环境能够运行目标文件对应的待处理应用程序。
(3.3)通过目标运行组件运行更改标识信息后的目标文件。
为了获取待处理应用程序在更新运行逻辑编码后的运行结果,本申请实施例通过目标运行组件运行更改标识信息后的目标文件,以使得目标文件中运行系统所调用的代码与运行系统所理解的代码一致,确保后续模拟运行环境能够正常运行目标文件,得到待处理应用程序在更新运行逻辑编码后的运行结果。
在一些实施方式中,步骤“通过目标运行组件运行更改标识信息后的目标文件”,包括:
(3.3.1)获取更改标识信息后的目标文件对应的待处理应用程序;
(3.3.2)将更改标识信息后的目标文件对应的待处理应用程序与目标运行组件进行绑定,得到与目标运行组件具有绑定关系的待处理应用程序;
(3.3.3)在接收到具有绑定关系的待处理应用程序对应的运行请求时,通过目标运行组件运行更改标识信息后的目标文件。
为了使得目标文件能够在模拟运行环境中运行起来,需要将对应的待处理应用程序与目标运行组件绑定起来,以通过目标运行组件运行目标文件。具体的,将更改标识信息后的目标文件对应的待处理应用程序与目标运行组件进行绑定,得到与目标运行组件具有绑定关系的待处理应用程序;当接收到该具有绑定关系的待处理应用程序的运行请求时,通过目标运行组件运行更改标识信息后的目标文件。以此,获取待处理应用程序在更新运行逻辑编码后的运行结果。
进一步的,在一些实施方式中,“在接收到具有绑定关系的待处理应用程序对应的运行请求时,通过目标运行组件运行更改标识信息后的目标文件”之后,还包括:
在接收到具有绑定关系的待处理应用程序对应的停止运行请求时,对更改标识信息后的目标文件对应的待处理应用程序与目标运行组件之间的绑定关系进行解除;在检测到待处理应用程序与目标运行组件之间不具有绑定关系时,停止目标运行组件对更改标识信息后的目标文件的运行。
在本申请实施例中,为了确定用于模拟运行待处理应用程序的运行时逻辑,首先,通过获取待处理应用程序对应的目标文件,并对目标文件进行反编译,得到目标字节码;然后,获取目标字节码对应的逻辑内容;接着,根据从目标字节码对应的逻辑内容选取与预设逻辑规则相应的目标逻辑内容,该预设逻辑规则为反映用户针对当前的待处理应用程序的控制逻辑意图的规则;最后,根据预设逻辑内容对选取的目标逻辑内容进行修改,得到修改后的目标逻辑内容,并对修改后的目标逻辑内容进行编译转化,得到目标逻辑编码。以此,通过目标逻辑编码修改运行待处理应用程序时的运行逻辑。
为了使得后续以修改后的运行逻辑对待处理应用程序进行运行,本申请实施例通过目标逻辑编码对预先安装的终端设备或服务器上的模拟运行应用程序的运行逻辑编码进行修改,以对模拟运行应用程序的运行逻辑进行更新,得到更新后的模拟运行应用程序。进一步的,启动更新后的模拟运行应用程序,以实现在终端设备或服务器上搭建模拟运行环境,该模拟运行环境包含更新后的运行逻辑,以用于后续运行待处理应用程序对应的目标文件。以此,可在无需终端设备或服务的高级管理权限的前提下,通过在相应的设备上安装虚拟运行应用程序,以利用相关设备中系统平台的虚拟化运行技术,搭建运行目标文件的模拟运行环境;同时,为模拟运行环境添加逻辑注入能力,以将目标文件对应的目标逻辑编码注入模拟运行环境添加逻辑,以用于后续运行待处理应用程序对应的目标文件。本申请实施例可以在无需终端设备或服务的高级管理权限的前提下,对待处理应用程序对应的运行时逻辑进行修改。
需要说明的是,本申请实施例在对待处理应用程序的运行时逻辑进行修改时,通过对模拟运行应用程序的运行逻辑进行修改或更新,以此,可避免直接对待处理应用程序的运行逻辑代码进行修改,造成不良效果。例如,假若直接对目标文件进行修改,由于无法获取目标文件的真实签名,在对目标文件修改后,需要对修改后的逻辑编码的打包,并使用假的签名文件进行签名;而待处理应用程序内的运行逻辑在校验目标文件的签名为假签名时,会导致使用假的签名文件对应目标文件在后续运行中运行失败,可行性比较低。因此,本申请实施例通过对模拟运行应用程序的运行逻辑进行修改或更新,以实现对待处理应用程序的运行时逻辑进行修改,无需对待处理应用程序的目标文件中的运行逻辑代码进行修改,确保后续目标文件的正常运行,具有可靠性。
进一步的,在终端设备或服务器上搭建包含更新后的运行逻辑的模拟运行环境,通过该模拟运行环境运行目标文件,以实现基于更新后的运行逻辑运行目标文件,得到待处理应用程序在更新运行逻辑编码后的运行结果或运行效果。
由上可知,本申请实施例可以获取待处理应用程序对应的目标文件,并根据预设逻辑规则及目标文件生成目标逻辑编码;基于目标逻辑编码,对模拟运行应用程序的运行逻辑编码进行更新,得到更新后的模拟运行应用程序;启动更新后的模拟运行应用程序,得到更新后的模拟运行应用程序对应的模拟运行环境;通过模拟运行环境运行目标文件,得到待处理应用程序在更新运行逻辑编码后的运行结果。由此可得,本申请实施例通过模拟运行应用程序对应用程序的运行逻辑进行更新,以在不具备终端设备的高级管理权限时,实现对终端设备上的应用程序的运行逻辑进行更新;进而,在确定待处理应用程序对应的目标逻辑编码后,将目标逻辑编码对模拟运行应用程序的运行逻辑编码进行更新,并运行更新后的模拟运行应用程序,以基于模拟运行环境运行目标文件,得到待更新应用程序在更新运行逻辑后运行结果,提高用户的体验。
根据上面实施例所描述的方法,以下将举例作进一步详细说明。
本申请实施例以应用程序的更新为例,对本申请实施例提供的应用程序的更新方法作进一步叙述。
参见图3,图3是本申请实施例提供的应用程序的更新方法的另一步骤流程示意图,图4是本申请实施例提供的运行逻辑编码的更新方法的场景示意图,图5是本申请实施例提供的目标文件的运行时逻辑的更新方法的流程示意图,图6是本申请实施例提供的虚拟运行环境框架的结构示意图,图7是本申请实施例提供的应用程序的更新方法的场景示意图;为了便于理解,请一并结合图3、图4、图5、图6和图7,对本申请实施例进行描述。
在本申请实施例中,将从应用程序的更新装置的角度进行描述,该应用程序的更新装置具体可以集成在计算机设备如终端或服务器等设备中。终端或服务器上的处理器执行应用程序的更新方法对应的程序时,该应用程序的更新方法的具体流程如下:
201、获取待处理应用程序对应的目标文件。
其中,该待处理应用程序可以是终端设备或服务器上的应用程序(Application,app),还可以是可安装在终端设备或服务器上的应用程序。例如,该到待处理应用程序可以新闻应用程序(新闻app)、视频应用程序(视频app)、音乐应用程序(音乐app)等。
其中,目标文件可以是应用程序对应的安装包文件或应用程序包文件,该目标文件为一种应用程序包文件格式,用于分发和安装移动应用及中间件。例如,以安卓终端为例,目标文件可以是安卓应用程序包文件(Android application package,APK),为了使得应用程序对应的代码能够在安卓终端设备上运行,需要先对代码进行编译,然后将编译的代码打包成为安卓终端设备的系统能识别的应用程序包文件,即目标文件。
例如,以终端设备作为计算机设备为例,终端设备上预先安装有模拟运应用程序,该模拟运行应用程序用于对应用程序的测试,以及对应用程序文件的动态调试等,如用于对应用程序的运行逻辑的测试;当用户启动终端设备上的模拟运行应用程序后,可通过模拟运行应用程序的预设页面上对终端上的其他已安装或未安装的应用程序进行的测试、模拟运行或修改运行逻辑等操作,如当用户通过模拟运行应用程序的预设页面选择一个应用程序后,以进行对该应用程序进行运行时逻辑的修改,可以理解的是,该当前的应用程序为待处理应用程序,为了对待处理应用程序的运行时逻辑进行修改,需要获取该待处理应用程序对应的应用程序包文件,如APK文件,以便于继续根据该应用程序包文件实现对待处理应用程序的运行时逻辑进行修改。
在本申请实施例中,步骤202-204的过程可以结合图4所示的运行逻辑更新方法的场景进行理解。
202、对目标文件进行反向编译,得到目标文件对应的目标字节码。
其中,该目标字节码可以是由目标文件(APK文件)反编译得到的二进制代码,其可包含应用程序的运行逻辑对应的执行程序,该字节码可以由一序列操作码(Operationcode,OP)代码/数据对组成,属于一种中间码。
反向编译是指通过使用应用程序包编译工具,将应用程序包文件中的源文件和资源反编译出来,得到的字节码、源文件、源编码或资源文件等。
例如,通过静态反编译工具(如jed\jadx\dex2jar等)对目标文件(APK文件)进行反向编译,得到目标文件对应字节码(Bytecode),即目标字节码。以便于后续根据反向编译得到的目标字节码进行后处理,如修改、替换等,以达到个性化定制、汉化应用程序包文件等目的。
203、获取目标字节码对应的逻辑编码内容,并根据预设逻辑规则及逻辑编码内容生成目标逻辑编码。
其中,该逻辑编码内容可以是反编译得到的字节码对应的逻辑内容。其中,该逻辑编码内容的获取方式可以为:可以通过预设的字节码识别工具对字节码进行识别,得到汉化后的逻辑内容。
需要说明的是,该逻辑编码内容可包括一个或多个子逻辑编码内容,每一子逻辑编码内容对应一个运行逻辑或运行子逻辑。例如,假设逻辑编码内容包括“1+1=2”、“2+2=4”、“3+3=6”等多个子逻辑编码内容,其中,“1+1=2”可以理解为一个运行逻辑或运行子逻辑,同理,“2+2=4”和“3+3=6”可分别理解为一个运行逻辑或运行子逻辑。此处不做限定。
例如,通过预设的字节码识别工具对字节码进行识别,得到汉化后的逻辑内容;预设逻辑规则为“1+1=3”,从逻辑编码内容所选取的目标子逻辑编码内容可以为“1+1=2”,根据预设逻辑规则对目标子逻辑编码内容进行修改,得到修改后的目标子逻辑编码内容为“1+1=3”;将“1+1=3”的目标子逻辑编码内容编译转化为目标逻辑编码,如JAVA格式的代码。
204、基于目标逻辑编码,对模拟运行应用程序的运行逻辑编码进行更新,得到更新后的模拟运行应用程序。
其中,该运行逻辑编码可以是在启动模拟运行应用后,相应的模拟运行环境在运行目标文件时所采用的运行逻辑对应的编码内容;模拟运行环境基于该运行逻辑编码,可采用对应的运行逻辑运行目标文件。
在一些实施方式中,步骤“基于目标逻辑编码,对模拟运行应用程序的运行逻辑编码进行更新,得到更新后的模拟运行应用程序”,包括:
(1)根据目标逻辑编码生成对应的目标逻辑编码子文件。
(2)将目标逻辑编码子文件更新至模拟运行应用程序对应的逻辑编码文件,得到更新后的逻辑编码文件。
(3)将更新后的逻辑编码文件对应的模拟运行应用程序确定为更新后的模拟运行应用程序。
例如,以预先安装在终端设备或服务器上的模拟运行应用程序为例,为了修改模拟应用程序在运行待处理应用时所有或部分运行逻辑,本申请实施例在获取到目标逻辑编码后,如JAVA格式的逻辑编码,将JAVA格式的逻辑编码打包生成一个目标逻辑编码子文件,并将该目标逻辑编码子文件添加/更新至模拟运行应用程序对应的逻辑编码文件中,以对逻辑编码文件进行更新,得到更新后的模拟运行应用程序,以便于后续模拟运行环境以目标逻辑编码对应的运行逻辑运行目标文件,获取目标逻辑编码对应的运行逻辑的运行结果。
通过该以上方式,根据目标逻辑编码对模拟运行应用程序的运行逻辑编码进行更新,以便于后续的模拟运行环境基于修改后的运行时逻辑运行目标文件,获取待处理应用程序在修改运行逻辑后的运行结果或效果。
205、启动更新后的模拟运行应用程序,得到更新后的模拟运行应用程序对应的模拟运行环境。
为了使得终端设备或服务器得到模拟(虚拟化)运行目标文件的运行环境,需要启动模拟运行应用程序。本申请实施例在安装模拟运行应用程序及更新模拟运行应用程序的运行逻辑编码后,需要启动该更新后的模拟运行应用程序,以使得终端设备或服务器上运行该更新后的模拟运行应用程序,以搭建用于运行目标文件的模拟运行环境。
以此,可在无需终端设备或服务的高级管理权限的前提下,通过在相应的设备上安装虚拟运行应用程序,以利用相关设备中系统平台的虚拟化运行技术,搭建运行目标文件的模拟运行环境;同时,为模拟运行环境添加逻辑注入能力,以将目标文件对应的目标逻辑编码注入模拟运行环境添加逻辑,以用于后续运行待处理应用程序对应的目标文件。本申请实施例可以在无需终端设备或服务的高级管理权限的前提下,对待处理应用程序对应的运行时逻辑进行修改。
206、通过模拟运行环境对目标文件对应的待处理应用程序进行模拟安装,得到模拟安装后的待处理应用程序。
需要说明的是,本申请实施例是基于模拟运行环境运行待处理应用程序对应的目标文件,但是,待处理应用程序在终端上的实际安装与在模拟运行环境中的模拟安装是存在区别的,本申请实施例对待处理应用程序进行模拟安装,主要目的是获取待处理应用程序对应的源文件和资源数据。例如,在一些实施方式中,假设终端设备上已经真实安装了待处理应用程序,但是仍需要在通过模拟运行环境对相应的待处理应用程序进行安装,从而,在安装过程中获取待处理应用程序对应的源文件及资源数据,以用于后续在模拟运行操作。
在一些实施方式中,步骤“通过模拟运行环境对目标文件对应的待处理应用程序进行模拟安装,得到模拟安装后的待处理应用程序”,包括:
(1.1)通过模拟运行环境对待处理应用程序对应的目标文件进行解压,得到目标解压文件,其中,目标解压文件包括可执行子文件;
(1.2)基于模拟运行环境,将可执行子文件预加载至模拟运行应用程序的可执行文件;
(1.3)基于模拟运行环境,将模拟运行应用程序的可执行文件中的程序代码子文件拷贝至模拟运行应用程序的程序代码文件,得到模拟安装后的待处理应用程序。
其中,可执行子文件可以是包含待处理应用程序对应的全部操作指令合运行时数据的文件。例如,以dex文件作为可执行子文件为例,dex文件是安卓系统(Android系统)的可执行文件,其包含应用程序的全部操作指令以及运行时数据。
其中,程序代码子文件可以是包含程序函数或程序代码的文件,用于提供或分享代码和数据给其他应用程序进行使用。例如,本申请实施例以so文件作为程序代码子文件为例,通过该程序代码子文件提供该待处理应用程序对应的程序代码或程序函数给模拟运行应用程序,以使得模拟运行应用程序对该待处理应用程序对应的程序代码或程序函数进行使用。
具体的,为了使得待处理应用程序在模拟运行环境中进模拟安装,本申请实施例在通过对待处理应用程序对应的目标文件进行解压,以得到目标解压文件;将目标解压文件中的可执行子文件(dex文件)加载至模拟运行应用程序对应的可执行文件;将可执行文件中的程序代码子文件(so文件)拷贝至模拟运行应用程序的程序代码文件,使得模拟运行应用程序可调用该待处理应用程序对应的程序代码子文件所包含的程序代码或程序函数。通过以上方式,实现通过模拟运行环境对目标文件对应的待处理应用程序进行模拟安装。
207、通过模拟运行环境从目标文件中选取模拟安装后的待处理应用程序对应的目标运行组件。
其中,该目标文件中还可包括组件数据,如包括目标运行组件。
其中,目标运行组件用于承载对应的待处理应用程序的运行。例如,本实施例通过该目标运行组件承载待处理应用程序在模拟运行环境中运行。
为了使得待处理应用程序能够在模拟运行环境中运行,需要选取待处理应用程序对应的目标运行组件。具体的,该目标运行组件的选取方式可以为:对目标文件在待处理应用程序进行模拟安装时解析得到的组件进行采集;将采集的组件与待处理应用程序的标识进行关联,得到具有关联关系的组件存储至预设组件数据库;基于模拟安装后的待处理应用程序的标识,从预设组件数据库中选取与待处理应用程序对应的目标运行组件。
208、通过模拟运行环境对目标文件的标识信息进行更改,得到更改标识信息后的目标文件。
由于模拟运行环境在运行目标文件时,对于终端设备或服务器的运行系统而言,当前的模拟运行进程为模拟运行应用程序对应的一个子进程;对于被运行起来的目标文件而言,当前的模拟运行进程属于目标文件所定义的进程本身。这两者之间存在进程差异,进而导致目标文件的代码与运行系统(终端设备或服务器的系统)之间存在理解差异,这可能会导致模拟运行环境运行目标文件失败。
为了避免目标文件的代码与运行系统之间存在理解差异的现象,需要对目标文件中运行系统服务所调用的代码进行修改,将目标文件的身份信息参数修改成虚拟运行应用程序的身份信息参数,其中,该身份信息参数可以是目标文件的包名,如目标文件的标识信息。
具体的,获取模拟运行应用程序对应的目标标识信息;根据目标标识信息对目标文件的标识信息进行更改,得到更改标识信息后的目标文件。以此,可使得模拟运行环境在运行目标文件时,对于运行系统而言,当前的模拟运行进程就是模拟运行应用程序对应的进程,而对于被运行起来的目标文件而言,当前的模拟运行进程就是目标文件所定义的进程本身,可使得目标文件中运行系统所调用的代码与运行系统所理解的代码一致,不存在理解差异,确保后续模拟运行环境能够正常运行目标文件。
其中,目标文件的标识信息进行更改的方式可以为:将目标文件的标识信息更改为目标标识信息,使得目标文件更改后的标识信息与模拟运行应用程序的目标标识信息一致。以此,使得目标文件中运行系统所调用的代码与运行系统所理解的代码一致,以避免后续模拟运行环境在运行目标文件时出现代码理解差异的现象。
209、将更改标识信息后的目标文件对应的待处理应用程序与目标运行组件进行绑定,得到与目标运行组件具有绑定关系的待处理应用程序。
为了使得目标文件能够在模拟运行环境中运行起来,需要将对应的待处理应用程序与目标运行组件绑定起来,以通过目标运行组件运行目标文件。具体的,将更改标识信息后的目标文件对应的待处理应用程序与目标运行组件进行绑定,得到与目标运行组件具有绑定关系的待处理应用程序。
210、在接收到具有绑定关系的待处理应用程序对应的运行请求时,通过目标运行组件运行更改标识信息后的目标文件,得到待处理应用程序在更新运行逻辑编码后的运行结果。
当接收到该具有绑定关系的待处理应用程序的运行请求时,通过目标运行组件运行更改标识信息后的目标文件。以此,获取待处理应用程序在更新运行逻辑编码后的运行结果或运行效果。
进一步的,在一些实施方式中,“在接收到具有绑定关系的待处理应用程序对应的运行请求时,通过目标运行组件运行更改标识信息后的目标文件”之后,还包括:
在接收到具有绑定关系的待处理应用程序对应的停止运行请求时,对更改标识信息后的目标文件对应的待处理应用程序与目标运行组件之间的绑定关系进行解除;在检测到待处理应用程序与目标运行组件之间不具有绑定关系时,停止目标运行组件对更改标识信息后的目标文件的运行。
如图5所示,为本申请实施例提供的目标文件的运行时逻辑的更新方法的流程示意图。在本申请实施例中,通过执行步骤201-210,以实现如图5中的流程,具体的,图5所示的应用程序的更新方法流程具体如下:
301、获取待处理应用程序对应的目标文件。
302、通过对目标文件进行静态反编译,并根据反编译的目标字节码确定待修改的目标逻辑编码。
303、根据目标逻辑编码对模拟运行应用程序的运行逻辑编码进行修改,以实现对模拟运行环境的运行逻辑进行修改。
304、在无高级管理权限的安卓设备上启动模拟运行应用程序,以运行目标文件,得到修改运行逻辑后的运行效果。
具体的,准备好目标APK文件、模拟运行框架工程代码,同时准备好安卓机器以及静态反编译工具;利用静态反编译工具获得目标文件(APK)中目标逻辑的实现,基于代码实现,在模拟运行框架工程中编写目标Hook逻辑(目标逻辑编码);在目标安卓机器上安装结合了目标逻辑编码的模拟运行环境框架App(模拟运行应用程序),并在模拟运行框架App上运行目标文件(APK),得到修改后的运行效果。
为了便于理解,本申请实施例以游戏类的应用程序为例,以对本申请实施例进行叙述。示例性的,以游戏应用作为待处理应用为例,首先,获取游戏应用的安装包文件或应用程序包文件(APK文件),并通过静态反编译工具(如jed\jadx\dex2jar等)对游戏应用的APK文件进行静态反编译,得到APK文件对应的游戏代码文件,其中,该游戏代码文件可包含目标字节码(Bytecode)、资源文件、链接函数文件(so文件)、版本信息配置等等;然后,通过预设的字节码识别工具对目标字节码进行识别,得到汉化后的游戏逻辑内容,并根据预设的游戏运行逻辑规则对汉化后的游戏逻辑内容中的一个或多个游戏运行子逻辑进行修改,得到包含修改后的游戏运行逻辑的目标游戏逻辑编码,如JAVA格式的编码;接着,根据该目标游戏逻辑编码对模拟运行应用程序的运行逻辑编码进行更新,得到更新后的模拟运行应用程序;进而,启动更新后的模拟运行应用程序,得到包含修改的游戏运行子逻辑的模拟运行环境,并通过模拟运行环境对目标文件对应的游戏应用进行模拟安装;最后,基于模拟运行环境,选取游戏应用对应的APK文件中的运行组件(Activity组件),以及将游戏应用对应的APK文件的包名修改为模拟运行应用的包名,并将修改包名后的APK文件与Activity组件进行绑定,进而,在接收到运行指令时,通过Activity组件运行修改包名后的APK文件,使得根据修改后的运行逻辑运行运行游戏应用,以实现对游戏应用的运行时逻辑进行修改。以此,可在不具备终端设备的高级管理权限时,实现对终端设备上的应用程序的运行逻辑进行更新,得到游戏应用程序在更新运行逻辑后的运行结果或运行效果。
需要说的是,关于流程301-304的具体实施可参见前面的实施例,在此不作赘述。
此外,本申请实施例还提供一种模拟运行环境框架。如图6所示,该模拟运行环境框架40可以按照进程划分为三大块:模拟运行环境主进程(Host)41、统一管理进程42以及模拟运行进程43,其中,每个进程分别承担不同运行职责,最终合为一个整体,达成虚拟化运行目的。
其中,模拟运行环境主进程(Host)41:每个安卓App至少拥有一个进程,普通App一个进程即可承载所有运行逻辑。当App分为多个进程时,习惯行把进程名称与App的包名同名的进程成为主进程。在虚拟化运行环境中,主进程主要负责UI展示框架实现。通过Android官方及相关生态提供的UI组件,搭建一套UI实现,承载虚拟运行环境所需的UI操作。核心的UI操作包括:“平行空间”页面(安装到虚拟化运行环境的APP)、添加应用按钮(用于选择手机上的app,以便将它安装到虚拟化运行环境之中)。
其中,统一管理进程42:该进程是整个虚拟化运行环境实现中相对来说工作量最大的一个模块。从功能上说,它主要负责:目标文件安装及管理、模拟运行进程管理、运行组件堆栈管理。如此设计一方面是为了把相关逻辑实现的更加内聚,便于维护管理;另一方面,通过把这些逻辑抽离到独立进程内,即是出现兼容性异常,也不至于导致整个App崩溃。此进程中三模块主要工作如下:
(1)目标文件安装及管理:负责所有APK文件安装动作。虚拟环境中触发的所有安装行为最终都需要通过此进程内的APK安装接口实现。APK文件安装主要包括:APK文件解压、触发dex文件预加载、so文件拷贝等动作。另外,此模块同时提供已经安装的APK的查询动作的实现,包括:查询某app是否已安装、查询某app的版本信息等。
(2)模拟运行进程管理:此模块主要负责管理用于承载目标应用的运行的模拟运行进程。通过收集管理安装过程中解析得到的四大组件数据,如目标运行组件(Activity组件)、服务组件(Service组件)、内容提供组件(Content Provider)、广播接收组件(BroadcastReceiver),该模块可以很明确知道APK内包含哪些组件。当接收到启动某个指定app时,此模块会从预埋的组件中选择一个做为承载此app运行的组件,并将其绑定到目标app的目标组件上。当需要结束某个被模拟运行的app时,此模块通过进程操作接口,关闭相关的进程组件,达到退出效果。
(3)运行组件堆栈管理:此模块主要负责记录模拟运行进程当前打开了哪些activity组件,前后顺序关系是怎样的,启动标记是怎样。记录这些信息主要是为了实现正确的页面返回和拉起时页面堆栈的变化。最常见的功能模块就是返回栈的实现。
其中,模拟运行进程43包含进程核心的两个子模块分别是:系统服务接口(Hook)和模拟运行应用程序的逻辑。具体的,模拟运行应用程序的逻辑不需要额外的工作,仅需要触发入口页面拉起动作,即触发模拟运行应用程序的activity组件,目标文件(APK)中后续的运行逻辑自然就会一并被触发执行。而系统服务接口(Hook)则是整个虚拟运行逻辑最终可以正常运行起来的关键之一。对于安卓系统来说,当前运行的模拟运行进程只是虚拟化运行环境app的一个子进程而已;而对于被运行起来的APK而言,当前运行的模拟运行进程应该就是APK所定义的进程本身;这中间目标APK的代码和安卓系统之间存在理解差异,因此需要一层转义代码,使得:对于安卓系统来说,当前运行的模拟运行进程就是虚拟化运行环境app的进程;对目标APK而言,当前运行的模拟运行进程应该就是APK所定义的进程本身。这中间核心工作是修改目标APK中所有与安卓系统服务调用相关的代码,将身份信息参数修改成虚拟化运行环境app的身份参数(参数主要是包名)。而这些修改逻辑主要通过静态、动态代理,修改进程内系统服务的本地对象来实现。
此外,本申请实施例还提供一种应用程序的更新方法的场景示意图。如图7所示,其反应了安卓系统与模拟运行环境之间的结构关系或逻辑关系。图7展示逻辑修改操作的核心实现思路:逻辑修改的操作最终在运行目标app的“模拟运行进程”中完成;利用反射、Java Hook技术完成逻辑修改动作。当启动逻辑修改能力之后,模拟运行进程运行所得到的结果即是按照修改逻辑改动之后的输出。
需要说明的是,本技术方案利用模拟运行目标文件的方式实现免高级管理权限(root)修改目标应用(待处理应用程序)运行时逻辑的效果,大大降低动态修改APK文件逻辑的门槛。此外,可用于安卓平台自动化测试、发布版本APK文件调试等场景,同时逻辑修改方案本身属于平台类技术,通过结合具体的逻辑的修改,可达成不同的功能与效果。
由上可知,本申请实施例可以获取待处理应用程序对应的目标文件,并根据预设逻辑规则及目标文件生成目标逻辑编码;基于目标逻辑编码,对模拟运行应用程序的运行逻辑编码进行更新,得到更新后的模拟运行应用程序;启动更新后的模拟运行应用程序,得到更新后的模拟运行应用程序对应的模拟运行环境;通过模拟运行环境运行目标文件,得到待处理应用程序在更新运行逻辑编码后的运行结果。由此可得,本申请实施例通过模拟运行应用程序对应用程序的运行逻辑进行更新,以在不具备终端设备的高级管理权限时,实现对终端设备上的应用程序的运行逻辑进行更新;进而,在确定待处理应用程序对应的目标逻辑编码后,将目标逻辑编码对模拟运行应用程序的运行逻辑编码进行更新,并运行更新后的模拟运行应用程序,以基于模拟运行环境运行目标文件,得到待更新应用程序在更新运行逻辑后运行结果,提高用户的体验。
为了更好地实施以上方法,本申请实施例还提供一种应用程序的更新装置,该应用程序的更新装置可以集成在网络设备,比如服务器或终端等设备中,该终端可以包括平板电脑、笔记本电脑和/或个人计算机等。
例如,如图8所示,该应用程序的更新装置可以包括获取单元501、更新单元502、启动单元503和运行单元504。
获取单元501,用于获取待处理应用程序对应的目标文件,并根据预设逻辑规则及所述目标文件生成目标逻辑编码;
更新单元502,用于基于所述目标逻辑编码,对模拟运行应用程序的运行逻辑编码进行更新,得到更新后的模拟运行应用程序;
启动单元503,用于启动更新后的模拟运行应用程序,得到所述更新后的模拟运行应用程序对应的模拟运行环境;
运行单元504,用于通过所述模拟运行环境运行所述目标文件,得到所述待处理应用程序在更新运行逻辑编码后的运行结果。
在一些实施例中,所述运行单元504,包括:
安装子单元,用于通过所述模拟运行环境对所述目标文件对应的待处理应用程序进行模拟安装,得到模拟安装后的待处理应用程序;
选取子单元,用于通过所述模拟运行环境从目标文件中选取所述模拟安装后的待处理应用程序对应的目标运行组件;
运行子单元,用于通过所述目标运行组件运行所述目标文件,得到所述待处理应用程序在更新运行逻辑编码后的运行结果。
在一些实施例中,所述运行子单元,还用于:
通过所述模拟运行环境对所述目标文件的标识信息进行更改,得到更改标识信息后的目标文件;
通过所述模拟运行环境启动所述目标运行组件;
通过所述目标运行组件运行所述更改标识信息后的目标文件。
在一些实施例中,所述运行子单元,还用于:
获取所述更改标识信息后的目标文件对应的待处理应用程序;
将所述更改标识信息后的目标文件对应的待处理应用程序与所述目标运行组件进行绑定,得到与所述目标运行组件具有绑定关系的待处理应用程序;
通过所述目标运行组件运行所述具有绑定关系的待处理应用程序。
在一些实施例中,所述运行子单元,还用于:
获取所述模拟运行应用程序对应的目标标识信息;
根据所述目标标识信息对所述目标文件的标识信息进行更改,得到所述更改标识信息后的目标文件。
在一些实施例中,所述获取单元501,还用于:
对所述目标文件进行反向编译,得到所述目标文件对应的目标字节码;
获取所述目标字节码对应的逻辑编码内容;
根据预设逻辑规则及所述逻辑编码内容生成目标逻辑编码。
在一些实施例中,所述更新单元502,还用于:
根据所述目标逻辑编码生成对应的目标逻辑编码子文件;
将所述目标逻辑编码子文件更新至所述模拟运行应用程序对应的逻辑编码文件,得到更新后的逻辑编码文件;
将更新后的逻辑编码文件对应的模拟运行应用程序确定为更新后的模拟运行应用程序。
在一些实施例中,运行单元504,还用于:
通过模拟运行环境对待处理应用程序对应的目标文件进行解压,得到目标解压文件,其中,目标解压文件包括可执行子文件;
基于模拟运行环境,将可执行子文件预加载至模拟运行应用程序的可执行文件;
基于模拟运行环境,将模拟运行应用程序的可执行文件中的程序代码子文件拷贝至模拟运行应用程序的程序代码文件,得到模拟安装后的待处理应用程序。
在一些实施例中,运行单元504,还具体用于:通过模拟运行环境对目标文件的标识信息进行更改,得到更改标识信息后的目标文件;通过模拟运行环境启动目标运行组件;通过目标运行组件运行更改标识信息后的目标文件。
在一些实施例中,运行单元504,还具体用于:
获取更改标识信息后的目标文件对应的待处理应用程序;
将更改标识信息后的目标文件对应的待处理应用程序与目标运行组件进行绑定,得到与目标运行组件具有绑定关系的待处理应用程序;
在接收到具有绑定关系的待处理应用程序对应的运行请求时,通过目标运行组件运行更改标识信息后的目标文件。
在一些实施例中,应用程序的更新装置还包括控制单元,具体用于:在接收到具有绑定关系的待处理应用程序对应的停止运行请求时,对更改标识信息后的目标文件对应的待处理应用程序与目标运行组件之间的绑定关系进行解除;在检测到待处理应用程序与目标运行组件之间不具有绑定关系时,停止目标运行组件对更改标识信息后的目标文件的运行。
由以上可知,本申请实施例通过获取单元501获取待处理应用程序对应的目标文件,并根据预设逻辑规则及目标文件生成目标逻辑编码;通过更新单元502基于目标逻辑编码,对模拟运行应用程序的运行逻辑编码进行更新,得到更新后的模拟运行应用程序;通过启动单元503启动更新后的模拟运行应用程序,得到更新后的模拟运行应用程序对应的模拟运行环境;运行单元504用于通过模拟运行环境运行目标文件,得到待处理应用程序在更新运行逻辑编码后的运行结果。由此可得,本申请实施例通过模拟运行应用程序对应用程序的运行逻辑进行更新,以在不具备终端设备的高级管理权限时,实现对终端设备上的应用程序的运行逻辑进行更新;进而,在确定待处理应用程序对应的目标逻辑编码后,将目标逻辑编码对模拟运行应用程序的运行逻辑编码进行更新,并运行更新后的模拟运行应用程序,以基于模拟运行环境运行目标文件,得到待更新应用程序在更新运行逻辑后运行结果,提高用户的体验。
本申请实施例还提供一种计算机设备,如图9所示,其示出了本申请实施例所涉及的计算机设备的结构示意图,具体来讲:
该计算机设备可以包括一个或者一个以上处理核心的处理器601、一个或一个以上计算机可读存储介质的存储器602、电源603和输入单元604等部件。本领域技术人员可以理解,图9中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器601是该计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器602内的软件程序和/或模块,以及调用存储在存储器602内的数据,执行计算机设备的各种功能和处理数据,从而对计算机设备进行整体监控。可选的,处理器601可包括一个或多个处理核心;优选的,处理器601可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器601中。
存储器602可用于存储软件程序以及模块,处理器601通过运行存储在存储器602的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器602可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器602还可以包括存储器控制器,以提供处理器601对存储器602的访问。
计算机设备还包括给各个部件供电的电源603,优选的,电源603可以通过电源管理系统与处理器601逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源603还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该计算机设备还可包括输入单元604,该输入单元604可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,计算机设备还可以包括显示单元等,在此不再赘述。具体在本申请实施例中,计算机设备中的处理器601会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器602中,并由处理器601来运行存储在存储器602中的应用程序,从而实现各种功能,如下:
获取待处理应用程序对应的目标文件,并根据预设逻辑规则及目标文件生成目标逻辑编码;基于目标逻辑编码,对模拟运行应用程序的运行逻辑编码进行更新,得到更新后的模拟运行应用程序;启动更新后的模拟运行应用程序,得到更新后的模拟运行应用程序对应的模拟运行环境;通过模拟运行环境运行目标文件,得到待处理应用程序在更新运行逻辑编码后的运行结果。
以上各个操作的具体实施可参见前面的实施例,在此不作赘述。
由上可知,本申请实施例可以获取待处理应用程序对应的目标文件,并根据预设逻辑规则及目标文件生成目标逻辑编码;基于目标逻辑编码,对模拟运行应用程序的运行逻辑编码进行更新,得到更新后的模拟运行应用程序;启动更新后的模拟运行应用程序,得到更新后的模拟运行应用程序对应的模拟运行环境;通过模拟运行环境运行目标文件,得到待处理应用程序在更新运行逻辑编码后的运行结果。由此可得,本申请实施例通过模拟运行应用程序对应用程序的运行逻辑进行更新,以在不具备终端设备的高级管理权限时,实现对终端设备上的应用程序的运行逻辑进行更新;进而,在确定待处理应用程序对应的目标逻辑编码后,将目标逻辑编码对模拟运行应用程序的运行逻辑编码进行更新,并运行更新后的模拟运行应用程序,以基于模拟运行环境运行目标文件,得到待更新应用程序在更新运行逻辑后运行结果,提高用户的体验。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本申请实施例所提供的任一种应用程序的更新方法中的步骤。例如,该指令可以执行如下步骤:
获取待处理应用程序对应的目标文件,并根据预设逻辑规则及目标文件生成目标逻辑编码;基于目标逻辑编码,对模拟运行应用程序的运行逻辑编码进行更新,得到更新后的模拟运行应用程序;启动更新后的模拟运行应用程序,得到更新后的模拟运行应用程序对应的模拟运行环境;通过模拟运行环境运行目标文件,得到待处理应用程序在更新运行逻辑编码后的运行结果。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该计算机可读存储介质中所存储的指令,可以执行本申请实施例所提供的任一种应用程序的更新方法中的步骤,因此,可以实现本申请实施例所提供的任一种应用程序的更新方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种应用程序的更新方法、装置以及计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种应用程序的更新方法,其特征在于,包括:
获取待处理应用程序对应的目标文件,并根据预设逻辑规则及所述目标文件生成目标逻辑编码;
基于所述目标逻辑编码,对模拟运行应用程序的运行逻辑编码进行更新,得到更新后的模拟运行应用程序;
启动更新后的模拟运行应用程序,得到所述更新后的模拟运行应用程序对应的模拟运行环境;
通过所述模拟运行环境运行所述目标文件,得到所述待处理应用程序在更新运行逻辑编码后的运行结果。
2.根据权利要求1所述的方法,其特征在于,所述通过所述模拟运行环境运行所述目标文件,得到所述待处理应用程序在更新运行逻辑编码后的运行结果,包括:
通过所述模拟运行环境对所述目标文件对应的待处理应用程序进行模拟安装,得到模拟安装后的待处理应用程序;
通过所述模拟运行环境从目标文件中选取所述模拟安装后的待处理应用程序对应的目标运行组件;
通过所述目标运行组件运行所述目标文件,得到所述待处理应用程序在更新运行逻辑编码后的运行结果。
3.根据权利要求2所述的方法,其特征在于,所述通过所述目标运行组件运行所述目标文件,包括:
通过所述模拟运行环境对所述目标文件的标识信息进行更改,得到更改标识信息后的目标文件;
通过所述模拟运行环境启动所述目标运行组件;
通过所述目标运行组件运行所述更改标识信息后的目标文件。
4.根据权利要求3所述的方法,其特征在于,所述通过所述目标运行组件运行所述更改标识信息后的目标文件,包括:
获取所述更改标识信息后的目标文件对应的待处理应用程序;
将所述更改标识信息后的目标文件对应的待处理应用程序与所述目标运行组件进行绑定,得到与所述目标运行组件具有绑定关系的待处理应用程序;
在接收到所述具有绑定关系的待处理应用程序对应的运行请求时,通过所述目标运行组件运行所述更改标识信息后的目标文件。
5.根据权利要求3所述的方法,其特征在于,所述通过所述模拟运行环境对所述目标文件的标识信息进行更改,得到更改标识信息后的目标文件,包括:
获取所述模拟运行应用程序对应的目标标识信息;
根据所述目标标识信息对所述目标文件的标识信息进行更改,得到所述更改标识信息后的目标文件。
6.根据权利要求1所述的方法,其特征在于,所述根据预设逻辑规则及所述目标文件生成目标逻辑编码,包括:
对所述目标文件进行反向编译,得到所述目标文件对应的目标字节码;
获取所述目标字节码对应的逻辑编码内容;
根据预设逻辑规则及所述逻辑编码内容生成目标逻辑编码。
7.根据权利要求1所述的方法,其特征在于,所述基于所述目标逻辑编码,对模拟运行应用程序的运行逻辑编码进行更新,得到更新后的模拟运行应用程序,包括:
根据所述目标逻辑编码生成对应的目标逻辑编码子文件;
将所述目标逻辑编码子文件更新至所述模拟运行应用程序对应的逻辑编码文件,得到更新后的逻辑编码文件;
将更新后的逻辑编码文件对应的模拟运行应用程序确定为更新后的模拟运行应用程序。
8.一种应用程序的更新装置,其特征在于,包括:
获取单元,用于获取待处理应用程序对应的目标文件,并根据预设逻辑规则及所述目标文件生成目标逻辑编码;
更新单元,用于基于所述目标逻辑编码,对模拟运行应用程序的运行逻辑编码进行更新,得到更新后的模拟运行应用程序;
启动单元,用于启动更新后的模拟运行应用程序,得到所述更新后的模拟运行应用程序对应的模拟运行环境;
运行单元,用于通过所述模拟运行环境运行所述目标文件,得到所述待处理应用程序在更新运行逻辑编码后的运行结果。
9.根据权利要求8所述的装置,其特征在于,所述运行单元包括:
安装子单元,用于通过所述模拟运行环境对所述目标文件对应的待处理应用程序进行模拟安装,得到模拟安装后的待处理应用程序;
选取子单元,用于通过所述模拟运行环境从目标文件中选取所述模拟安装后的待处理应用程序对应的目标运行组件;
运行子单元,用于通过所述目标运行组件运行所述目标文件,得到所述待处理应用程序在更新运行逻辑编码后的运行结果。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质为计算机可读并存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至7任一项所述的应用程序的更新方法中的步骤。
CN202110882645.2A 2021-08-02 2021-08-02 应用程序的更新方法、装置以及计算机可读存储介质 Active CN113590166B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110882645.2A CN113590166B (zh) 2021-08-02 2021-08-02 应用程序的更新方法、装置以及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110882645.2A CN113590166B (zh) 2021-08-02 2021-08-02 应用程序的更新方法、装置以及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN113590166A true CN113590166A (zh) 2021-11-02
CN113590166B CN113590166B (zh) 2024-03-26

Family

ID=78253945

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110882645.2A Active CN113590166B (zh) 2021-08-02 2021-08-02 应用程序的更新方法、装置以及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN113590166B (zh)

Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996014617A1 (en) * 1994-11-07 1996-05-17 Temple University - Of The Commonwealth System Higher Education Multicomputer system and method
US20050155027A1 (en) * 2004-01-09 2005-07-14 Wei Coach K. System and method for developing and deploying computer applications over a network
CN102436385A (zh) * 2011-11-15 2012-05-02 电子科技大学 一种可编程逻辑器件配置文件在线更新装置
CN102567079A (zh) * 2011-12-29 2012-07-11 中国人民解放军国防科学技术大学 基于渐进式踪迹更新的并行程序能耗模拟评估方法
CN104216729A (zh) * 2013-06-05 2014-12-17 阿里巴巴集团控股有限公司 应用系统的逻辑模块更新实现方法及装置
US20150332043A1 (en) * 2014-05-15 2015-11-19 Auckland Uniservices Limited Application analysis system for electronic devices
CN106776803A (zh) * 2016-11-24 2017-05-31 北京锐安科技有限公司 一种日志记录的更新方法及装置
CN106844220A (zh) * 2017-03-09 2017-06-13 北京融信易安信息技术有限公司 一种模拟计算机网络应用程序真实运行环境的测试方法和系统
CN108536524A (zh) * 2018-03-13 2018-09-14 Oppo广东移动通信有限公司 资源更新方法、装置、终端及存储介质
CN108804913A (zh) * 2018-04-27 2018-11-13 北京奇艺世纪科技有限公司 应用程序的运行方法和装置
CN108829581A (zh) * 2018-05-22 2018-11-16 平安科技(深圳)有限公司 应用程序测试方法、装置、计算机设备及存储介质
CN109491910A (zh) * 2018-11-07 2019-03-19 紫光测控有限公司 一种保护逻辑和控制逻辑的可视化仿真调试方法及系统
CN110059001A (zh) * 2019-03-15 2019-07-26 平安普惠企业管理有限公司 程序自动升级控制方法、装置、计算机设备及存储介质
CN110244984A (zh) * 2018-03-06 2019-09-17 腾讯科技(深圳)有限公司 应用程序处理方法、装置、存储介质和计算机设备
CN110515855A (zh) * 2019-09-02 2019-11-29 聚好看科技股份有限公司 一种应用程序的模拟控制方法、服务器及系统
CN110727592A (zh) * 2019-10-11 2020-01-24 网易(杭州)网络有限公司 应用程序测试方法、介质、装置和计算设备
CN111462281A (zh) * 2020-03-31 2020-07-28 北京创鑫旅程网络技术有限公司 海报生成方法、装置、设备及存储介质
CN112328283A (zh) * 2020-11-12 2021-02-05 北京字节跳动网络技术有限公司 一种应用程序的更新方法、装置、设备及介质
CN112463614A (zh) * 2020-12-01 2021-03-09 北京计算机技术及应用研究所 一种基于硬件板卡接入的软件虚拟化测试环境构建方法
CN112698921A (zh) * 2021-01-08 2021-04-23 腾讯科技(深圳)有限公司 一种逻辑代码运行方法、装置、计算机设备和存储介质

Patent Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996014617A1 (en) * 1994-11-07 1996-05-17 Temple University - Of The Commonwealth System Higher Education Multicomputer system and method
US20050155027A1 (en) * 2004-01-09 2005-07-14 Wei Coach K. System and method for developing and deploying computer applications over a network
CN102436385A (zh) * 2011-11-15 2012-05-02 电子科技大学 一种可编程逻辑器件配置文件在线更新装置
CN102567079A (zh) * 2011-12-29 2012-07-11 中国人民解放军国防科学技术大学 基于渐进式踪迹更新的并行程序能耗模拟评估方法
CN104216729A (zh) * 2013-06-05 2014-12-17 阿里巴巴集团控股有限公司 应用系统的逻辑模块更新实现方法及装置
US20150332043A1 (en) * 2014-05-15 2015-11-19 Auckland Uniservices Limited Application analysis system for electronic devices
CN106776803A (zh) * 2016-11-24 2017-05-31 北京锐安科技有限公司 一种日志记录的更新方法及装置
CN106844220A (zh) * 2017-03-09 2017-06-13 北京融信易安信息技术有限公司 一种模拟计算机网络应用程序真实运行环境的测试方法和系统
CN110244984A (zh) * 2018-03-06 2019-09-17 腾讯科技(深圳)有限公司 应用程序处理方法、装置、存储介质和计算机设备
CN108536524A (zh) * 2018-03-13 2018-09-14 Oppo广东移动通信有限公司 资源更新方法、装置、终端及存储介质
CN108804913A (zh) * 2018-04-27 2018-11-13 北京奇艺世纪科技有限公司 应用程序的运行方法和装置
CN108829581A (zh) * 2018-05-22 2018-11-16 平安科技(深圳)有限公司 应用程序测试方法、装置、计算机设备及存储介质
CN109491910A (zh) * 2018-11-07 2019-03-19 紫光测控有限公司 一种保护逻辑和控制逻辑的可视化仿真调试方法及系统
CN110059001A (zh) * 2019-03-15 2019-07-26 平安普惠企业管理有限公司 程序自动升级控制方法、装置、计算机设备及存储介质
CN110515855A (zh) * 2019-09-02 2019-11-29 聚好看科技股份有限公司 一种应用程序的模拟控制方法、服务器及系统
CN110727592A (zh) * 2019-10-11 2020-01-24 网易(杭州)网络有限公司 应用程序测试方法、介质、装置和计算设备
CN111462281A (zh) * 2020-03-31 2020-07-28 北京创鑫旅程网络技术有限公司 海报生成方法、装置、设备及存储介质
CN112328283A (zh) * 2020-11-12 2021-02-05 北京字节跳动网络技术有限公司 一种应用程序的更新方法、装置、设备及介质
CN112463614A (zh) * 2020-12-01 2021-03-09 北京计算机技术及应用研究所 一种基于硬件板卡接入的软件虚拟化测试环境构建方法
CN112698921A (zh) * 2021-01-08 2021-04-23 腾讯科技(深圳)有限公司 一种逻辑代码运行方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN113590166B (zh) 2024-03-26

Similar Documents

Publication Publication Date Title
CN108027722B (zh) 在编译和部署中动态更新应用
CN107636612B (zh) 应用迁移装置、方法与存储介质
JP7231681B2 (ja) パッケージファイルに対する機能拡張方法およびシステム
CN102279765A (zh) 预编译托存托管代码
CN109542506B (zh) 一种可灵活配置接口和快速交付服务的系统
Hellman Android programming: Pushing the limits
CN104380256A (zh) 用于虚拟化与计算机系统关联的硬件资源的方法、系统和执行代码段
CN114721719B (zh) 一种在集群中容器化部署异构应用的方法和系统
CN103443763A (zh) 包含对重写虚拟函数的调用的支持的isa桥接
CN108399331A (zh) 应用进程试用方法和系统
Rechert et al. Introduction to an emulation-based preservation strategy for software-based artworks
CN111459606A (zh) 一种虚拟化下快速创建虚拟机的方法及服务器
US20120222023A1 (en) Automatic runtime dependency lookup
CN106775608B (zh) 独立系统进程的实现方法和装置
CN111880804A (zh) 应用程序代码的处理方法及装置
CN115760391A (zh) 区块链中智能合约更改方法、装置、电子设备及存储介质
CN106778270B (zh) 一种恶意应用程序的检测方法及系统
CN109426546B (zh) 应用启动方法及装置、计算机存储介质及设备
CN113590166B (zh) 应用程序的更新方法、装置以及计算机可读存储介质
Liu et al. Verifying android applications using java pathfinder
CN114911541A (zh) 配置信息的处理方法、装置、电子设备及存储介质
CN114721709A (zh) 程序包生成方法、装置、存储介质及计算机设备
CN114860203A (zh) 项目创建方法、装置、服务器及存储介质
CN102446113B (zh) 底层消息接口模拟方法及模拟装置
RU2521265C2 (ru) Система и способ автоматической обработки системных ошибок программного обеспечения

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40054078

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant