Android apk重新签名

引用
http://jingyan.baidu.com/article/bad08e1ee438e109c851213d.html

一.签名文件的生成

如果apk需要重新进行签名,第一条你必须要一个签名文件。而这个签名文件也不同。
这种会有两种情况:

  • 1.用以前的签名文件
  • 2.新的签名文件

比如第三方插件百度地图sdk,如果你的签名文件不同了和以前不同了,那么生成的SHA1码也就不同了。所以这种情况下,你就必须需要用的是以前的签名文件,再把它和apk进行重新打包。

而如果你是要生成新的签名文件的话,那就请看Android的签名文件生成两种方法,去生成签名文件。

二.删除之前的签名文件

1、把apk的后缀改成zip格式

修改apk格式为zip格式

2、用解压工具打开压缩文件android.zip,然后删除文件夹中的 META-INF目录。
META-INF存放签名后的CERT和MANIFEST文件,用于识别软件的签名及版权。

删除META-INF文件夹

3.直接把android.apk文件后缀改为android.apk

三.为APK重新生成签名

  • 1.将签名证书(一般都是jks或者keystore格式的文件)复制到与需要重新签名的apk文件相同的目录下。按住shift键,鼠标右击,选择在此处打开命令窗口
  • 2.运行以下命令行(你就可千万别换行了,我这是为了让你们更直观的看见,其实每一行是连在一起的,中间只是有个空格)

jarsigner -verbose -keystore debug.jks
-storepass XXXXXX
-signedjar android_sign.apk
-digestalg SHA1 -sigalg MD5withRSA android.apk
key

-jarsigner是Java的签名工具-verbose参数表示:显示出签名详细信息-keystore表示使用当前目录中的debug.jks(或者格式为.keystore)签名证书文件

-storepass XXXXXX表示Keystore密码

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

android.apk表示未签名的APK Android软件

-digestalg SHA1 -sigalg MD5withRSA:这就是必须加上的参数,如果你是jdk 1.6也不受影响

key:需要换成你的签名文件的别名

签名进行中
  • 3.本文件夹下的android_sign.apk就是重新签名的apk


    android_sign.apk就是重新签名的apk

推荐阅读更多精彩内容