CN105574369A - 应用程序重新签名的方法、装置和系统 - Google Patents
应用程序重新签名的方法、装置和系统 Download PDFInfo
- Publication number
- CN105574369A CN105574369A CN201510926951.6A CN201510926951A CN105574369A CN 105574369 A CN105574369 A CN 105574369A CN 201510926951 A CN201510926951 A CN 201510926951A CN 105574369 A CN105574369 A CN 105574369A
- Authority
- CN
- China
- Prior art keywords
- application program
- installation kit
- signing
- program installation
- server
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000002360 preparation method Methods 0.000 claims description 70
- 230000004044 response Effects 0.000 claims description 26
- 238000003860 storage Methods 0.000 claims description 25
- 238000009434 installation Methods 0.000 claims description 19
- 238000009826 distribution Methods 0.000 claims description 14
- 230000005540 biological transmission Effects 0.000 claims description 11
- 230000008676 import Effects 0.000 claims description 8
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 230000006837 decompression Effects 0.000 claims description 3
- 238000001514 detection method Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 14
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 235000013861 fat-free Nutrition 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种应用程序重新签名的方法、装置和系统,通过主服务器接收客户端发送的应用程序安装包和重新签名请求,将对所述应用程序安装包进行重新签名的任务分发给重签服务器,利用所述重签服务器对所述应用程序安装包进行重新签名,可在不同的操作系统上实现对应用程序进行重新签名,降低了应用程序重新签名的环境依赖,使得重新签名的过程快速简便。
Description
技术领域
本发明涉及数字签名技术领域,尤其涉及一种应用程序重新签名的方法、装置和系统。
背景技术
应用程序若想安装在某些设备上,必须经过设备公司的签名认证,否则无法完成安装。在一种具体的应用场景当中,应用程序开发商开发的应用程序一般使用开发商的开发者证书进行签名的,仅能安装在开发商证书授权的设备上,未经过开发商授权的设备无法安装。因此,游戏运营商如果想要将所述应用程序安装到未经开发商证书授权的设备上,需要使用游戏运营商自有的个人或企业开发者账号对应用程序进行重新签名。
现有的对应用程序进行重新签名的方法主要有以下两种:一、使用命令行手动进行重新签名;根据重新签名所需要的步骤,在特定系统的电脑上手动地输入命令行,对应用程序进行重新签名。二、使用重签工具进行重新签名;通过在特定系统的电脑中安装重签工具,并利用所述重签工具进行重新签名。
发明内容
使用命令行手动进行重新签名较为繁琐,稍有问题就会导致重签失败,并且校验应用程序是否重新签名成功需要较长时间,重签效率较低。而使用重签工具进行重签时,可定制性比较差,如果需要修改版本号等功能时则需要另外的工具。另外随着设备系统的升级,之前的重签工具可能就无法使用了,重新寻找合适可用的重签工具往往非常麻烦。此外,上述两种方法对重新签名所需的环境要求比较严格,必须依赖于特定系统的电脑,在使用其他系统的电脑设备的情况下无法实现重新签名。
本发明实施例的目的在于提供了一种应用程序重新签名的方法、装置和系统,降低对应用程序进行重新签名的环境依赖,提高应用程序重签的便利性。
为了实现上述目的,本发明实施例提供了第一种应用程序重新签名的方法,包括:
接收主服务器分发的对应用程序安装包进行重新签名的任务,并从所述主服务器中下载所述应用程序安装包;
对所述应用程序安装包进行解压,获取解压文件;
删除所述解压文件中原有的签名信息;
将预备配置文件导入所述解压文件中;
修改所述解压文件中的bundle信息;
根据所述预备配置文件、修改后的bundle信息和预先配置的授权证书,在所述解压文件中生成新的签名信息;
将生成新的签名信息后的所述解压文件重新打包成应用程序安装包,并上传到所述主服务器中。
优选地,在所述接收主服务器分发的对应用程序安装包进行重新签名的任务,并从所述主服务器中下载所述应用程序安装包之前,还包括:
获取所述授权证书,并将所述授权证书导入到本地。
优选地,所述根据所述预备配置文件、修改后的bundle信息和预先配置的授权证书,在所述解压文件中生成新的签名信息,具体为:
调用重签工具中的重签命令,根据所述预备配置文件、修改后的bundle信息和预先配置的授权证书,在所述解压文件中生成新的签名信息。
优选地,在所述根据所述预备配置文件、修改后的bundle信息和预先配置的授权证书,在所述解压文件中生成新的签名信息之前,还包括:
执行扩展任务;所述扩展任务包括检测应用程序的指令集类型和修改所述应用程序的版本号中的至少一种。
优选地,所述检测应用程序的指令集类型,具体为:
从所述解压文件中获取程序文件;
通过系统的lipo命令对所述程序文件进行查看,获取所述程序文件的指令集信息;
对所述指令集信息进行分析,获取指令集的类型;
将所述指令集的类型反馈给所述主服务器。
进一步地,本发明实施例提供了第二种应用程序重新签名的方法,包括:
接收客户端发送的可用于重新签名的应用程序安装包以及对所述应用程序安装包进行重新签名的请求;
将与所述请求对应的重签任务分发给空闲的重签服务器,触发所述重签服务器通过所述第一种应用程序重新签名的方法对所述应用程序安装包进行重新签名;
将重新签名后的应用程序安装包保存到相应的网络存储位置中。
优选地,在所述将重新签名后的应用程序安装包保存到相应的网络存储位置中之后,还包括:
根据所述网络存储位置,生成用于下载安装所述应用程序安装包的二维码。
优选地,所述根据所述网络存储位置,生成用于下载安装所述应用程序安装包的二维码,具体为:
根据所述网络存储位置和bundle信息生成所述应用程序安装包的plist文件;
将所述plist文件上传到https服务器中,并获取所述plist文件在所述https服务器中的地址;
根据所述plist文件的地址,生成所述应用程序安装包的下载安装页面;
通过二维码生成插件将所述下载安装页面转换为二维码。
优选地,在所述接收客户端发送的可用于重新签名的应用程序安装包以及对所述应用程序安装包进行重新签名的请求之后,还包括:
根据预先设定的或者所述请求中的配置信息,将预备配置文件和授权证书配置到所述重签服务器中。
优选地,所述将对所述应用程序安装包进行重新签名的任务分发给空闲的重签服务器,触发所述重签服务器通过如权利要求1到5任一项所述的应用程序重新签名的方法对所述应用程序安装包进行重新签名,具体为:
获取所述应用程序安装包的MD5值、预备配置文件的名称和预备配置文件的版本号;
判断所述MD5值、所述预备配置文件的名称和所述预备配置文件的版本号与缓存数据库中已重新签名的应用程序安装包的相应信息是否一致;
若一致,则将所述缓存数据库中的已重新签名的所述应用程序安装包作为本次重签任务的结果;
若不一致,则将对所述应用程序安装包进行重新签名的任务分发给空闲的重签服务器,触发所述重签服务器通过如权利要求1到5任一项所述的应用程序重新签名的方法对所述应用程序安装包进行重新签名。
相应地,本发明实施例提供了一种应用程序重新签名的装置,包括:
任务接收模块,用于接收主服务器分发的对应用程序安装包进行重新签名的任务,并从所述主服务器中下载所述应用程序安装包;
解压模块,用于对所述应用程序安装包进行解压,获取解压文件;
删除模块,用于删除所述解压文件中原有的签名信息;
导入模块,用于将预备配置文件导入所述解压文件中;
修改模块,用于修改所述解压文件中的bundle信息;
签名模块,用于根据所述预备配置文件、修改后的bundle信息和预先配置的授权证书,在所述解压文件中生成新的签名信息;
打包模块,用于将生成新的签名信息后的所述解压文件重新打包成应用程序安装包,并上传到所述主服务器中。
优选地,所述装置还包括:
证书导入模块,用于获取所述授权证书,并将所述授权证书导入到本地。
优选地,所述签名模块包括:
调用单元,用于调用重签工具中的重签命令,根据所述预备配置文件、修改后的bundle信息和预先配置的授权证书,在所述解压文件中生成新的签名信息。
优选地,所述装置还包括:
扩展模块,用于执行扩展任务;所述扩展任务包括检测应用程序的指令集类型和修改所述应用程序的版本号中的至少一种。
优选地,所述扩展任务为检测应用程序的指令集类型;所述扩展模块包括:
获取单元,用于从所述解压文件中获取程序文件;
查看单元,用于通过系统的lipo命令对所述程序文件进行查看,获取所述程序文件的指令集信息;
分析单元,用于对所述指令集信息进行分析,获取指令集的类型;
反馈单元,用于将所述指令集的类型反馈给所述主服务器。
相应地,本发明实施例提供了第二种应用程序重新签名的装置,包括:
接收模块,用于接收客户端发送的可用于重新签名的应用程序安装包以及对所述应用程序安装包进行重新签名的请求;
分发模块,用于将与所述请求对应的重签任务分发给空闲的重签服务器,触发所述重签服务器通过如权利要求1到5任一项所述的应用程序重新签名的方法对所述应用程序安装包进行重新签名;
存储模块,用于将重新签名后的应用程序安装包保存到相应的网络存储位置中。
优选地,所述装置还包括:
二维码生成模块,用于根据所述网络存储位置,生成用于下载安装所述应用程序安装包的二维码。
优选地,所述二维码生成模块包括:
plist文件生成单元,用于根据所述网络存储位置和bundle信息生成所述应用程序安装包的plist文件;
plist文件上传单元,用于将所述plist文件上传到https服务器中,并获取所述plist文件在所述https服务器中的地址;
安装页面生成单元,用于根据所述plist文件的地址,生成所述应用程序安装包的下载安装页面;
二维码生成单元,用于通过二维码生成插件将所述下载安装页面转换为二维码。
优选地,所述装置还包括:
配置模块,用于根据预先设定的或者所述请求中的配置信息,将预备配置文件和授权证书配置到所述重签服务器中。
优选地,所述分发模块包括:
重签信息获取单元,用于获取所述应用程序安装包的MD5值、预备配置文件的名称和预备配置文件的版本号;
判断单元,用于判断所述MD5值、所述预备配置文件的名称和所述预备配置文件的版本号与缓存数据库中已重新签名的应用程序安装包的相应信息是否一致;
结果获取单元,用于若所述MD5值、所述预备配置文件的名称和所述预备配置文件的版本号与缓存数据库中已重新签名的应用程序安装包的相应信息一致,则将所述缓存数据库中的已重新签名的所述应用程序安装包作为本次重签任务的结果;
分发单元,用于若所述MD5值、所述预备配置文件的名称和所述预备配置文件的版本号与缓存数据库中已重新签名的应用程序安装包的相应信息不一致,则将对所述应用程序安装包进行重新签名的任务分发给空闲的重签服务器,触发所述重签服务器通过如权利要求1到5任一项所述的应用程序重新签名的方法对所述应用程序安装包进行重新签名。
此外,本发明实施例还提供了一种应用程序重新签名的系统,包括客户端、主服务器和重签服务器;
所述客户端,用于向所述主服务发送对应用程序进行重新签名的请求和应用程序安装包;
所述主服务器设置有如前所述的第一种应用程序重新签名的装置;
所述重签服务器设置有如前所述的第二应用程序重新签名的装置。
与现有技术相比,本发明具有以下优点:
本发明实施例提供的应用程序重新签名的方法、装置和系统,通过主服务器接收客户端发送的应用程序安装包和重新签名请求,将对所述应用程序安装包进行重新签名的任务分发给重签服务器,利用所述重签服务器对所述应用程序安装包进行重新签名,可在不同的操作系统上实现对应用程序进行重新签名,降低了应用程序重新签名的环境依赖,使得重新签名的过程快速简便。
附图说明
图1是本发明提供的应用程序重新签名的方法的一个实施例的流程图;
图2是如图1所示实施例提供的检测应用程序的指令集类型的流程图;
图3是本发明提供的应用程序重新签名的方法的另一个实施例的流程图;
图4是如图3所示实施例提供的步骤S32的流程图;
图5是如图3所示实施例提供的步骤S34的流程图;
图6是本发明提供的应用程序重新签名的装置的一个实施例的流程图;
图7是本发明提供的应用程序重新签名的装置的另一个实施例的流程图;
图8是本发明提供的应用程序重新签名的系统的一个实施例的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,是本发明提供的应用程序重新签名的方法的一个实施例的流程图;
如图1所示,所述方法包括以下步骤:
S1,接收主服务器分发的对应用程序安装包进行重新签名的任务,并从所述主服务器中下载所述应用程序安装包;
在具体实施当中,主服务器接收到客户端上传的可用于重新签名的应用程序安装包以及对所述应用程序安装包进行重新签名的请求后,会将与所述请求对应的重签任务分发给空闲的重签服务器,所述重签服务器在接收主服务器分发的对应用程序安装包进行重新签名的任务后,从所述主服务器中自动下载相应的应用程序安装包。所述应用程序安装包也称为应用程序包体,所述可用于重新签名的应用程序安装包为经开发方授权的未加密的应用程序包体。
一般地,在所述步骤S1之前,还需要获取所述授权证书,并将所述授权证书导入到重签服务器本地。所述授权证书包括开发授权证书以及发布授权证书,可以从开发者官网上得到,每套证书包括cer和p12两个文件,双击即可导入到本地。其中,开发授权证书在装有开发证书或开发证书副本的电脑上使用,通过电脑将应用程序安装到开发授权证书记录的设备中,即可进行真机测试。发布授权证书在装有发布证书的电脑上,用于制做测试版和发布版的应用程序。
S2,对所述应用程序安装包进行解压,获取解压文件;
所述应用程序安装包本质上是一个zip文件,可以通过zip指令进行解压。解压后会得到一个Payload文件夹,安装包的主要文件都存放在Payload/APP_NAME.app/目录下,其中,APP_NAME为需要进行重新签名的应用程序的名称,下同。
S3,删除所述解压文件中原有的签名信息;
原有的签名信息存放在Payload/APP_NAME.app/_CodeSignature/目录下,在具体实施当中,可通过rm命令将该目录整个删除。
S4,将预备配置文件(ProvisioningProfile文件)导入所述解压文件中;
ProvisioningProfile文件,又称为PP证书,该文件包含授权证书、AppID、设备等信息,用于验证应用程序是否合法。可从开发者官网上获得,获得后将该文件复制到解压文件的app目录下。
S5,修改所述解压文件中的bundle信息;
在具体实施当中,可通过调用系统的plutil命令更换所述应用程序的bundle信息,所述bundle信息包括但不限于bundleid。plist文件通常以二进制方式保存,直接以文本方式打开无法获取有效信息,可以使用plutil命令来进行查看和修改,具体地,可以使用manplutil命令来查看,本实施例中主要使用plutilreplace这一命令来改变app目录下的Info.plist文件。Info.plist文件中包含了应用程序安装包的很多重要属性,包括bundleid、版本号、Icon文件、显示名称、支持指令集等等。可以通过plutil-replaceCFBundleIdentifier-stringBUNDLE_IDPayload/APP_NAME.app/Info.plist这一命令来修改bundleid。
S6,根据所述预备配置文件、修改后的bundle信息和预先配置的授权证书,在所述解压文件中生成新的签名信息;
在具体实施当中,可调用重签工具中的重签命令,根据所述预备配置文件、修改后的bundle信息和预先配置的授权证书,在所述解压文件中生成新的签名信息。具体地,可利用重签工具xcode自带的codedesign命令,所述命令格式如下:
/usr/bin/codesign-f-s"CERTIFICATES_NAME"--resource-rulesPayload/APP_NAME.app/ResourceRules.plist--identifier"BUNDLE_ID"--entitlementsEntitlements.plistPayload/APP_NAME.app
其中,CERTIFICATES_NAM是授权证书的名称,BUNDLE_ID为修改后的所述bundle信息,APP_NAME为应用程序的名称。
在--resource-rules选项在某些系统版本中被弃用,可以直接去掉该选项,去掉该选项之后的命令格式如下:
/usr/bin/codesign-f-s"CERTIFICATES_NAME"--identifier"BUNDLE_ID"--entitlementsEntitlements.plistPayload/APP_NAME.app
此步骤容易出现的问题主要如下:
1.错误提示:CERTIFICATES_NAME(matches"CERTIFICATES_NAME"and"CERTIFICATES_NAME"in/Users/USERNAME/Library/Keychains/login.keychain)
其中,USERNAME为系统登录名。
解决方法:
出现上述错误的原因是系统中有重复的证书,需要删除一些过期的及无效的证书,只留下一个同名证书即可。
2.错误提示:Payload/APP_NAME.app/ResourceRules.plist:cannotreadresources
解决方法:
出现上述错误的原因是应用程序安装包中缺失文件ResourceRules.plist,这是安装包在打包时没有加上文件ResourceRules.plist,需要加上相关编译选项重新打包。如果条件不允许无法重新编译,可以手动创建一个拷贝进去。
3.错误提示:Userinteractionisnotallowed.
解决方法:
出现上述错误的原因是授权文件访问权限不足,需要解锁钥匙链访问权限。可用$securityunlock-keychain-p"PASSWORD""/Users/USERNAME/Library/Keychains/login.keychain"命令来解锁相应的权限,其中,PASSWORD为系统用户的密码,USERNAME为系统用户名。
如果还是不行,可以通过以下方法解决:
1)在应用程序里搜索KeychainAccess,中文叫钥匙串访问权限
2)找到你的证书,右击—显示简介—访问控制—选中“允许所有应用程序访问此项目”—存储更改—输入密码后保存更攺,解决问题。
3)图形界面下启动终端运行该命令,弹出权限申请对话框时选择“总是允许”。
4.错误提示:objectfileformatunrecognized,invalid,orunsuitable
解决方法:
查看/usr/bin目录下是否存在codesign_allocate程序,如果存在,则对其进行改名操作。
在具体实施当中,在所述步骤S6之前,所述重新签名的方法还可以进一步包括:
执行扩展任务;所述扩展任务包括检测应用程序的指令集类型和修改所述应用程序的版本号中的至少一种。
如图2所示,当所述扩展任务为检测应用程序的指令集类型时,所述执行扩展任务,具体为:
S61,从所述解压文件中获取程序文件;
从所述解压文件找到相应的程序文件,该文件位于Payload/APP_NAME.app/目录下,可以根据这个文件来判断应用程序运行的指令集的类型是32位的还是64位的,亦或是兼容32位和64位的。
S62,通过系统的lipo命令对所述程序文件进行查看,获取所述程序文件的指令集信息;
lipo是处理通用程序(UniversalBinaries)的工具,在具体实施当中,可使用lipo-info命令查看上一步所找到的APP文件,以获得该应用程序的指令集信息。
S63,对所述指令集信息进行分析,获取指令集的类型;
分析lipo命令返回的指令集信息,如果返回的指令集信息是以non-fat开头的,则表示该应用程序仅支持32位或64位指令集,如果想知道具体信息,可以分析返回的指令集信息的末尾,末尾为arm64则表示仅支持64位指令集,末尾为armv7则表示仅支持32位指令集。如果返回的指令集信息是以fat开头的,则说明该应用程序同时兼容32位和64位的指令集。
S64,将所述指令集的类型反馈给所述主服务器。
本实施例中主服务器和重签服务器之间通过Jenkins命令作为控制流,由于Jenkins没有参数回调功能,可以借助于ftp服务来传递保存了分析结果的文件,可以将分析结果打包为json格式文件并上传到主服务器中,也方便添加其他的扩展任务的反馈信息。
通过检测所述应用程序的指令集的类型,可以在重新签名之后及时提醒使用者注意指令集的支持情况,更早地做出相关调整。
S7,将生成新的签名信息后的所述解压文件重新打包成应用程序安装包,并上传到所述主服务器中。
在具体实施当中,可使用zip命令将生成新的签名信息后的所述解压文件重新打包成特定格式的应用程序安装包,并将生成的安装包上传到主服务器中,供授权的设备下载安装。
参见图3,是本发明提供的应用程序重新签名的方法的另一实施例的流程图;
如图3所示,所述应用程序重新签名的方法包括以下步骤:
S31,接收客户端发送的可用于重新签名的应用程序安装包以及对所述应用程序安装包进行重新签名的请求;
在具体实施当中,用户通过客户端访问http服务器,所述http服务搭建在主服务器上,主要使用Apache+Php+mySQL+Linux(简称LAMP)搭建,http服务器提供了上传的功能,可以将用户本地的用于重签的应用程序安装包上传到主服务器中,主服务器所述应用程序安装包保存在ftp服务器中,所述ftp服务器可以为独立的服务器或者安装在所述主服务器中的ftp服务。
主服务器接收客户端发送的可用于重新签名的应用程序安装包以及对所述应用程序安装包进行重新签名的请求,所述请求中包含用于对所述应用程序安装包进行重新签名所需的相关配置信息。一般地,在步骤S31之后,需要根据预先设定的或者所述请求中的配置信息,将预备配置文件和授权证书配置到所述重签服务器中,可根据实际需要选择不同的授权证书和预备配置文件来对应用程序进行重新签名。在一种优选的实施方式当中,用于重新签名的项目配置信息保存在主服务器的mySQL数据库中。所述项目配置信息包括但不限于:用于重签的授权证书的名称、与授权证书对应的teamid、与授权证书对应的ProvisioningProfile文件名、bundleid和项目名称。其中,项目名称为非必须字段,用于查找和与其他项目区分。用户选择了重签项目后,提交重签请求,在上传应用程序安装包的同时,主服务器后台会获取到用户所选择的项目名称,根据该名称可以从数据库中获得重签所需要的信息。
S32,将与所述请求对应的重签任务分发给空闲的重签服务器,触发所述重签服务器通过如图1所示实施例提供的应用程序重新签名的方法对所述应用程序安装包进行重新签名;
在具体实施当中,客户端可以为独立的应用软件或者浏览器界面,也可以为与主服务器对等的终端,用于向主服务器发送重签任务请求并上传可用于重新签名的应用程序安装包。主服务器使用的系统为Debian4.6.3-14,安装的主要服务有:1)Apache+Php+MySql,负责搭建网络平台,提供http服务;2)JenkinsMaster,负责管理Jenkins任务;3)ftp服务,负责提供ftp服务以传输文件。重签服务器负责具体的重签工作,与主服务器之间通过Jenkins命令进行控制,并通过ftp进行数据传输。
Jenkins提供了一个命令行工具jenkins-cli.jar,并提供了相应的命令行参数,主服务器通过运行jenkins-cli.jar可以远程启动重签任务。重签任务启动后,重签服务器会从ftp服务器的相应位置中获取应用程序安装包,将所述应用程序安装包下载到本地进行重签。
如图4所示,为了避免反复重签,提高重签的效率,所述步骤S32可以通过以下步骤实现:
S321,获取所述应用程序安装包的MD5值、预备配置文件的名称和预备配置文件的版本号;
S322,判断所述MD5值、所述预备配置文件的名称和所述预备配置文件的版本号与缓存数据库中已重新签名的应用程序安装包的相应信息是否一致;
S323,若一致,则将所述缓存数据库中的已重新签名的所述应用程序安装包作为本次重签任务的结果;
S324,若不一致,则将对所述应用程序安装包进行重新签名的任务分发给空闲的重签服务器,触发所述重签服务器通过如图1所示实施例提供的应用程序重新签名的方法对所述应用程序安装包进行重新签名。
缓存数据库中保存了最近一段时间内进行重新签名的应用程序安装包的MD5值以及对所述的应用程序安装包进行重新签名所用的预备配置文件的名称和所述预备配置文件的版本号。在具体实施当中,通过判断当前重签任务的应用程序安装包的MD5值和所用的预备配置文件的文件名和版本号是否与之前任务一致,当一致时,直接从缓存数据库中获取之前任务所获得的已重签文件。当不一致时,将重签任务分发给重签服务器,通过重签服务器进行重新签名。可有效提高重签的效率,降低系统的负担。其中,检测应用程序安装包的MD5值是为了检测是否对同一应用程序安装包进行重签,检测预备配置文件的名称是为了检测是否是使用同一个重签项目,检测预备配置文件的版本号是为了检验预备配置文件是否有更新。
本步骤中所述重签服务器对所述应用程序安装包进行重新签名的方法与图1所示实施例相同,可参见图1所示实施例中的相关描述。
S33,将重新签名后的应用程序安装包保存到相应的网络存储位置中。
重签服务器执行重签任务后获得重新签名的应用程序安装包,并通过ftp上传到主服务器中,供其他设备下载安装。
在具体实施当中,在所述步骤S33之后还可以进一步包括步骤S34:
S34,根据所述网络存储位置,生成用于下载安装所述应用程序安装包的二维码。
具体地,如图5所示,所述步骤S34包括:
S341,根据所述网络存储位置和bundle信息生成所述应用程序安装包的plist文件;
某些设备要想实现在线安装,需要先生成一个plist文件,所述plist文件包含了安装包的网络存储位置、bundleid以及安装标题。
S342,将所述plist文件上传到https服务器中,并获取所述plist文件在所述https服务器中的地址;
所述https服务器可以为另外的服务器也可以为在所述主服务器上安装的https服务。
S343,根据所述plist文件的地址,生成所述应用程序安装包的下载安装页面;
S344,通过二维码生成插件将所述下载安装页面转换为二维码。
移动设备通过扫描所述二维码快速完成下载并安装所述应用程序安装包。
此外,还可以通过同一枚二维码满足运行不同系统的多种设备扫码安装应用的需求,运行不同系统的多种设备可通过扫描同一枚二维码快速下载和安装对应版本的应用程序。在具体实施当中,可将不同系统所使用的应用程序安装包上传到服务器中,当用户设备扫码访问时,利用http协议的userAgent属性,获得用户设备的操作系统,根据不同系统的需求,直接提供应用程序安装包的网络存储位置,或者提供上述plist文件的安装地址,如果无法辨别设备的系统,则提供一个选择界面,由用户自行选择安装包进行下载安装。
参见图6,是本发明提供的应用程序重新签名的装置的一个实施例的结构图;本实施例的基本原理,与图1所示实施例的基本原理一致,本实施例中未详述之处,可参见图1所示实施例中的相关描述。
如图6所示,所述装置包括:
任务接收模块61,用于接收主服务器分发的对应用程序安装包进行重新签名的任务,并从所述主服务器中下载所述应用程序安装包;
解压模块62,用于对所述应用程序安装包进行解压,获取解压文件;
删除模块63,用于删除所述解压文件中原有的签名信息;
导入模块64,用于将预备配置文件导入所述解压文件中;
修改模块65,用于修改所述解压文件中的bundle信息;
签名模块66,用于根据所述预备配置文件、修改后的bundle信息和预先配置的授权证书,在所述解压文件中生成新的签名信息;
打包模块67,用于将生成新的签名信息后的所述解压文件重新打包成应用程序安装包,并上传到所述主服务器中。
图6中虽未画出,但在具体实施当中,所述装置还包括:
证书导入模块,用于获取所述授权证书,并将所述授权证书导入到本地。
所述签名模块66包括:
调用单元,用于调用重签工具中的重签命令,根据所述预备配置文件、修改后的bundle信息和预先配置的授权证书,在所述解压文件中生成新的签名信息。
所述应用程序重新签名的装置还包括:
扩展模块,用于执行扩展任务;所述扩展任务包括检测应用程序的指令集类型和修改所述应用程序的版本号中的至少一种。
具体地,当所述扩展任务为检测应用程序的指令集类型时;所述扩展模块包括:
获取单元,用于从所述解压文件中获取程序文件;
查看单元,用于通过系统的lipo命令对所述程序文件进行查看,获取所述程序文件的指令集信息;
分析单元,用于对所述指令集信息进行分析,获取指令集的类型;
反馈单元,用于将所述指令集的类型反馈给所述主服务器。
参见图7,是本发明提供的应用程序重新签名的装置的另一个实施例的结构图;本实施例的基本原理,与图3所示实施例的基本原理一致,本实施例中未详述之处,可参见图3所示实施例中的相关描述。
接收模块71,用于接收客户端发送的可用于重新签名的应用程序安装包以及对所述应用程序安装包进行重新签名的请求;
分发模块72,用于将与所述请求对应的重签任务分发给空闲的重签服务器,触发所述重签服务器通过如图1所示实施例提供的应用程序重新签名的方法对所述应用程序安装包进行重新签名;
存储模块73,用于将重新签名后的应用程序安装包保存到相应的网络存储位置中。
进一步地,所述装置还包括:
二维码生成模块74,用于根据所述网络存储位置,生成用于下载安装所述应用程序安装包的二维码。
在具体实施当中,所述二维码生成模块74包括:
plist文件生成单元,用于根据所述网络存储位置和bundle信息生成所述应用程序安装包的plist文件;
plist文件上传单元,用于将所述plist文件上传到https(HyperTextTransferProtocoloverSecureSocketLayer)服务器中,并获取所述plist文件在所述https服务器中的地址;
安装页面生成单元,用于根据所述plist文件的地址,生成所述应用程序安装包的下载安装页面;
二维码生成单元,用于通过二维码生成插件将所述下载安装页面转换为二维码。
此外,所述装置还包括:
配置模块,用于根据预先设定的或者所述请求中的配置信息,将预备配置文件和授权证书配置到所述重签服务器中。
具体地,所述分发模块72包括:
重签信息获取单元,用于获取所述应用程序安装包的MD5值、预备配置文件的名称和预备配置文件的版本号;
判断单元,用于判断所述MD5值、所述预备配置文件的名称和所述预备配置文件的版本号与缓存数据库中已重新签名的应用程序安装包的相应信息是否一致;
结果获取单元,用于若所述MD5值、所述预备配置文件的名称和所述预备配置文件的版本号与缓存数据库中已重新签名的应用程序安装包的相应信息一致,则将所述缓存数据库中的已重新签名的所述应用程序安装包作为本次重签任务的结果;
分发单元,用于若所述MD5值、所述预备配置文件的名称和所述预备配置文件的版本号与缓存数据库中已重新签名的应用程序安装包的相应信息不一致,则将对所述应用程序安装包进行重新签名的任务分发给空闲的重签服务器,触发所述重签服务器通过如图1所示实施例提供的应用程序重新签名的方法对所述应用程序安装包进行重新签名。
参见图8,是本发明提供的应用程序重新签名的系统的一个实施例的结构图;本实施例的基本原理与前述实施例一致,本实施例中未详述之处可参见前述实施例中的相关描述;
所述应用程序重新签名的系统包括客户端(Client)81、主服务器(Master)82和重签服务器(Slave)83;
所述客户端81,用于向所述主服务82发送对应用程序进行重新签名的请求和应用程序安装包;
所述主服务器82上设置有如图6所示实施例提供的应用程序重新签名的装置;
所述重签服务器83上设置有如图7所示实施例提供的应用程序重新签名的装置。
在具体实施当中,主服务器与重签服务器之间以Jenkins命令作为控制流,并且主服务器开启ftp服务,与重签服务器之间使用ftp传输数据流。利用分布式结构增强重签系统的硬件扩展性,并可以满足大量用户并行访问的需求。
综上所述,本发明实施例提供的应用程序重新签名的方法、装置和系统,通过主服务器接收客户端发送的应用程序安装包和重新签名请求,将对所述应用程序安装包进行重新签名的任务分发给重签服务器,利用所述重签服务器对所述应用程序安装包进行重新签名,可在不同的操作系统上实现对应用程序进行重新签名,降低应用程序重新签名的环境依赖,使得重新签名的过程快速简便。
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (21)
1.一种应用程序重新签名的方法,其特征在于,包括:
接收主服务器分发的对应用程序安装包进行重新签名的任务,并从所述主服务器中下载所述应用程序安装包;
对所述应用程序安装包进行解压,获取解压文件;
删除所述解压文件中原有的签名信息;
将预备配置文件导入所述解压文件中;
修改所述解压文件中的bundle信息;
根据所述预备配置文件、修改后的bundle信息和预先配置的授权证书,在所述解压文件中生成新的签名信息;
将生成新的签名信息后的所述解压文件重新打包成应用程序安装包,并上传到所述主服务器中。
2.如权利要求1所述的应用程序重新签名的方法,其特征在于,在所述接收主服务器分发的对应用程序安装包进行重新签名的任务,并从所述主服务器中下载所述应用程序安装包之前,还包括:
获取所述授权证书,并将所述授权证书导入到本地。
3.如权利要求1所述的应用程序重新签名的方法,其特征在于,所述根据所述预备配置文件、修改后的bundle信息和预先配置的授权证书,在所述解压文件中生成新的签名信息,具体为:
调用重签工具中的重签命令,根据所述预备配置文件、修改后的bundle信息和预先配置的授权证书,在所述解压文件中生成新的签名信息。
4.如权利要求1到3任一项所述的应用程序重新签名的方法,其特征在于,在所述根据所述预备配置文件、修改后的bundle信息和预先配置的授权证书,在所述解压文件中生成新的签名信息之前,还包括:
执行扩展任务;所述扩展任务包括检测应用程序的指令集类型和修改所述应用程序的版本号中的至少一种。
5.如权利要求4所述的应用程序重新签名的方法,其特征在于,所述检测应用程序的指令集类型,具体为:
从所述解压文件中获取程序文件;
通过系统的lipo命令对所述程序文件进行查看,获取所述程序文件的指令集信息;
对所述指令集信息进行分析,获取指令集的类型;
将所述指令集的类型反馈给所述主服务器。
6.一种应用程序重新签名的方法,其特征在于,包括:
接收客户端发送的可用于重新签名的应用程序安装包以及对所述应用程序安装包进行重新签名的请求;
将与所述请求对应的重签任务分发给空闲的重签服务器,触发所述重签服务器通过如权利要求1到5任一项所述的应用程序重新签名的方法对所述应用程序安装包进行重新签名;
将重新签名后的应用程序安装包保存到相应的网络存储位置中。
7.如权利要求6所述的应用程序重新签名的方法,其特征在于,在所述将重新签名后的应用程序安装包保存到相应的网络存储位置中之后,还包括:
根据所述网络存储位置,生成用于下载安装所述应用程序安装包的二维码。
8.如权利要求7所述的应用程序重新签名的方法,其特征在于,所述根据所述网络存储位置,生成用于下载安装所述应用程序安装包的二维码,具体为:
根据所述网络存储位置和bundle信息生成所述应用程序安装包的plist文件;
将所述plist文件上传到https服务器中,并获取所述plist文件在所述https服务器中的地址;
根据所述plist文件的地址,生成所述应用程序安装包的下载安装页面;
通过二维码生成插件将所述下载安装页面转换为二维码。
9.如权利要求6所述的应用程序重新签名的方法,其特征在于,在所述接收客户端发送的可用于重新签名的应用程序安装包以及对所述应用程序安装包进行重新签名的请求之后,还包括:
根据预先设定的或者所述请求中的配置信息,将预备配置文件和授权证书配置到所述重签服务器中。
10.如权利要求6到9任一项所述的应用程序重新签名的方法,其特征在于,所述将对所述应用程序安装包进行重新签名的任务分发给空闲的重签服务器,触发所述重签服务器通过如权利要求1到5任一项所述的应用程序重新签名的方法对所述应用程序安装包进行重新签名,具体为:
获取所述应用程序安装包的MD5值、预备配置文件的名称和预备配置文件的版本号;
判断所述MD5值、所述预备配置文件的名称和所述预备配置文件的版本号与缓存数据库中已重新签名的应用程序安装包的相应信息是否一致;
若一致,则将所述缓存数据库中的已重新签名的所述应用程序安装包作为本次重签任务的结果;
若不一致,则将对所述应用程序安装包进行重新签名的任务分发给空闲的重签服务器,触发所述重签服务器通过如权利要求1到5任一项所述的应用程序重新签名的方法对所述应用程序安装包进行重新签名。
11.一种应用程序重新签名的装置,其特征在于,包括:
任务接收模块,用于接收主服务器分发的对应用程序安装包进行重新签名的任务,并从所述主服务器中下载所述应用程序安装包;
解压模块,用于对所述应用程序安装包进行解压,获取解压文件;
删除模块,用于删除所述解压文件中原有的签名信息;
导入模块,用于将预备配置文件导入所述解压文件中;
修改模块,用于修改所述解压文件中的bundle信息;
签名模块,用于根据所述预备配置文件、修改后的bundle信息和预先配置的授权证书,在所述解压文件中生成新的签名信息;
打包模块,用于将生成新的签名信息后的所述解压文件重新打包成应用程序安装包,并上传到所述主服务器中。
12.如权利要求11所述的应用程序重新签名的装置,其特征在于,所述装置还包括:
证书导入模块,用于获取所述授权证书,并将所述授权证书导入到本地。
13.如权利要求11所述的应用程序重新签名的装置,其特征在于,所述签名模块包括:
调用单元,用于调用重签工具中的重签命令,根据所述预备配置文件、修改后的bundle信息和预先配置的授权证书,在所述解压文件中生成新的签名信息。
14.如权利要求11到13任一项所述的应用程序重新签名的装置,其特征在于,所述装置还包括:
扩展模块,用于执行扩展任务;所述扩展任务包括检测应用程序的指令集类型和修改所述应用程序的版本号中的至少一种。
15.如权利要求14所述的应用程序重新签名的装置,其特征在于,当所述扩展任务为检测应用程序的指令集类型时,所述扩展模块包括:
获取单元,用于从所述解压文件中获取程序文件;
查看单元,用于通过系统的lipo命令对所述程序文件进行查看,获取所述程序文件的指令集信息;
分析单元,用于对所述指令集信息进行分析,获取指令集的类型;
反馈单元,用于将所述指令集的类型反馈给所述主服务器。
16.一种应用程序重新签名的装置,其特征在于,包括:
接收模块,用于接收客户端发送的可用于重新签名的应用程序安装包以及对所述应用程序安装包进行重新签名的请求;
分发模块,用于将与所述请求对应的重签任务分发给空闲的重签服务器,触发所述重签服务器通过如权利要求1到5任一项所述的应用程序重新签名的方法对所述应用程序安装包进行重新签名;
存储模块,用于将重新签名后的应用程序安装包保存到相应的网络存储位置中。
17.如权利要求16所述的应用程序重新签名的装置,其特征在于,所述装置还包括:
二维码生成模块,用于根据所述网络存储位置,生成用于下载安装所述应用程序安装包的二维码。
18.如权利要求17所述的应用程序重新签名的装置,其特征在于,所述二维码生成模块包括:
plist文件生成单元,用于根据所述网络存储位置和bundle信息生成所述应用程序安装包的plist文件;
plist文件上传单元,用于将所述plist文件上传到https服务器中,并获取所述plist文件在所述https服务器中的地址;
安装页面生成单元,用于根据所述plist文件的地址,生成所述应用程序安装包的下载安装页面;
二维码生成单元,用于通过二维码生成插件将所述下载安装页面转换为二维码。
19.如权利要求16所述的应用程序重新签名的装置,其特征在于,所述装置还包括:
配置模块,用于根据预先设定的或者所述请求中的配置信息,将预备配置文件和授权证书配置到所述重签服务器中。
20.如权利要求16到19任一项所述的应用程序重新签名的装置,其特征在于,所述分发模块包括:
重签信息获取单元,用于获取所述应用程序安装包的MD5值、预备配置文件的名称和预备配置文件的版本号;
判断单元,用于判断所述MD5值、所述预备配置文件的名称和所述预备配置文件的版本号与缓存数据库中已重新签名的应用程序安装包的相应信息是否一致;
结果获取单元,用于若所述MD5值、所述预备配置文件的名称和所述预备配置文件的版本号与缓存数据库中已重新签名的应用程序安装包的相应信息一致,则将所述缓存数据库中的已重新签名的所述应用程序安装包作为本次重签任务的结果;
分发单元,用于若所述MD5值、所述预备配置文件的名称和所述预备配置文件的版本号与缓存数据库中已重新签名的应用程序安装包的相应信息不一致,则将对所述应用程序安装包进行重新签名的任务分发给空闲的重签服务器,触发所述重签服务器通过如权利要求1到5任一项所述的应用程序重新签名的方法对所述应用程序安装包进行重新签名。
21.一种应用程序重新签名的系统,其特征在于,包括客户端、主服务器和重签服务器;
所述客户端,用于向所述主服务发送对应用程序进行重新签名的请求和应用程序安装包;
所述主服务器设置有如权利要求11~15任一项所述的应用程序重新签名的装置;
所述重签服务器设置有如权利要求16~20任一项所述的应用程序重新签名的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510926951.6A CN105574369A (zh) | 2015-12-14 | 2015-12-14 | 应用程序重新签名的方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510926951.6A CN105574369A (zh) | 2015-12-14 | 2015-12-14 | 应用程序重新签名的方法、装置和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105574369A true CN105574369A (zh) | 2016-05-11 |
Family
ID=55884493
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510926951.6A Pending CN105574369A (zh) | 2015-12-14 | 2015-12-14 | 应用程序重新签名的方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105574369A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106406956A (zh) * | 2016-09-23 | 2017-02-15 | 北京小米移动软件有限公司 | 应用程序的安装方法及装置 |
CN107579829A (zh) * | 2017-07-31 | 2018-01-12 | 北京五八信息技术有限公司 | 压缩文件包的签名方法和装置 |
CN109213686A (zh) * | 2018-10-22 | 2019-01-15 | 网易(杭州)网络有限公司 | 应用包体检查方法、装置、存储介质、处理器及服务器 |
CN109598121A (zh) * | 2018-12-11 | 2019-04-09 | 深圳市网心科技有限公司 | 应用程序id生成方法、系统、计算机装置及存储介质 |
CN110321669A (zh) * | 2019-06-04 | 2019-10-11 | 平安科技(深圳)有限公司 | 应用程序重签名的方法、装置、设备及存储介质 |
CN110348178A (zh) * | 2019-06-27 | 2019-10-18 | 绿漫科技有限公司 | 一种对iOS系统应用重签名的方法 |
CN110659055A (zh) * | 2019-10-24 | 2020-01-07 | 四川隧唐科技股份有限公司 | 一种安装文件应用程序更新方法、更新检测方法及装置 |
CN112148597A (zh) * | 2020-09-16 | 2020-12-29 | 北京基调网络股份有限公司 | 一种消除iOS设备授权对话框的方法、测试方法及存储介质 |
CN113094659A (zh) * | 2021-03-17 | 2021-07-09 | 青岛海尔科技有限公司 | 用于应用文件发布的方法、装置、平台设备及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090106560A1 (en) * | 2007-10-17 | 2009-04-23 | Airbus France | Entity-identity based security procurement of computer files that are downloadable to an aircraft, method of authentication, and associated system and aircraft |
CN101834890A (zh) * | 2010-04-02 | 2010-09-15 | 浪潮(北京)电子信息产业有限公司 | 一种分布式系统的智能化管理系统及方法 |
CN103092638A (zh) * | 2011-10-31 | 2013-05-08 | 北京千橡网景科技发展有限公司 | 移动应用软件的传播方法和装置 |
CN103729186A (zh) * | 2013-12-31 | 2014-04-16 | 上海网达软件股份有限公司 | 一种批量生成多渠道apk文件包的方法 |
CN104346184A (zh) * | 2013-08-01 | 2015-02-11 | 中兴通讯股份有限公司 | 应用打包装置及方法 |
-
2015
- 2015-12-14 CN CN201510926951.6A patent/CN105574369A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090106560A1 (en) * | 2007-10-17 | 2009-04-23 | Airbus France | Entity-identity based security procurement of computer files that are downloadable to an aircraft, method of authentication, and associated system and aircraft |
CN101834890A (zh) * | 2010-04-02 | 2010-09-15 | 浪潮(北京)电子信息产业有限公司 | 一种分布式系统的智能化管理系统及方法 |
CN103092638A (zh) * | 2011-10-31 | 2013-05-08 | 北京千橡网景科技发展有限公司 | 移动应用软件的传播方法和装置 |
CN104346184A (zh) * | 2013-08-01 | 2015-02-11 | 中兴通讯股份有限公司 | 应用打包装置及方法 |
CN103729186A (zh) * | 2013-12-31 | 2014-04-16 | 上海网达软件股份有限公司 | 一种批量生成多渠道apk文件包的方法 |
Non-Patent Citations (2)
Title |
---|
KEY君_ZIYING: "《https://segmentfault.com/q/1010000000623121/a-1020000000624655/revision》", 1 August 2014 * |
程序园: "《http://www.voidcn.com/article/p-hajrveih-ch.html》", 1 July 2015 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106406956A (zh) * | 2016-09-23 | 2017-02-15 | 北京小米移动软件有限公司 | 应用程序的安装方法及装置 |
CN106406956B (zh) * | 2016-09-23 | 2020-06-02 | 北京小米移动软件有限公司 | 应用程序的安装方法及装置 |
CN107579829A (zh) * | 2017-07-31 | 2018-01-12 | 北京五八信息技术有限公司 | 压缩文件包的签名方法和装置 |
CN109213686A (zh) * | 2018-10-22 | 2019-01-15 | 网易(杭州)网络有限公司 | 应用包体检查方法、装置、存储介质、处理器及服务器 |
CN109213686B (zh) * | 2018-10-22 | 2022-03-22 | 网易(杭州)网络有限公司 | 应用包体检查方法、装置、存储介质、处理器及服务器 |
CN109598121A (zh) * | 2018-12-11 | 2019-04-09 | 深圳市网心科技有限公司 | 应用程序id生成方法、系统、计算机装置及存储介质 |
CN110321669A (zh) * | 2019-06-04 | 2019-10-11 | 平安科技(深圳)有限公司 | 应用程序重签名的方法、装置、设备及存储介质 |
CN110348178A (zh) * | 2019-06-27 | 2019-10-18 | 绿漫科技有限公司 | 一种对iOS系统应用重签名的方法 |
CN110659055A (zh) * | 2019-10-24 | 2020-01-07 | 四川隧唐科技股份有限公司 | 一种安装文件应用程序更新方法、更新检测方法及装置 |
CN112148597A (zh) * | 2020-09-16 | 2020-12-29 | 北京基调网络股份有限公司 | 一种消除iOS设备授权对话框的方法、测试方法及存储介质 |
CN113094659A (zh) * | 2021-03-17 | 2021-07-09 | 青岛海尔科技有限公司 | 用于应用文件发布的方法、装置、平台设备及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105574369A (zh) | 应用程序重新签名的方法、装置和系统 | |
US9087041B2 (en) | Enterprise test system platform and associated method for interoperable test data management, test development, test libraries and test workflow management and automation | |
US9602598B2 (en) | Coordinating application migration processes | |
US9400887B2 (en) | Program analysis/verification service provision system, control method for same, computer readable non-transitory storage medium, program analysis/verification device, program analysis/verification tool management device | |
US9419856B1 (en) | Network device configuration deployment pipeline | |
US9992064B1 (en) | Network device configuration deployment pipeline | |
CN103984573A (zh) | 应用程序的安装方法及装置 | |
WO2023045849A1 (zh) | 软件包处理方法、装置、系统、设备及介质 | |
KR102080156B1 (ko) | 자동 재충전 시스템, 방법 및 서버 | |
CN107239309B (zh) | 补丁生成方法及装置、更新方法、电子设备、存储介质 | |
KR101757149B1 (ko) | 권한 부여 기동장치를 이용한 스마트기기 응용프로그램의 자동 시험방법 | |
CN105072398B (zh) | 一种设备升级方法和装置 | |
CN111142884A (zh) | 小程序的版本部署方法、装置、电子设备及存储介质 | |
CN105095207A (zh) | 检索、获取应用软件内容的方法和装置 | |
CN112199567A (zh) | 一种分布式数据采集方法、系统、服务器和存储介质 | |
CN113961936A (zh) | 可信白名单建设方法、系统、装置和计算机设备 | |
CN109818972B (zh) | 一种工业控制系统信息安全管理方法、装置及电子设备 | |
CN110780894B (zh) | 热升级处理方法、装置及电子设备 | |
CN113032224A (zh) | 一种信息采集方法、装置、电子设备及可读存储介质 | |
CN104917633A (zh) | 模拟fota升级的方法和装置 | |
CN104063306A (zh) | 智能终端软件测试中的自动登录方法、装置和系统 | |
US11080123B2 (en) | Information processing apparatus | |
CN109600416B (zh) | 业务服务器远程登录方法、装置、电子设备及存储介质 | |
CN112947951A (zh) | 一种软件安装方法及相关设备 | |
CN113436699A (zh) | 新冠核酸检测报告生成方法、系统、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160511 |
|
RJ01 | Rejection of invention patent application after publication |