apk文件的重新签名



1.   首先我们需要有自己的签名证书


                         打开dos窗口,进入jdk的bin目录

                         执行下面的命令            keytool -genkey -alias luochen.keystore -keyalg RSA -validity 20000 -keystore luochen.keystore


这里我们对几个参数进行一下说明

          

      keytoolJava JDK自带的证书工具

-genkey参数表示:要生成一个证书(版权、身份识别的安全证书)

-alias参数表示:证书有别名,-alias luochen.keystore表示证书别名为:luochen

-keyalg RSA表示加密类型,RSA表示需要加密,以防止别人盗取

-validity 20000表示有效时间20000( K3

-keystore luochen.keystore表示要生成的证书名称为luochen


如上所述,会让你填入一些签名必须的信息,在你操作无误以后,会在bin目录下面生成一个luochen.keystore文件


这个就是我们需要的签名证书

2.   我们在重新签名之前,需要删除apk文件中原有的签名文件,那么就需要对apk文件进行解压

            同样的,我们进入dos窗口,请确保已经准备好apktool 

            工作准备完毕,我们执行下面的命令   apktool   d    F:\software\Auto-sign\Xiezi.apk        F:\software\Auto-sign\Xiezi 


参数说明

     apktool(一种专门用来操作apk文件的工具)

     d     在apktool里面表示  解压

     F:\software\Auto-sign\Xiezi.apk     要解压对apk文件所在的目录 

     F:\software\Auto-sign\Xiezi      apk文件解压后保存的目录


如上图所示,表示解压已经成功,我们去相应的目录去查看


可以看到,跟我们想要的是一样的,我们查看一下解压目录里面的文件


       

目录主要内容解析:

            (1)      resources.arsc所有文本资源的编译产物,里面包含了各Location对应的字符串资源

            (2)     classes.dex编译后Classdx程序转换成Dalvik虚拟机的可执行字节码文件

            (3)     AndroidManifest.xml编码后的Android项目描述文件,包括了Android项目的名称、版本、权限、程序组件描述等等

            (4)     res目录:存放各种Android原始资源,包括:动画anim、图片drawable、布局layoutmenu菜单、xml等等q

            (5)     META-INF目录:存放签名后的CERTMANIFEST文件,用于识别软件的签名及版权



然后我们将META_INF这个目录删除,并将这个文件夹中的所有内容重新打包,我们命名为xz.apk



3.  重新签名

      我们将证书复制到与需要重新签名的apk文件相同的目录下,如下所示



我们再次进入dos窗口   执行下面的命令 jarsigner –verbose –keystore luochen.keystore –signedjar xz_signed.apk  xz.apk luochen.keystore


参数说明   

   hjarsignerJava的签名工具 Y. @6 P

-verbose参数表示:显示出签名详细信息

-keystore表示使用当前目录中的luochen.keystore签名证书文件。

-signedjar   xz_signed.apk表示签名后生成的APK名称,

xz.apk表示未签名的APK Android软件, luochen.keystore表示别名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值