apk加固后再签名

本文详细介绍了安卓应用APK的v1签名和v1+v2签名过程,包括使用jarsigner和apksigner的步骤,以及如何验证签名。重点在于加固后的APK如何重新签名以确保安全。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

apk更新之前需要做安全检测,检测之前一版会做加固处理,加固后还需要重新进行签名。本文介绍一下v1签名和v1+v2签名两种方式。
有文章说需要把apk原来的签名文件,即META-INF文件夹删除,实测不删好像也不会影响。
签名之前需要准备好keystore文件、加固后的apk包

v1签名

v1签名实际是使用jarsigner签名
基本语法如下:

jarsigner -verbose -keystore $1 -storepass $2 -signedjar $3 $4 $5 -digestalg SHA1 -sigalg MD5withRSA
  • $1:keystore文件路径
  • $2:keystore文件密码,如果命令中没带,回车后系统会提示你输入对应密码
  • $3:签名后apk包路径
  • $4:要签名的apk包路径
  • $5:keystore的别名

示例如下:

jarsigner -verbose  -keystore my-release-key.jks -storepass pass -signedjar demo_signed.apk demo.apk alias_name -digestalg SHA1 -sigalg MD5withRSA

v1+v2签名

v1+v2签名就是使用apksigner签名,需要使用到apksigner.jar。这个jar包可以在SDK目录下获取,比如 ~\Android\Sdk\build-tools可以找到几个版本,选择最新的版本即可,拷贝到apk同一目录。
其基本语法如下:

java -jar apksigner.jar sign --ks $1 --ks-key-alias $2 --out $3 $4
  • $1:keystore文件路径
  • $2:keystore的别名
  • $3:签名后apk包路径
  • $4:要签名的apk包路径

此时需要输入keystore文件的密码

示例如下:

java -jar apksigner.jar sign --ks my-release-key.jks --ks-key-alias alias_name --out demo_signed.apk demo.apk

验证签名是否成功命令

java -jar apksigner.jar verify -v --print-certs $1
  • $1:签名后apk包路径

示例:

java -jar apksigner.jar verify -v --print-certs demo_signed.apk

如果显示v1 scheme和v2 scheme都成功即可
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值