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 签名 )

Android - zipalign在apksigner之前失败了

使用apksigner对apk进行v2签名

Android实践 -- 对apk进行系统签名