CN106126290A - 应用程序优化方法、装置及系统 - Google Patents

应用程序优化方法、装置及系统 Download PDF

Info

Publication number
CN106126290A
CN106126290A CN201610481961.8A CN201610481961A CN106126290A CN 106126290 A CN106126290 A CN 106126290A CN 201610481961 A CN201610481961 A CN 201610481961A CN 106126290 A CN106126290 A CN 106126290A
Authority
CN
China
Prior art keywords
file
application program
executable file
dynamic base
signature
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
CN201610481961.8A
Other languages
English (en)
Other versions
CN106126290B (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.)
Weimeng Chuangke Network Technology China Co Ltd
Original Assignee
Weimeng Chuangke Network Technology China 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 Weimeng Chuangke Network Technology China Co Ltd filed Critical Weimeng Chuangke Network Technology China Co Ltd
Priority to CN201610481961.8A priority Critical patent/CN106126290B/zh
Publication of CN106126290A publication Critical patent/CN106126290A/zh
Application granted granted Critical
Publication of CN106126290B publication Critical patent/CN106126290B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

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

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

本发明实施例提供一种应用程序优化方法、装置及系统,该方法包括:获取待优化的适用于移动终端的应用程序安装包,从所述应用程序安装包中获取用于应用程序安装的可执行文件;将预先生成的用于承载自定义代码工具的动态库,注入到所述可执行文件中;所述可执行文件中嵌入用于替换原描述文件的新描述文件;对包含所述动态库和所述新描述文件的可执行文件进行重新签名;将重新签名后的可执行文件进行打包,得到优化后的应用程序安装包;所述优化后的应用程序安装包用于在移动终端上安装优化后的应用程序。能够在不需要预安装APP的情况下,简单方便实现对应用程序的优化,不需要繁复的分析处理,省时、省力、高效。

Description

应用程序优化方法、装置及系统
技术领域
本发明涉及移动互联网应用技术领域,尤指一种应用程序优化方法、装置及系统。
背景技术
随着移动互联网技术的发展,带动了线上到线下(Online To Offline,O2O)市场的发展,从而引发了移动应用程序(APP)的开发热潮。许多开发人员热衷于APP逆向工程,他们希望从逆向的角度去优化移动终端的系统或应用,比如,网际操作系统(iOS)或安卓(Android)操作系统。
现有技术中优化应用程序的方法有插件应用(Logos Tweak,简称tweak)方法。其原理如图1所示,该方法需要在终端设备的操作系统上安装一个tweak插件,可以钩子(hook)系统的函数并加入自定义代码,达到优化系统或应用程序的目的。Tweak方式需要以一个允许第三方开发者在运行时进行代码替换扩展操作系统的框架为基础,比如:MobieSubstrate框架。
该方法需要配置好Logos Tweak的开发环境,然后编写tweak的代码,代码的主要内容是通过hook钩住APP的某个函数方法,并向其中添加自定义代码,当APP执行到这个方法时,便能按照已添加的代码来运控制程序的运行。为了获得其他APP的函数入口,需要利用头文件导出工具(比如class-dump)导出APP的头文件(.h文件),通过分析并多次尝试,确定要hook的函数,才能实现对APP的优化。
这种方式需要在操作系统上预安装Logos Tweak,这相当于是一个没有图标的APP,安装后才能编写优化其他APP,实现起来比较麻烦;而且这种方式需要对待优化的APP进行繁琐的分析,由于目前的移动应用比较复杂,包含大量的头文件从这些头文件中分析出需要的函数是一个耗时的过程。
由此可见,现有技术中用于实现对操作系统中安装的APP进行优化的方式,其操作复杂,需要预安装用于优化的APP,且优化过程中的分析操作繁复,费时费力。
发明内容
本发明实施例提供一种应用程序优化方法、装置及系统,用以解决现有技术中存在的应用程序优化时操作复杂,分析繁复,费时费力的问题。
一方面,本发明实施例提供了一种应用程序优化方法,包括:
应用程序优化方法,其特征在于,包括:
获取待优化的适用于移动终端的应用程序安装包,从所述应用程序安装包中获取用于应用程序安装的可执行文件;
将预先生成的用于承载自定义代码工具的动态库,注入到所述可执行文件中;
在所述可执行文件中嵌入用于替换原描述文件的新描述文件;
对包含所述动态库和所述新描述文件的可执行文件进行重新签名;
将重新签名后的可执行文件进行打包,得到优化后的应用程序安装包;所述优化后的应用程序安装包用于在移动终端上安装优化后的应用程序。
在一些可选的实施例中,所述将预先生成的用于承载自定义代码工具的动态库,注入到所述可执行文件中,具体包括:
根据动态库的存储路径,获取预先生成的用于承载自定义代码工具的动态库;
根据可执行文件的存储路径,使用命令库中加载类的加载动态库命令,将获取的所述动态库注入到可执行文件的存储路径下的可执行文件中。
在一些可选的实施例中,在所述可执行文件中嵌入用于替换原描述文件的新描述文件,具体包括:
创建包括新开发证书、可安装设备信息、应用程序标识APPID的新描述文件;
用创建的新描述文件替换可执行文件的存储路径下的原描述文件。
在一些可选的实施例中,对包含所述动态库和所述新描述文件的可执行文件进行重新签名,具体包括:
读取应用程序信息文件,获取应用程序的唯一标识串bundleID和新开发证书的组标识taemID;
构造一个以应用唯一标识application-identifier和开发团队标识com.apple.developer.team-identifier为键,以bundleID和teamID为值的字典;
将构造的字典写入代码签名文件中;
使用签名命令对代码签名文件进行重新签名,完成对可执行文件的重新签名。
在一些可选的实施例中,在个人计算机上使用集成开发工具Xcode创建所述动态库。
本发明实施例还提供一种应用程序优化装置,包括:
获取模块,用于获取待优化的适用于移动终端的应用程序安装包,从所述应用程序安装包中获取用于应用程序安装的可执行文件;
注入模块,用于将预先生成的用于承载自定义代码工具的动态库,注入到所述可执行文件中;
替换模块,用于在所述可执行文件中嵌入用于替换原描述文件的新描述文件;
签名模块,用于对包含所述动态库和所述新描述文件的可执行文件进行重新签名;
打包模块,用于将重新签名后的可执行文件进行打包,得到优化后的应用程序安装包;所述优化后的应用程序安装包用于在移动终端上安装优化后的应用程序。
在一些可选的实施例中,所述注入模块,具体用于:
根据动态库的存储路径,获取预先生成的用于承载自定义代码工具的动态库;
根据可执行文件的存储路径,使用命令库中加载类的加载动态库命令,将获取的所述动态库注入到可执行文件的存储路径下的可执行文件中。
在一些可选的实施例中,所述替换模块,具体用于:
创建包括新开发证书、可安装设备信息、应用程序标识APPID的新描述文件;
用创建的新描述文件替换可执行文件的存储路径下的原描述文件。
在一些可选的实施例中,所述签名模块,具体用于:
读取应用程序信息文件,获取应用程序的唯一标识串bundleID和新开发证书的组标识taemID;
构造一个以应用唯一标识application-identifier和开发团队标识com.apple.developer.team-identifier为键,以bundleID和teamID为值的字典;
将构造的字典写入代码签名文件中;
使用签名命令对代码签名文件进行重新签名,完成对可执行文件的重新签名。
本发明实施例还提供一种应用程序优化系统,包括:移动终端和个人计算机;
所述个人计算机中包括上述的应用程序优化装置;
所述移动终端,用于安装所述优化后的应用程序安装包。
上述技术方案具有如下有益效果:对应用程序安装包中的可执行文件添加动态库,并重新嵌入描述文件,重新签名打包,得到新的应用程序安装包,该方法在不需要在终端设备操作系统上安装优化APP的情况下,实现对所要安装的APP的优化,其实现过程简单方便,无需对应用程序进行繁复的分析操作,省时省力,通用性强。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中应用程序优化方法的原理示意图;
图2是本发明实施例一中应用程序优化方法的流程图;
图3是本发明实施例二中应用程序优化方法的流程图;
图4是本发明实施例中应用程序优化系统的结构示意图;
图5是本发明实施例中应用程序优化装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决现有技术中存在的应用程序优化时,需要预安装,分析繁复,费时费力等问题,本发明实施例提供一种应用程序优化方法,能够在不预安装APP的情况下实现对应用程序的优化,且实现简单、方便,通用性强。本发明方法主要包括生成动态库Dylib、动态库注入到APP中、在APP中嵌入描述文件(Moibleprovision)、对APP重新签名和打包成新的安装包,比如苹果应用程序文件(iPhoneApplication,IPA)等几个处理步骤。下面通过具体的实施例进行详细描述。
实施例一
本发明实施例一提供的应用程序优化方法,其流程如图2所示,包括如下步骤:
步骤S101:获取待优化的适用于移动终端的应用程序安装包。
获取待优化的应用程序安装包,对获取的应用程序安装包进行转换或解压,比如IPA包,是一个以ipa为后缀名的文件,实际上一个压缩包(zip包),可以将其转换成zip并解压,以便得到其中包含的可执行文件,转换或解压失败流程将被终止。
步骤S102:从应用程序安装包中获取用于应用程序安装的可执行文件。
从应用程序安装包解压后的文件夹中获取出可执行文件。
步骤S103:将预先生成的用于承载自定义代码工具的动态库,注入到可执行文件中。
动态库可以在个人计算机上预先生成,动态库(Dylib)是用来承载自定义代码的工具,需要在Mac OS X平台的集成开发工具(Xcode)中编码并生成。使用Xcode创建动态库Dylib,点击文件新项目(File-new-Project)命令便能创建Dylib类型的程序文件。生成Dylib后,需要将Dylib注入到应用程序的可执行文件中,使得在应用程序运行过程中能够调用Dylib。
在可执行文件中注入动态库时,从动态库的存储路径中获取预先生成的动态库,将其注入到可执行文件存储路径下存储的可执行文件中,可以使用命令库中加载类的加载动态库命令实现。
步骤S104:在可执行文件中嵌入用于替换原描述文件的新描述文件。
为了能够让移动终端安装应用程序,需要将新的描述文件嵌入到应用程序中。此时,创建包括新开发证书、可安装设备信息、应用程序标识(APP ID)的新描述文件,用创建的新描述文件替换可执行文件的存储路径下的原描述文件,实现将新的描述书文件嵌入到应用程序中。
步骤S105:对包含动态库和新描述文件的可执行文件进行重新签名。
为了与嵌入的描述文件相对应,应该对应用程序重新签名,需要一份新的证书和生成新的代码签名文件(application-identifier entitlements)。若是企业版开发证书,则该应用程序可在所有移动终端上都能安装。
步骤S106:将重新签名后的可执行文件进行打包,得到优化后的应用程序安装包。其中,优化后的应用程序安装包用于在移动终端上安装优化后的应用程序。
使用文件压缩(比如zip)命令,将应用程序文件夹进行压缩,将其压缩成新的安装包,比如IPA格式的新的安装包。应用程序文件夹中可以包括新的执行文件和从应用程序安装包中解压出的其他文件。
实施例二
本发明实施例二提供上述应用程序优化的一种具体实现方法,其流程如图3所示,包括如下步骤:
步骤S201:获取待优化的适用于移动终端的应用程序安装包。
步骤S202:对应用程序安装包进行转化和解压。
应用程序安装包一般是一个压缩后的文件,将压缩文件进行转化和解压后可以得到应用程序的安装文件。
步骤S203:获取应用程序安装包中的可执行文件。
从解压后的应用程序安装文件夹中获取其中的可执行文件进行后续优化处理。
步骤S204:根据动态库的存储路径,获取预先生成的用于承载自定义代码工具的动态库。
步骤S205:根据可执行文件的存储路径,使用命令库中加载类的加载动态库命令,将获取的动态库注入到可执行文件的存储路径下的可执行文件中。
将动态库Dylib注入到可执行文件中,这个过程使用到命令库(mach-o)框架中加载(loader)类的LC_LOAD_DYLIB和LC_LOAD_WEAK_DYLIB这两个加载命令。注入成功之后,在个人计算机或移动终端上进入APP目录中使用查看应用程序安装包动态库列表命令(otool-L)可以看到可执行文件已经包含了生成的Dylib文件。如果注入失败,流程也会被终止。
其中,LC_LOAD_WEAK_DYLIB为加载指定动态库命令,如没有找到,会立即停止程序;LC_LOAD_WEAK_DYLIB:加载指定动态库命令(可选),如没有找到,也会继续运行。
步骤S204-步骤205实现将预先生成的用于承载自定义代码工具的动态库,注入到可执行文件中。
步骤S206:创建包括新开发证书、可安装设备信息、应用程序标识APPID的新描述文件。
描述文件是应用程序开发必须具备的一个文件,其中包含对于开发证书、可安装设备和APPID的描述。因此生成新的描述文件时,也需要包含这些信息,生成的新的描述文件可以存储在开发者中心或其他指定的存储位置。
步骤S207:用创建的新描述文件替换可执行文件的存储路径下的原描述文件。
从开发者中心或其他指定的存储位置下载描述文件,然后将该描述文件替换APP目录下的描述文件(比如embedded.mobileprovision文件)。
步骤S206-步骤207实现在可执行文件中嵌入用于替换原描述文件的新描述文件。
步骤S208:读取应用程序信息文件,获取应用程序的唯一标识串(bundleID)和新开发证书的组标识(taemID)。
对应用程序进行重新签名也是优化所必需的,通过读取应用程序信息文件,比如Info.plist文件,可以获得APP的唯一标识串(bundleID),获取新证书的teamID,以便更新应用程序的这些信息,使优化的程序文件可用。
步骤S209:构造一个以应用唯一标识(application-identifier)和开发团队标识(com.apple.developer.team-identifier)为键,以bundleID和teamID为值的字典。
上述bundleID其实是应用唯一标识的一个具体的标识符,teamID其实是是开发团队标识的一个具体的标识符。例如:在一个代码签名文件中,是这样表示的:
application-identifier:bundleID
com.apple.developer.team-identifier:teamID
步骤S210:将构造的字典写入代码签名文件中。
步骤S211:使用签名命令对代码签名文件进行重新签名,完成对可执行文件的重新签名。
通过对可执行文件的重新签名实现对应用程序的重新签名。使用签名命令,比如codesign命令,对APP重新签名。
步骤S212:将重新签名后的可执行文件与从应用程序安装包中解压出的其他文件一起进行转化和压缩,得到优化后的应用程序安装包。
重新签名应用程序安装文件中包含的可执行文件后,将之前解压得到的应用程序文件夹压缩成新的安装包,比如IPA格式的安装包。例如:可以通过输入zip-qr命令来实现输出新的应用程序安装包。
基于同一发明构思,本发明实施例还提供一种应用程序优化系统,其结构如图4所示,包括:移动终端401和个人计算机402。移动终端401和个人计算机403均可以设置不止一个,可以根据需要设置多个。
移动终端401,用于安装优化后的应用程序安装包。
个人计算机402中包括应用程序优化装置403,用于获取待优化的适用于移动终端的应用程序安装包,从所述应用程序安装包中获取用于应用程序安装的可执行文件;将预先生成的用于承载自定义代码工具的动态库,注入到所述可执行文件中;在所述可执行文件中嵌入用于替换原描述文件的新描述文件;对包含所述动态库和所述新描述文件的可执行文件进行重新签名;将重新签名后的可执行文件进行打包,得到优化后的应用程序安装包;所述优化后的应用程序安装包用于在移动终端上安装优化后的应用程序。
优选的,上述个人计算机402,具体用于根据动态库的存储路径,获取预先生成的用于承载自定义代码工具的动态库;根据可执行文件的存储路径,使用命令库中加载类的加载动态库命令,将获取的动态库注入到可执行文件的存储路径下的可执行文件中。
优选的,上述个人计算机402,具体用于创建包括新开发证书、可安装设备信息、应用程序标识APPID的新描述文件;用创建的新描述文件替换可执行文件的存储路径下的原描述文件。
优选的,上述个人计算机402,具体用于读取应用程序信息文件,获取应用程序的唯一标识串bundleID和新开发证书的组标识taemID;构造一个以application-identifier和com.apple.developer.team-identifier为键,以bundleID和teamID为值的字典;将构造的字典写入代码签名文件中;使用签名命令对代码签名文件进行重新签名,完成对可执行文件的重新签名。
优选的,上述个人计算机402,具体用于使用Xcode创建所述动态库。
上述应用程序优化装置,其结构如图5所示,包括:获取模块501、注入模块502、替换模块503、签名模块504和打包模块505。
获取模块501,用于获取待优化的适用于移动终端的应用程序安装包,从应用程序安装包中获取用于应用程序安装的可执行文件。
注入模块502,用于将预先生成的用于承载自定义代码工具的动态库,注入到可执行文件中。
替换模块503,用于在可执行文件中嵌入用于替换原描述文件的新描述文件。
签名模块504,用于对包含所述动态库和所述新描述文件的可执行文件进行重新签名。
打包模块505,用于将重新签名后的可执行文件进行打包,得到优化后的应用程序安装包;其中,优化后的应用程序安装包用于在移动终端上安装优化后的应用程序。
优选的,上述注入模块502,具体用于根据动态库的存储路径,获取预先生成的用于承载自定义代码工具的动态库;根据可执行文件的存储路径,使用命令库中加载类的加载动态库命令,将获取的所述动态库注入到可执行文件的存储路径下的可执行文件中。
优选的,上述替换模块503,具体用于创建包括新开发证书、可安装设备信息、应用程序标识APPID的新描述文件;用创建的新描述文件替换可执行文件的存储路径下的原描述文件。
优选的,上述签名模504块,具体用于读取应用程序信息文件,获取应用程序的唯一标识串bundleID和新开发证书的组标识taemID;构造一个以application-identifier和com.apple.developer.team-identifier为键,以bundleID和teamID为值的字典;将构造的字典写入代码签名文件中;使用签名命令对代码签名文件进行重新签名,完成对可执行文件的重新签名。
本发明实施例提供的上述应用程序优化方法、系统及装置,对于适用于网际操作系统(IOS)系统的应用程序优化而言,通过自定义一个类似于小型APP的动态库,使用苹果开发语言(Obiective-C)编写,可以扩展网际操作系统软件开发工具包(iOS SDK)的控件来注入自定义代码。除了需要手动配置一些参数,包括编写动态库、导入、重新签名、打包在内的整个方法流程都可以在计算机操作系统,比如苹果电脑系统(MAC)环境下使用XCODE编译后一键完成,无需依赖其他集成开发环境(IDE)和反编译工具。
上述方法由于采用了动态库Dylib,自定义程度高;采用了命令库(mach-o)框架中的加载动态库等命令,方便注入动态库;由于将动态库注入、嵌入新的描述证书、重新签名和打包安装包四大功能实现为计算机操作系统,比如苹果电脑系统(MAC OS X)下的一个自动化工具,只要选择好各文件即可一步生成新的安装包,简化了人工操作。该方法不需要在移动终端上预安装应用程序,即可实现对移动终端上的应用程序优化,也避免了繁琐的分析步骤,简化了操作,提高了速度和效率。
本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrative logical block),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrative components),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。
本发明实施例中所描述的各种说明性的逻辑块,或单元都可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中,ASIC可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。
在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、DVD、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种应用程序优化方法,其特征在于,包括:
获取待优化的适用于移动终端的应用程序安装包,从所述应用程序安装包中获取用于应用程序安装的可执行文件;
将预先生成的用于承载自定义代码工具的动态库,注入到所述可执行文件中;
在所述可执行文件中嵌入用于替换原描述文件的新描述文件;
对包含所述动态库和所述新描述文件的可执行文件进行重新签名;
将重新签名后的可执行文件进行打包,得到优化后的应用程序安装包;所述优化后的应用程序安装包用于在移动终端上安装优化后的应用程序。
2.如权利要求1所述的方法,其特征在于,所述将预先生成的用于承载自定义代码工具的动态库,注入到所述可执行文件中,具体包括:
根据动态库的存储路径,获取预先生成的用于承载自定义代码工具的动态库;
根据可执行文件的存储路径,使用命令库中加载类的加载动态库命令,将获取的所述动态库注入到可执行文件的存储路径下的可执行文件中。
3.如权利要求1所述的方法,其特征在于,在所述可执行文件中嵌入用于替换原描述文件的新描述文件,具体包括:
创建包括新开发证书、可安装设备信息、应用程序标识APPID的新描述文件;
用创建的新描述文件替换可执行文件的存储路径下的原描述文件。
4.如权利要求1所述的方法,其特征在于,对包含所述动态库和所述新描述文件的可执行文件进行重新签名,具体包括:
读取应用程序信息文件,获取应用程序的唯一标识串bundleID和新开发证书的组标识taemID;
构造一个以应用唯一标识application-identifier和开发团队标识com.apple.developer.team-identifier为键,以bundleID和teamID为值的字典;
将构造的字典写入代码签名文件中;
使用签名命令对代码签名文件进行重新签名,完成对可执行文件的重新签名。
5.如权利要求1-4任一所述的方法,其特征在于,在个人计算机上使用集成开发工具Xcode创建所述动态库。
6.一种应用程序优化装置,其特征在于,包括:
获取模块,用于获取待优化的适用于移动终端的应用程序安装包,从所述应用程序安装包中获取用于应用程序安装的可执行文件;
注入模块,用于将预先生成的用于承载自定义代码工具的动态库,注入到所述可执行文件中;
替换模块,用于在所述可执行文件中嵌入用于替换原描述文件的新描述文件;
签名模块,用于对包含所述动态库和所述新描述文件的可执行文件进行重新签名;
打包模块,用于将重新签名后的可执行文件进行打包,得到优化后的应用程序安装包;所述优化后的应用程序安装包用于在移动终端上安装优化后的应用程序。
7.如权利要求6所述的装置,其特征在于,所述注入模块,具体用于:
根据动态库的存储路径,获取预先生成的用于承载自定义代码工具的动态库;
根据可执行文件的存储路径,使用命令库中加载类的加载动态库命令,将获取的所述动态库注入到可执行文件的存储路径下的可执行文件中。
8.如权利要求6所述的装置,其特征在于,所述替换模块,具体用于:
创建包括新开发证书、可安装设备信息、应用程序标识APPID的新描述文件;
用创建的新描述文件替换可执行文件的存储路径下的原描述文件。
9.如权利要求6所述的装置,其特征在于,所述签名模块,具体用于:
读取应用程序信息文件,获取应用程序的唯一标识串bundleID和新开发证书的组标识taemID;
构造一个以应用唯一标识application-identifier和开发团队标识com.apple.developer.team-identifier为键,以bundleID和teamID为值的字典;
将构造的字典写入代码签名文件文件中;
使用签名命令对代码签名文件进行重新签名,完成对可执行文件的重新签名。
10.一种应用程序优化系统,其特征在于,包括:移动终端和个人计算机;
所述个人计算机中包括如权利要求6-9任一所述的应用程序优化装置;
所述移动终端,用于安装所述优化后的应用程序安装包。
CN201610481961.8A 2016-06-27 2016-06-27 应用程序优化方法、装置及系统 Active CN106126290B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610481961.8A CN106126290B (zh) 2016-06-27 2016-06-27 应用程序优化方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610481961.8A CN106126290B (zh) 2016-06-27 2016-06-27 应用程序优化方法、装置及系统

Publications (2)

Publication Number Publication Date
CN106126290A true CN106126290A (zh) 2016-11-16
CN106126290B CN106126290B (zh) 2019-08-13

Family

ID=57266308

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610481961.8A Active CN106126290B (zh) 2016-06-27 2016-06-27 应用程序优化方法、装置及系统

Country Status (1)

Country Link
CN (1) CN106126290B (zh)

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107315602A (zh) * 2017-05-12 2017-11-03 广东网金控股股份有限公司 一种应用程序的升级方法及终端
CN107329901A (zh) * 2017-07-31 2017-11-07 腾讯科技(深圳)有限公司 数据包抓取方法、终端、服务器和存储介质
CN107621939A (zh) * 2017-09-18 2018-01-23 北京奇虎科技有限公司 一种应用优化方法及装置
CN108446219A (zh) * 2018-03-01 2018-08-24 网易宝有限公司 应用程序的操作方法、系统、介质和计算设备
CN108681473A (zh) * 2018-05-18 2018-10-19 广州酷狗计算机科技有限公司 应用程序生成、运行方法、装置、计算机设备和存储介质
CN108958826A (zh) * 2017-05-22 2018-12-07 北京京东尚科信息技术有限公司 动态配置应用安装包的方法和装置
CN109101244A (zh) * 2018-07-20 2018-12-28 珠海宏桥高科技有限公司 一种ios系统一体化自动打包方法
CN109213686A (zh) * 2018-10-22 2019-01-15 网易(杭州)网络有限公司 应用包体检查方法、装置、存储介质、处理器及服务器
CN109491664A (zh) * 2018-11-08 2019-03-19 腾讯科技(深圳)有限公司 iOS应用程序的生成方法、装置、设备及存储介质
CN109725924A (zh) * 2017-10-27 2019-05-07 深圳安软信创技术有限公司 一种基于iOS应用的功能集成方法
CN109753322A (zh) * 2017-08-29 2019-05-14 武汉斗鱼网络科技有限公司 一种ios平台上对应用程序的加速方法和装置
CN109814897A (zh) * 2018-12-18 2019-05-28 福建新大陆支付技术有限公司 一种应用程序文件管理方法及系统
CN110032501A (zh) * 2019-04-01 2019-07-19 北京奇艺世纪科技有限公司 一种app安装包的处理方法、装置和电子设备
CN110275832A (zh) * 2019-06-19 2019-09-24 北京字节跳动网络技术有限公司 应用程序的启动耗时测试方法、系统、设备及介质
CN110297643A (zh) * 2019-06-04 2019-10-01 平安科技(深圳)有限公司 应用程序注入动态库的方法、装置、设备及存储介质
CN110362487A (zh) * 2019-07-11 2019-10-22 腾讯科技(深圳)有限公司 一种应用程序的测试方法及装置
CN110851204A (zh) * 2019-11-08 2020-02-28 北京字节跳动网络技术有限公司 应用启动的方法及装置、应用打包的方法及装置
CN112148597A (zh) * 2020-09-16 2020-12-29 北京基调网络股份有限公司 一种消除iOS设备授权对话框的方法、测试方法及存储介质
CN112214253A (zh) * 2020-09-11 2021-01-12 拓尔思信息技术股份有限公司 Java程序的启动方法及装置、电子装置、非易失性存储介质
CN112464228A (zh) * 2020-09-09 2021-03-09 北京升鑫网络科技有限公司 一种应用层命令审计方法、装置、系统及存储介质
CN113138867A (zh) * 2021-04-20 2021-07-20 上海上讯信息技术股份有限公司 一种实现应用程序间通信的方法、装置及设备
CN113419735A (zh) * 2021-05-31 2021-09-21 荣耀终端有限公司 插件优化方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080134221A1 (en) * 2006-11-30 2008-06-05 Microsoft Corporation Dynamic linked library add-on features
CN104021321A (zh) * 2014-06-17 2014-09-03 北京奇虎科技有限公司 软件安装包的加固保护方法和装置
CN104680039A (zh) * 2013-11-28 2015-06-03 腾讯科技(深圳)有限公司 一种应用程序安装包的数据保护方法及装置
CN105512521A (zh) * 2015-12-25 2016-04-20 北京奇虎科技有限公司 一种软件安装包的加固保护方法和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080134221A1 (en) * 2006-11-30 2008-06-05 Microsoft Corporation Dynamic linked library add-on features
CN104680039A (zh) * 2013-11-28 2015-06-03 腾讯科技(深圳)有限公司 一种应用程序安装包的数据保护方法及装置
CN104021321A (zh) * 2014-06-17 2014-09-03 北京奇虎科技有限公司 软件安装包的加固保护方法和装置
CN105512521A (zh) * 2015-12-25 2016-04-20 北京奇虎科技有限公司 一种软件安装包的加固保护方法和系统

Cited By (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107315602B (zh) * 2017-05-12 2021-02-12 广东网金控股股份有限公司 一种应用程序的升级方法及终端
CN107315602A (zh) * 2017-05-12 2017-11-03 广东网金控股股份有限公司 一种应用程序的升级方法及终端
CN108958826A (zh) * 2017-05-22 2018-12-07 北京京东尚科信息技术有限公司 动态配置应用安装包的方法和装置
CN108958826B (zh) * 2017-05-22 2022-06-07 北京京东尚科信息技术有限公司 动态配置应用安装包的方法和装置
CN107329901B (zh) * 2017-07-31 2021-09-28 腾讯科技(深圳)有限公司 数据包抓取方法、终端、服务器和存储介质
CN107329901A (zh) * 2017-07-31 2017-11-07 腾讯科技(深圳)有限公司 数据包抓取方法、终端、服务器和存储介质
CN109753322A (zh) * 2017-08-29 2019-05-14 武汉斗鱼网络科技有限公司 一种ios平台上对应用程序的加速方法和装置
CN109753322B (zh) * 2017-08-29 2022-04-15 武汉斗鱼网络科技有限公司 一种ios平台上对应用程序的加速方法和装置
CN107621939A (zh) * 2017-09-18 2018-01-23 北京奇虎科技有限公司 一种应用优化方法及装置
CN107621939B (zh) * 2017-09-18 2021-01-29 北京奇虎科技有限公司 一种应用优化方法及装置
CN109725924A (zh) * 2017-10-27 2019-05-07 深圳安软信创技术有限公司 一种基于iOS应用的功能集成方法
CN108446219A (zh) * 2018-03-01 2018-08-24 网易宝有限公司 应用程序的操作方法、系统、介质和计算设备
CN108681473A (zh) * 2018-05-18 2018-10-19 广州酷狗计算机科技有限公司 应用程序生成、运行方法、装置、计算机设备和存储介质
CN109101244A (zh) * 2018-07-20 2018-12-28 珠海宏桥高科技有限公司 一种ios系统一体化自动打包方法
CN109213686A (zh) * 2018-10-22 2019-01-15 网易(杭州)网络有限公司 应用包体检查方法、装置、存储介质、处理器及服务器
CN109491664A (zh) * 2018-11-08 2019-03-19 腾讯科技(深圳)有限公司 iOS应用程序的生成方法、装置、设备及存储介质
CN109814897A (zh) * 2018-12-18 2019-05-28 福建新大陆支付技术有限公司 一种应用程序文件管理方法及系统
CN109814897B (zh) * 2018-12-18 2022-04-19 福建新大陆支付技术有限公司 一种应用程序文件管理方法及系统
CN110032501A (zh) * 2019-04-01 2019-07-19 北京奇艺世纪科技有限公司 一种app安装包的处理方法、装置和电子设备
CN110032501B (zh) * 2019-04-01 2023-04-25 北京奇艺世纪科技有限公司 一种app安装包的处理方法、装置和电子设备
CN110297643B (zh) * 2019-06-04 2024-01-30 平安科技(深圳)有限公司 应用程序注入动态库的方法、装置、设备及存储介质
CN110297643A (zh) * 2019-06-04 2019-10-01 平安科技(深圳)有限公司 应用程序注入动态库的方法、装置、设备及存储介质
CN110275832A (zh) * 2019-06-19 2019-09-24 北京字节跳动网络技术有限公司 应用程序的启动耗时测试方法、系统、设备及介质
CN110362487B (zh) * 2019-07-11 2024-05-10 腾讯科技(深圳)有限公司 一种应用程序的测试方法及装置
CN110362487A (zh) * 2019-07-11 2019-10-22 腾讯科技(深圳)有限公司 一种应用程序的测试方法及装置
CN110851204A (zh) * 2019-11-08 2020-02-28 北京字节跳动网络技术有限公司 应用启动的方法及装置、应用打包的方法及装置
CN110851204B (zh) * 2019-11-08 2023-04-18 北京字节跳动网络技术有限公司 应用启动的方法及装置、应用打包的方法及装置
CN112464228B (zh) * 2020-09-09 2021-07-27 北京升鑫网络科技有限公司 一种应用层命令审计方法、装置、系统及存储介质
CN112464228A (zh) * 2020-09-09 2021-03-09 北京升鑫网络科技有限公司 一种应用层命令审计方法、装置、系统及存储介质
CN112214253A (zh) * 2020-09-11 2021-01-12 拓尔思信息技术股份有限公司 Java程序的启动方法及装置、电子装置、非易失性存储介质
CN112214253B (zh) * 2020-09-11 2024-02-02 拓尔思信息技术股份有限公司 Java程序的启动方法及装置、电子装置、非易失性存储介质
CN112148597A (zh) * 2020-09-16 2020-12-29 北京基调网络股份有限公司 一种消除iOS设备授权对话框的方法、测试方法及存储介质
CN113138867A (zh) * 2021-04-20 2021-07-20 上海上讯信息技术股份有限公司 一种实现应用程序间通信的方法、装置及设备
CN113419735A (zh) * 2021-05-31 2021-09-21 荣耀终端有限公司 插件优化方法及装置
CN113419735B (zh) * 2021-05-31 2022-04-19 荣耀终端有限公司 插件优化方法及装置

Also Published As

Publication number Publication date
CN106126290B (zh) 2019-08-13

Similar Documents

Publication Publication Date Title
CN106126290A (zh) 应用程序优化方法、装置及系统
CN104375849B (zh) 加载内核的方法及装置
CN102289378B (zh) 自动生成应用程序的方法
KR102059705B1 (ko) 적응식 이식가능 라이브러리
CN102246150B (zh) 转换用户脚本代码来进行调试
CN111367510B (zh) 一种安卓功能模块开发的方法及装置
CN109491695A (zh) 一种集成安卓应用的增量更新方法
CN104317625A (zh) 一种apk文件的动态加载方法
CN111090433A (zh) 一种数据处理的方法、装置和存储介质
CN103095838A (zh) 一种通过下载增量升级包来升级安卓智能手机软件的方法
CN104573416A (zh) 一种生成应用安装包、执行应用的方法及装置
CN104899025A (zh) 一种生成渠道包的方法和装置
CN104318155A (zh) 一种防逆向apk文件的动态加载方法
CN110321131A (zh) 业务组件打包方法、系统及服务器
CN104090946A (zh) 应用安装包中添加信息的方法及装置
CN111209001A (zh) 批量生成安卓各渠道apk的方法、系统、设备和介质
CN106055375A (zh) 应用程序安装方法及装置
CN104133676A (zh) 一种基于脚本的功能执行方法和设备
CN109871241A (zh) 一种跨环境应用服务器的配置方法
CN103761107A (zh) 软件包定制的装置及方法
CN111045686B (zh) 一种提高应用反编译速度的方法、智能终端及存储介质
CN114706564A (zh) 软件包制作方法、装置、电子设备及存储介质
CN103544415A (zh) 一种移动平台应用软件的加固方法
US11029934B2 (en) Method and system for updating legacy software
CN104462883A (zh) 一种apk文件加固的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant