a.使用工具re-sign.jar : 目前研究当中未通过
b.使用命令操作
1. 删除apk的原签名
1. 修改apk包.apk后缀名为.zip。
2. 打开zip包,删除文件夹META-INF目录。该目录存放签名后的CERT和MANIFEST文件,用户识别软件的签名和版权。
3. 重新修改.zip后缀名为.apk
2. 生成签名证书
在cmd下,使用JDK自带的keytool证书工具
keytool -genkeypair -alias androidauto.keystore -keyalg RSA -validity 20000 -keystore android.keystore
参数解释:
[-genkeypair] 生成密钥对
[-alias <别名>] 要处理的条目的别名. androidauto.keystore为该证书的别名
[-keyalg <算法>] 密钥算法名称 RSA表示加密
[-validity <天数>] 有效天数 20000表示该证书有效天数为20000
[-keystore <名称>] 密钥库名称 生成为android.keystore名称的密钥库
2.为apk生成新签名
将证书和修改后的apk放在同一个目录 , cmd 进入该目录下,使用JDK自带的jarsigner签名工具 :
jarsigner -verbose -keystore android.keystore -signedjar new_debug.apk old.apk androidauto.keystore
参数解释:
用法:jarsigner -verify [选项] jar-file 别名
[-verbose [:suboptions]] 显示签名详细信息,子选项可以是all ,grouped或 summary
[-keystore <url>] 密钥库位置,以上指当前目录下的android.keystore
[-signedjar<文件>] 已签名的Jar文件的名称 -signedjar new_debug.apk (新签名生成的apk) old.apk (需要签名的apk)
androidauto.keystore 为签名使用证书的别名