天天看點

安卓apk檔案使用指令行進行V1和V2簽名前言安裝JDK、安卓SDKV1簽名V2簽名簽名驗證批處理自動簽名尾巴

安卓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目錄,如下圖:

安卓apk檔案使用指令行進行V1和V2簽名前言安裝JDK、安卓SDKV1簽名V2簽名簽名驗證批處理自動簽名尾巴

接下來就是使用指令進行簽名,指令如下:

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目錄,如下圖:

安卓apk檔案使用指令行進行V1和V2簽名前言安裝JDK、安卓SDKV1簽名V2簽名簽名驗證批處理自動簽名尾巴

接下來就是使用指令進行簽名,指令如下:

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簽名,則顯示如下:

安卓apk檔案使用指令行進行V1和V2簽名前言安裝JDK、安卓SDKV1簽名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批處理檔案中,如果不需要可以自行删除。

批處理簽名使用

将各項參數配置好後,你就可以輕按兩下批處理檔案進行自動簽名,非常友善,如下圖所示:

安卓apk檔案使用指令行進行V1和V2簽名前言安裝JDK、安卓SDKV1簽名V2簽名簽名驗證批處理自動簽名尾巴

尾巴

今天的總結到這裡就結束了,希望能對大家有幫助。如果喜歡我的文章,歡迎給我點贊:點贊,評論,關注,謝謝大家!