一种APP重签名方法、设备及存储介质与流程

文档序号:26139015发布日期:2021-08-03 14:22阅读:100来源:国知局
一种APP重签名方法、设备及存储介质与流程

本发明涉及应用程序技术领域,尤其涉及一种app重签名方法、设备及存储介质。



背景技术:

app(application,应用程序)指安装在平台上的软件,用于完善原始系统的不足与个性化。而app签名是平台校验app唯一性的一个检测项,检测通过的app才能在平台上正常运行,目前存在较多的app为满足不同客户的需求在不同的平台上使用不同的签名,使得打包生成app的工作量成倍增大;虽然目前也存在重签名的方法,但目前的重签名方法对平台签名环境的依赖较大,例如需要开发工具或编译打包app的环境才能进行重签名,更进一步增大了app打包工作量,且使得app文件内存增大,占据平台过多资源。



技术实现要素:

为了克服现有技术的不足,本发明的目的之一在于提供一种app重签名方法,可在没有平台签名环境的条件下快速对app进行重签名,减少打包生成app的工作量。

本发明的目的之二在于提供一种电子设备。

本发明的目的之三在于提供一种存储介质。

本发明的目的之一采用如下技术方案实现:

一种app重签名方法,包括:

步骤s1:获取应用程序app的安装包文件,将安装包文件进行重命名为压缩格式文件;

步骤s2:将重命名后的压缩格式文件解压至当前平台的指定文件夹中;

步骤s3:对指定文件夹内解压后的文件进行重新压缩,并将压缩后的文件重命名为安装包格式;

步骤s4:获取新的校验信息,根据校验信息对压缩后的安装包格式文件进行重签名,以生成重签名的应用程序app的安装包文件。

进一步地,所述将重命名后的压缩格式文件解压至指定路径的文件夹后,还包括:

删除应用程序app对应的meta-inf文件夹,所述meta-inf文件夹存储有应用程序app的原签名信息。

进一步地,所述获取新的校验信息,根据校验信息对压缩后的安装包格式文件进行重签名,包括:

利用重签名集成工具查询校验信息库的存储路径,并根据存储路径从校验信息库中获取新的校验信息;

利用新的校验信息对未签名的安装包格式文件进行重签名,并输出重签名后的应用程序app文件。

进一步地,所述校验信息包括有数字证书文件、数字证书别名和密钥。

进一步地,所述重签名集成工具使用jarsigner指令,在jarsigner指令中指定校验信息库的位置,并在jarsigner指令中指定若干参数,指定的参数包括重签名前的app文件、重签名后的app文件、数字证书名称、数字证书别名和密钥。

进一步地,所述获取新的校验信息后,还包括:

判断校验信息是否有效,若校验信息有效,则根据校验信息对压缩后的安装包格式文件进行重签名;若校验信息无效,则生成告警信息进行反馈,并暂停重签名操作。

进一步地,所述根据存储路径从校验信息库中获取新的校验信息时,还包括:

判断是否接收到用户输入的用于登录校验信息库的密码信息,若接收到密码信息,则将密码信息与校验信息库的预设密码进行比对,若二者一致,则允许进入校验信息库获取校验信息,若二者不一致,则提示信息错误。

本发明的目的之二采用如下技术方案实现:

一种电子设备,其包括处理器、存储器及存储于所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的app重签名方法。

本发明的目的之三采用如下技术方案实现:

一种存储介质,其上存储有计算机程序,所述计算机程序被执行时实现上述的app重签名方法。

相比现有技术,本发明的有益效果在于:

本发明提供一种不依赖于平台签名环境的快速重签名app的方法,将app安装包文件解压至指定文件夹中,在指定文件夹中对重压缩后的文件进行重签名,使得app文件脱离原有平台签名环境,在当前平台环境中进行重签名,生成不同签名的app使其可在对应平台上正常运行,减少打包生成app的工作量。

附图说明

图1为本发明实施例一app重签名方法的流程示意图;

图2为本发明实施例二电子设备的结构示意图。

具体实施方式

下面,结合附图以及具体实施方式,对本发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。

实施例一

本实施例提供一种app重签名方法,可减少打包生成app的工作量,在不依赖原平台签名环境下实现快速重签名app的方法,通过本实施例方法改变app签名,使其可在当前平台上正常运行。

当前平台在获取一个应用程序app的安装包文件时,由于该app的签名文件有可能与当前平台不相符,因此在运行app安装包文件之前需要检测该app的签名文件是否适用于当前平台,该验证方法可以是找到当前平台中app所对应的签名文件,查看签名文件中数字证书的详细信息,判断app的签名文件是否正常,当前平台显示证书已正常安装,则代表该app的签名文件可在当前平台中使用;若提示证书异常,则需对app进行重签名。此外,还可直接在当前平台中运行app的安装包文件,若该app可正常安装并运行,则代表app签名文件正常,若app无法正常安装,出现闪退等异常情况,则可执行本实施例的app重签名方法来改变app的签名,使其可在当前平台中正常运行。

如图1所示,本实施例的app重签名方法具体包括如下步骤:

步骤s1:获取应用程序app的安装包文件,将安装包文件进行重命名为压缩格式文件。

应用程序app实际是上一系列文件和文件夹的压缩包,app安装在平台上运行前,app一般以apk格式的安装包文件形式存储于当前平台中,在生成app签名后会生成meta-inf文件夹,在meta-inf文件夹中存储有数字证书等签名信息。

本实施例中获取app的安装包文件后,将apk格式的安装包文件重命名为zip的压缩格式文件,改变app文件的属性,将app文件进行数据压缩和文档储存,便于对app文件进行后续重签名处理。

步骤s2:将重命名后的压缩格式文件解压至当前平台的指定文件夹中。

重命名为zip格式的app文件解压至当前平台的sign文件夹中,并在解压后将存储有app原签名信息的meta-inf文件夹删除,此时的app文件不再拥有原签名信息,即可对app文件重新生成符合当前平台的新的签名。

步骤s3:对指定文件夹内解压后的文件进行重新压缩,并将压缩后的文件重命名为安装包格式。

将存储在sign文件中的解压文件重新压缩成zip格式,再将zip格式的文件重命名为apk格式文件;在上述过程中对app文件进行重命名、解压、重新压缩等过程只是改变app文件的存储地址以及文件属性,并未对app文件的数据进行改变,因此最终形成的apk文件在生成新的签名后依然可在当前平台中进行安装和运行。

步骤s4:获取新的校验信息,根据校验信息对压缩后的安装包格式文件进行重签名,以生成重签名的应用程序app的安装包文件。

由于在步骤s2中已经将app文件的原签名信息已经删除,因此经步骤s3形成的apk文件并不拥有其签名,因此,需要对app文件添加新的签名。

本实施例中对app文件进行重签名的方法为:利用重签名集成工具找到校验信息库的存储路径,并根据存储路径从校验信息库中获取新的校验信息;再利用新的校验信息对未签名的安装包格式文件进行重签名,以输出重签名后的应用程序app文件。

其中,所述重签名集成工具使用jarsigner指令,利用jarsigner指令对apk文件进行重签名;

举个例子:jarsigner-verbose-keystoretest.jks-signedjarsigned.apksign.apktestalias-storepasstestpass,jarsigner指令的命令格式及参数意义分别是:

verbose:输出签名过程的详细信息;

sign.apk:重签名前的app文件;

signed.apk:重签名后的app文件;

test.jks:数字证书文件;

testalias:数字证书别名;

testpass:密钥;

此外,jarsigner通过keystore命令指定校验信息库的地址,在校验信息库内预先存储有app重签名所需的新的校验信息,该校验信息包括但不限于数字证书文件、数字证书别名和密钥。执行jarsigner指令时,根据指定的地址查找校验信息库的位置,并根据jarsigner指令中的参数提取对应的数字证书和密钥,对重签名前的app文件进行重签名以生成重签名后的app文件。

由于校验信息库中密钥等校验信息具有时效性,因此,从校验信息库中获取校验信息时,还需判断校验信息是否有效,而判断校验信息是否有效的方法是判断校验信息是否已超时以及校验信息是否已被使用,若校验信息已超时或已被使用,则校验信息无效,此时生成告警信息进行反馈,并暂停重签名操作;若校验信息未超时且未被使用,则代表该校验信息有效,则根据校验信息对压缩后的安装包格式文件进行重签名。

与此同时,由于校验信息库存储有校验信息,为了确保校验信息的存储环境安全性,还可对校验信息库设立密码,需要输入校验信息库的正确密码才进入校验信息库中;当系统接收到用户输入的用于登录校验信息库的密码信息时,将接收到密码信息与校验信息库的预设密码进行比对,若二者一致,则允许进入校验信息库获取校验信息,若二者不一致,则提示信息错误;若用户未主动输入密码,系统则弹出对应提示以提醒用户输入密码,否则无法获取校验信息进行重签名。

实施例二

本实施例提供一种电子设备,如图2所示,包括存储器、处理器以及存储在存储器中的程序,所述程序被配置成由处理器执行,处理器执行所述程序时实现上述的app重签名方法的步骤。

处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,处理器是物联网管理平台的控制中心,利用各种接口和线路连接物联网管理平台的各个部分。

存储器可用于存储计算机程序和/或模块,处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现一种基于互联网的表单设计系统的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所倡的应用程序(比如声音播放功能、图像播放功能等)等;存储据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flash-card)至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

另外,本实施例还提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现前述app重签名方法的步骤。

其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可议介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

本实施例可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程的消费电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

本实施例中的设备及存储介质与前述实施例中的方法是基于同一发明构思下的两个方面,在前面已经对方法实施过程作了详细的描述,所以本领域技术人员可根据前述描述清楚地了解本实施中的系统的结构及实施过程,为了说明书的简洁,在此就不再赘述。

上述实施方式仅为本发明的优选实施方式,不能以此来限定本发明保护的范围,本领域的技术人员在本发明的基础上所做的任何非实质性的变化及替换均属于本发明所要求保护的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1