简介:
本来是不需要签名的,但是我有个android的专用设备,限制安装,但是售后给我通过了一个证书的验证。
那么我想装什么软件,就需要这个证书验证。
现在记录一下签名的主要过程,还有修改签名的方法。
一:环境准备
其实也没用什么特别的工具JAVA JDK 就够用了。
https://www.oracle.com/technetwork/java/javase/downloads/jdk12-downloads-5295953.html
根据自己的版本下载,我下载的是Windows 158.63 MB jdk-12.0.2_windows-x64_bin.exe
一路下一步安装就可以了。
二:生成签名的证书
找到你安装文件夹
D:\Program Files\Java\jdk-12.0.1\bin>keytool -genkey -alias jackadam -keyalg RSA -validity 36500 -keystore jackadam.keystore 输入密钥库口令: 再次输入新口令: 您的名字与姓氏是什么? [Unknown]: jack 您的组织单位名称是什么? [Unknown]: technology 您的组织名称是什么? [Unknown]: fntco 您所在的城市或区域名称是什么? [Unknown]: zhengzhou 您所在的省/市/自治区名称是什么? [Unknown]: henan 该单位的双字母国家/地区代码是什么? [Unknown]: cn CN=jack, OU=technology, O=fntco, L=zhengzhou, ST=henan, C=cn是否正确? [否]: y 正在为以下对象生成 2,048 位RSA密钥对和自签名证书 (SHA256withRSA) (有效期为 36,500 天): CN=jack, OU=technology, O=fntco, L=zhengzhou, ST=henan, C=cn
标红的可以根据自己喜好来换。会在bin目录生成证书名称为jackadam的jackadam.keystore这个密钥文件。
-validity 36500 很多资料里没写这个参数,这个参数是100年的有效期。
谁没事换证书玩啊?就写100年吧。
三:查看签名
第一步:将apk解压
第二步:找到META-INF 下的.RSA文件
第三步:在mac终端或者window控制器上输入命令:
keytool -printcert -file xxx.RSA回车,即可查看签名文件.将.RSA文件拖入到-file后面,即可查看:如下图
这比我还狠,1000年,365000天。真是地老天荒啊。
四:删除签名
其实很简单,用WinRAR打开apk,找到META-INF文件夹,删除MANIFEST.MF之外的所有其他文件即可。
五:签名
签名命令如图下:
使用jarsigner进行签名
jarsigner -verbose -keystore [您的私钥存放路径] -signedjar [签名后文件存放路径] [未签名的文件路径] [您的证书名称]
或者直接把密码给带进签名里面去,就不用手动输入密码库密码了:命令如下
jarsigner -verbose -keystore [您的私钥存放路径] -storepass 密码库密码 -signedjar [签名后文件存放路径] [未签名的文件路径] [您的证书名称]
或者
jarsigner -verbose -keystore [您的私钥存放路径] -signedjar [签名后文件存放路径] [未签名的文件路径] [您的证书名称] -storepass 密码库密码
我的操作如下:
六:验证签名
这怎么验?和查看签名样啊。
查看到有签名就对了。