1. 生成簽名證書
在需要重新簽名的apk目錄下打開命令行工具(cmd):
使用JDK自帶的keytool工具, 運行下面的命令
keytool -genkey -alias test -keyalg RSA -keystore myKey.jks
/*解釋:keytool工具是Java JDK自帶的證書工具
-genkey參數(shù)表示:要生成一個證書(版權(quán)、身份識別的安全證書)
-alias參數(shù)表示:證書別名 test
-keyalg RSA表示加密類型,RSA表示需要加密,以防止別人盜取
-keystore myKey.jks表示要生成的證書名稱為myKey.jks
*/
輸入完回車后屏幕顯示:
輸入密鑰庫口令:
您的名字與姓氏是什么?
[Unknown]: test
您的組織單位名稱是什么?
[Unknown]: test
您的組織名稱是什么?
[Unknown]: test
您所在的城市或區(qū)域名稱是什么?
[Unknown]: hubei
您所在的省/市/自治區(qū)名稱是什么?
[Unknown]: hubei
該單位的雙字母國家/地區(qū)代碼是什么?
[Unknown]: CN
CN=test, OU=test, O=test, L=hubei, ST=hubei, C=CN是否正確?
[否]: y
輸入 <test> 的密鑰口令
(如果和密鑰庫口令相同, 按回車):
2. 刪除之前APK文件的簽名
1、把apk的后綴改成zip格式
2、用解壓工具打開壓縮文件android.zip,然后刪除文件夾中的 META-INF目錄。
META-INF存放簽名后的CERT和MANIFEST文件,用于識別軟件的簽名及版權(quán)。
3. 為APK重新生成簽名
將剛剛簽名的文件與需要重新簽名的apk文件,確保在同一目錄下
然后在此目錄文件下打開命令cmd工具 ,執(zhí)行以下語句:
jarsigner -verbose -keystore myKey.jks -signedjar test_sin.apk test.apk test
命令解釋:
jarsigner是Java的簽名工具,JDK自帶
-verbose參數(shù)表示:顯示出簽名詳細信息
-keystore表示使用當(dāng)前目錄中的android.keystore簽名證書文件。
-signedjar app-release.apk app-dubug.apk 表示簽名后生成的APK名稱為app-release.apk ,未簽名的APK Android軟件名稱為app-dubug.apk
-androidauto.keystore表示簽名文件的別名,生成證書的時候有書寫
執(zhí)行以上操作之后在目錄下生成了test_sin.apk,就是重新簽名的文件