安卓apk檔案使用指令行進行V1和V2簽名
- 前言
- 安裝JDK、安卓SDK
- V1簽名
- V2簽名
- 簽名驗證
- 批處理自動簽名
-
- 批處理檔案編寫
- 批處理簽名使用
- 尾巴
前言
現在安卓APP要上傳應用市場或者基于安全性考慮需要進行加強,而加強完成之後需要重新進行簽名。在AS中我們能使用AS自帶的打包功能進行簽名,而單獨的apk檔案可以使用基于JDK和SDK的指令進行手動簽名,下面我們就來看下怎麼實作吧。
安裝JDK、安卓SDK
這步是必須的,因為V1簽名是基于JDK,V2簽名是基于安卓SDK。
V1簽名
V1簽名是基于JDK,是以我們需要在指令行(win+R,然後輸入cmd回車)進入安裝JDK的bin目錄,如下圖:
接下來就是使用指令進行簽名,指令如下:
jarsigner -verbose -keystore [jks路徑] -signedjar [V1簽名完後apk檔案輸出路徑] [需要簽名的apk路徑] [簽名檔案别名]
示例:
jarsigner -verbose -keystore D:\cer\Android\sign.jks -signedjar D:\Android\sign_V1.apk D:\Android\jiagu.apk test
如果各項配置沒有問題的話,執行完指令後就可以正确生成V1簽名的apk檔案了。
V2簽名
V2簽名是基于安卓SDK,同樣我們需要在指令行(win+R,然後輸入cmd回車)進入SDK的build-tools目錄,然後随意選擇一個大于27的版本(這裡最好選擇高點的版本),然後進入lib目錄,如下圖:
接下來就是使用指令進行簽名,指令如下:
java -jar apksigner.jar sign --ks [jks路徑] --ks-key-alias [簽名檔案别名] --ks-pass pass:[證書密碼] --key-pass pass:[别名密碼] --out [V2簽名完後apk檔案輸出路徑] [需要V2簽名的apk路徑]
示例:
java -jar apksigner.jar sign --ks D:\cer\Android\sign.jks --ks-key-alias test --ks-pass pass:123456 --key-pass pass:123456 --out D:\Android\sign_V2.apk D:\Android\sign_V1.apk
到這裡V2簽名也已經完成了。
簽名驗證
完成V2簽名後使用指令進行簽名驗證(這裡和V2簽名一樣,也要指令行進入到安卓SDK相關目錄,參考上面步驟),指令如下:
java -jar apksigner.jar verify -v [簽名檔案的路徑]
示例:
java -jar apksigner.jar verify -v D:\Android\sign_V2.apk
如果正确的完成了V1和V2簽名,則顯示如下:
批處理自動簽名
既然是用用指令行進行簽名,那我們隻要配置好了相關檔案的路徑,那就可以利用windows的批處理檔案進行自動簽名。
批處理檔案編寫
以V1簽名為例,我們先要定位到JDK所在的bin目錄,然後執行V1簽名的指令,指令中配置好你的證書,需要簽名的檔案以及簽完名的檔案路徑。代碼如下:
cd /d D:\setup\JDK\Java\jdk1.8.0_171\bin && jarsigner -verbose -keystore D:cer\Android\sign.jks -signedjar D:\Android\sign_V1.apk D:\Android\jiagu.apk test
pause
建立文本,然後複制代碼到文本檔案,将字尾改為.bat,輕按兩下bat檔案就可以進行V1自動簽名了。
V2簽名批處理跟上面類似,就不再贅述了,直接貼出代碼:
cd /d D:\androidsdk\android-sdk-windows\build-tools\29.0.2\lib && java -jar apksigner.jar sign --ks D:\cer\Android\sign.jks --ks-key-alias test --ks-pass pass:123456 --key-pass pass:123456 --out D:\Android\sign_V2.apk D:\Android\sign_V1.apk
java -jar apksigner.jar verify -v D:\Android\sign_V2.apk
pause
這裡将簽名驗證的指令也加入到了V2批處理檔案中,如果不需要可以自行删除。
批處理簽名使用
将各項參數配置好後,你就可以輕按兩下批處理檔案進行自動簽名,非常友善,如下圖所示:
尾巴
今天的總結到這裡就結束了,希望能對大家有幫助。如果喜歡我的文章,歡迎給我點贊:點贊,評論,關注,謝謝大家!