簡介:
本來是不需要簽名的,但是我有個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 密碼庫密碼
我的操作如下:
六:驗證簽名
這怎么驗?和查看簽名樣啊。
查看到有簽名就對了。