Android使用apksigner轮转签名的小整理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android使用apksigner轮转签名的小整理相关的知识,希望对你有一定的参考价值。
参考技术A 这篇文章主要是分析 apksigner rotate ,从字面意思理解,这是签名轮转。但是我们不讲原理,我们直接旋转,签名。我们先贴两个链接,如果一看就明白就不用往后看了。
1. 具有密钥轮转的 APK 签名方案
相应的图如下:
工具的存放位置(apksigner在哪里):
apksigner是Google官方提供的针对android apk签名及验证的专用工具,
位于Android SDK/build-tools/SDK版本/apksigner.bat
我们来一张详情图:
打开命令行进入D:\Sdk\build-tools\29.0.0-rc2输入apksigner,得到下面的结果:
在其他的文件夹下面运行上面的命令得到的结果是不同的。比如:
详细的结果如下:
我这里只是粘取了部分信息。这算是对我们的apk一个简单的验证。
开始执行轮转:
输入release.jks的密码,输入release2.jks的密码然后就导出了path文件,这个path文件是一个什么呢??其实就是一个二进制的文件。
但是就是找不到path的路径,其实path文件的位置是在 D:\ ,就在我电脑的D盘根目录。
从上面可以看到第8条就是我们今天的主角了。
下面开始签名:
执行完成上面的步骤,我们的签名就算是完成了。
先安装一个支持V2签名的apk到手机。然后看支持V3签名的apk能否覆盖安装。如果可以表示安装成功。
今天主要就是学习一下轮转签名和apksigner的一些使用,算是一个小技能的提升。
使用apksigner对apk进行v2签名
最近进行三方安全测试,剩最后一个问题:
原因是我用360加固宝之后,又用了360Signer对apk进行二次签名,而360Signer是用v1方式对apk进行签名的,所以安全检测还是不通过。
下面给出自己百度出来的对360加固之后的apk进行v2二次签名的方法。(注意要用同一个keystore)
(1)先找到电脑中25或者25以上版本的SDK的build-tools版本号的目录,并把需要签名的安装包放在该目录下。
(2)使用zipalign将安装包对齐:打开cmd,将目录切换到sdk的build-tools版本号的目录下,使用zipalign -v -p 4 input.apk output.apk进行对其操作,其中input.apk是需要签名的安装包,output.apk是对齐之后的的安装包。
(3)把对齐后的安装包apk文件放到build-tools版本号下的lib文件下,使用apksigner对安装包进行签名:打开cmd,将目录切换至当前目录下,使用如下命令:java -jar apksigner.jar sign --ks kestore的路径 --out output.apk input.apk 然后会提示输入keystore的密码,输入后回车即可完成签名。
(4)检查是否签名成功:依旧在当前目录下打开cmd,然后输入如下命令:java -jar apksigner.jar verify -v my.apk。如果v1 scheme和v2 scheme的值都为true,即表示签名成功。
以上是关于Android使用apksigner轮转签名的小整理的主要内容,如果未能解决你的问题,请参考以下文章
Android中APK签名工具之jarsigner和apksigner详解
Android 教程系列第 28 篇Android 分别使用 jarsigner 和 apksigner 对 APK 签名(v1v2 签名)的详细教程
Android 逆向修改 Android 的 apk 安装包内的文件并重新打包 ( apktool_2.6.0.jar 下载和使用 | zipalign 文件对齐 | apksigner 签名 )