引用
http://jingyan.baidu.com/article/bad08e1ee438e109c851213d.html
一.簽名文件的生成
如果apk需要重新進行簽名,第一條你必須要一個簽名文件。而這個簽名文件也不同。
這種會有兩種情況:
- 1.用以前的簽名文件
- 2.新的簽名文件
比如第三方插件百度地圖sdk,如果你的簽名文件不同了和以前不同了,那么生成的SHA1碼也就不同了。所以這種情況下,你就必須需要用的是以前的簽名文件,再把它和apk進行重新打包。
而如果你是要生成新的簽名文件的話,那就請看Android的簽名文件生成兩種方法,去生成簽名文件。
二.刪除之前的簽名文件
1、把apk的后綴改成zip格式
2、用解壓工具打開壓縮文件android.zip,然后刪除文件夾中的 META-INF目錄。
META-INF存放簽名后的CERT和MANIFEST文件,用于識別軟件的簽名及版權。
3.直接把android.apk文件后綴改為android.apk
三.為APK重新生成簽名
- 1.將簽名證書(一般都是jks或者keystore格式的文件)復制到與需要重新簽名的apk文件相同的目錄下。按住shift鍵,鼠標右擊,選擇在此處打開命令窗口。
- 2.運行以下命令行(你就可千萬別換行了,我這是為了讓你們更直觀的看見,其實每一行是連在一起的,中間只是有個空格)
jarsigner -verbose -keystore debug.jks
-storepass XXXXXX
-signedjar android_sign.apk
-digestalg SHA1 -sigalg MD5withRSA android.apk
key
-jarsigner是Java的簽名工具-verbose參數表示:顯示出簽名詳細信息-keystore表示使用當前目錄中的debug.jks(或者格式為.keystore)簽名證書文件
-storepass XXXXXX表示Keystore密碼
-signedjar android_sign.apk表示簽名后生成的APK名稱
android.apk表示未簽名的APK Android軟件
-digestalg SHA1 -sigalg MD5withRSA:這就是必須加上的參數,如果你是jdk 1.6也不受影響
key:需要換成你的簽名文件的別名
3.本文件夾下的android_sign.apk就是重新簽名的apk
android_sign.apk就是重新簽名的apk