利用jar对apk进行签名

本文详细介绍了如何使用jar对apk进行签名的过程,包括准备工作、判断apk是否已签名、创建密钥、使用密钥签名以及注意事项。在签名过程中,通过检查是否存在META-INF文件夹来判断apk状态,使用特定命令生成密钥并使用它对apk进行签名,确保应用的安全性和可安装性。

准备工作

首先将jdk中的bin文件夹添加至path环境变量中,准备一个未签名的apk应用。

判断是否签名

要判断一个apk文件是否已经进行过签名,使用解压应用(如WinRAR等)打开该文件,查看是否有一个META-INF的文件夹,如果有则代表已经签名;没有则表示没有签名。

使用WinRAR打开一个已经签名的apk应用.png

将一个已经签名的应用转化为一个未签名的应用方法非常简单,只需要将应用中的META-INF文件夹删除就可以了。

可在解压应用界面(上图)直接删除;也可以先将应用程序的后缀名由apk更改为rar等,再解压,删除,然后压缩,将后缀名改成apk

需要注意的一点是,在压缩时要保持原来的文件结构不变,需要选中所有文件(夹)来压缩,如下国:

打包成APK.png

使用keytool创建密钥

打开命令行,输入命令:

keytool -genkeypair -v -keystore demo.keystore -alias demo -keyalg RSA -validity 2000

参数说明:

  • genkeypair 生成密钥对
  • alias 密钥库名称,即最后保存的文件名称(demo.keystore
  • alias 密钥别名(demo
  • keyalg 密钥加密算法(RSA
  • validity 密钥有效时间,单位为天(2000天)

而后输入密码:

输入密码.png

接着会提示输入城市等信息,回车即可,默认为unknown

其它信息.png

确认,输入y(大小写均可),回车即可:

设置的参数.png
输入别名密码,若想设置不同密码,输入密码;一般情况下回车即可,默认设置相同密码:

别名密码.png

完成后会在当前文件夹下创建一个密钥文件(demo.keystore)。

创建的.keystore文件.png

创建完成。

完成后可用keytool进行查看,输入命令:

keytool -list -v -keystore demo.keystore

运行结果:

密钥文件详情.png

使用jarsigner进行签名

输入命令:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore demo.keystore demo.apk demo -signedjar demo_signed.apk

参数说明:

  • java 1.8环境下,verbosedigestalg两参数必须加上,否则生成的文件无法安装
  • keystore 所使用的密钥
  • demo.apk 要进行签名的文件
  • demo 密钥别名
  • signedjar 将签好名的应用保存为demo_signed.apk。此参数可省略,省略后直接改变原文件为已签名文件,不会生成新的文件。

运行结果:

签名成功.png

看到jar signed字样时表示签名成功。

注:

本文在WINDOWS 10JAVA 1.8的环境下进行测试,如在不同环境下可能会不适用!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值