APK重新签名的方法

1. 生成签名证书
在需要重新签名的apk目录下打开命令行工具(cmd):
使用JDK自带的keytool工具, 运行下面的命令
keytool -genkey -alias test -keyalg RSA -keystore myKey.jks

/*解释:keytool工具是Java JDK自带的证书工具
-genkey参数表示:要生成一个证书(版权、身份识别的安全证书)
-alias参数表示:证书别名 test
-keyalg RSA表示加密类型,RSA表示需要加密,以防止别人盗取
-keystore myKey.jks表示要生成的证书名称为myKey.jks
*/

输入完回车后屏幕显示:

输入密钥库口令:
您的名字与姓氏是什么?
[Unknown]: test
您的组织单位名称是什么?
[Unknown]: test
您的组织名称是什么?
[Unknown]: test
您所在的城市或区域名称是什么?
[Unknown]: hubei
您所在的省/市/自治区名称是什么?
[Unknown]: hubei
该单位的双字母国家/地区代码是什么?
[Unknown]: CN
CN=test, OU=test, O=test, L=hubei, ST=hubei, C=CN是否正确?
[否]: y

输入 的密钥口令
(如果和密钥库口令相同, 按回车):

2. 删除之前APK文件的签名
1、把apk的后缀改成zip格式
2、用解压工具打开压缩文件android.zip,然后删除文件夹中的 META-INF目录。
META-INF存放签名后的CERT和MANIFEST文件,用于识别软件的签名及版权。

3. 为APK重新生成签名
将刚刚签名的文件与需要重新签名的apk文件,确保在同一目录下

然后在此目录文件下打开命令cmd工具 ,执行以下语句:
jarsigner -verbose -keystore myKey.jks -signedjar test_sin.apk test.apk test

命令解释:
jarsigner是Java的签名工具,JDK自带
-verbose参数表示:显示出签名详细信息
-keystore表示使用当前目录中的android.keystore签名证书文件。
-signedjar app-release.apk app-dubug.apk 表示签名后生成的APK名称为app-release.apk ,未签名的APK Android软件名称为app-dubug.apk
-androidauto.keystore表示签名文件的别名,生成证书的时候有书写

执行以上操作之后在目录下生成了test_sin.apk,就是重新签名的文件

你可能感兴趣的:(APK重新签名的方法)