apk爲什麼要簽名,使用命令如何對apk執行V2、V1簽名

apk爲什麼要簽名?

 1、防止被其他apk安裝替換。因爲一個應用的包名是對外可見的,你可以通過工具或者在手機設置裏直接查找,都可以找到你安裝應用的包名。這裏說的包名不是文件夾路徑而是applicationId。applicationId是一個應用的唯一標識。如果沒有簽名認證,別人寫一個和你應用一樣的包名的應用。那你的應用就可以直接被替換了吧。加了不同簽名的apk,如果包名相同,手機系統會提示安裝失敗。(現在的手機系統已經不允許安裝沒有簽名的apk了,直接運行android studio也會用$HOME/.android/debug.keystore這個文件去默認簽名,這是android studio自己創建的簽名文件,如果你刪掉它會再創建一個debug.keystore,所以。。我好像跑題了)。

 2、爲了apk信息的安全。這麼說就要提到V1和V2簽名方式的區別了,不想篇幅太長,簡單來說,android7.0引入了V2簽名方式。最大的區別是V1是先解壓存檔文件,在對其中內容進行計算驗證。而V2簽名是在整個apk文件的二進制內容上計算和驗證的,並且V2簽名的apk不能再修改,比如解壓,解壓之後簽名會失效。所以,用V2簽名後,apk的安裝速度會變快(省去解壓過程),安全性會有保證(對整個apk驗證)

使用命令如何對apk執行V2、V1簽名?

請看報道:點這裏

內容提要:
使用apksigner,同時支持V1與V2
//apksigner sign --ks 簽名文件 --ks-key-alias 別名名稱 --out 簽名後的apk 原始apk

apksigner sign --ks xxx.jks --ks-key-alias xxxx --out signed.apk original.apk

回車後輸入密碼即可完成簽名。

驗證是否成功:

apksigner verify -v --print-certs signed.apk

回車後得到下面顯示信息代表成功:
Verifies
Verified using v1 scheme (JAR signing): true
Verified using v2 scheme (APK Signature Scheme v2): true
Number of signers: 1

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章