对已签名apk进行再次签名的方法如下

对于客户提供的已签名apk进行再次签名的方法如下:
1、使用apktool工具,将原apk的签名进行删除:命令如下:apktool d test.apk
2、对删除签名之后的文件夹进行再次打包,此时无签名,命令如下:apktool b test,此时在test目录下会有一个dist文件夹,dist下面的就是重新打包的apk;
3、使用jarsigner对步骤2当中重新打包的apk进行签名,命令如下:jarsigner -verbose -keystore debug.keystore -sigfile cert -storepass android -signedjar test_signed.apk -sigalg SHA256withRSA test-new.apk androiddebugkey

jarsigner命令说明: 
-keystore后面为keystore
-sigfile 指定.SF和.RSA文件的文件名,如果不输入-sigfile,则默认使用keystore别名的前8个字符作为文件名
-storepass 指定keystore的密码
-sigalg 指定摘要算法
-digestalg 指定签名算法,如果指定SHA1则使用SHA1签名,如果不指定,则使用SHA256
androiddebugkey 为keystore的别名
示例:
jarsigner -verbose -keystore debug.keystore -storepass android -signedjar test_signed.apk -digestalg SHA1 -sigalg MD5withRSA test.apk androiddebugkey

apksigner 命令说明:
java -jar apksigner.jar sign --ks debug.keystore --ks-key-alias androiddebugkey --ks-pass pass:android --key-pass pass:android --out test-new_sign.apk test-new.apk
--ks 后面为keystore
--ks-key-alias 后面为keystore别名
--ks-pass pass: 后面为keystore的密码
--key-pass pass: 后面为keystore的密码
--v1-signing-enabled 是否开启V1签名,默认开启
--v2-signing-enabled 是否开启V2签名,默认开启(apksigner sign --v2-signing-enabled false --ks 密钥库名 xxx.apk)
--out 为输出的apk

apksigner.jar所在目录:E:\studio_sdk\build-tools\28.0.3\lib

使用示例:

java -jar E:\studio_sdk\build-tools\28.0.3\lib\apksigner.jar sign --ks application.keystore --ks-key-alias androiddebugkey --ks-pass pass:android --key-pass pass:android --out cashier_system_tablet-release_signed.apk cashier_system_tablet-release_unsign.apk
 

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晒干的老咸鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值