Android簽名機制

2021-08-13 02:43:44 字數 1470 閱讀 1558

許可權檢查

我曾在android permission許可權機制的具體使用一文中提過,對於申請許可權的  protection level 為 signature 或者 signatureorsystem 的,會檢查許可權申請者和許可權宣告者的證書是否是一致的。

至於簽名機制的原理及其他作用,此不詳述,本文主要介紹,簽名檔案key的生成、用key去簽名apk檔案及檢視簽名的方法。

生成keystore

建立keystore,需要用到keytool.exe (位於jdk_xx\jre\bin目錄下),具體做法如下:

複製**

**如下:

keytool -genkey -alias mykey -keyalg rsa -validity 40000 -keystore demo.keystore

#說明:

#    -genkey 產生金鑰

#    -alias mykey 別名 mykey

#    -keyalg rsa 使用rsa演算法對簽名加密

#    -validity 40000 有效期限4000天

#    -keystore demo.keystore

對apk進行簽名

使用產生的keystore對apk簽名,使用到的是jarsigner.exe ,該工具位於jdk_xx\bin目錄下,命令如下:

複製**

**如下:

jarsigner -verbose -keystore demo.keystore -signedjar test_signed.apk test.apk mykey

#    test_signed.apk是簽名之後的檔案

#    test.apk是需要簽名的檔案

另外需要注意的是,如果你的jdk版本在1.7以上,你在對apk簽名時,需要加上這個引數:

複製**

**如下:

-digestalg sha1 -sigalg md5withrsa

否則同樣會出現:failure [install_parse_failed_no_certificates]的錯誤。

檢視簽名資訊

1、檢視keystore的資訊

複製**

**如下:

keytool -list -keystore demo.keystore -alias mykey -v

2、檢視keystore的公鑰證書資訊

複製**

**如下:

keytool -list -keystore demo.keystore -alias mykey -rfc

(注:獲取base64格式的公鑰證書,rfc 1421)

3、檢視apk的簽名資訊

複製**

**如下:

jarsigner -verify -verbose -certs

android 簽名機制3

1.生成長度為2048位的rsa私鑰 openssl genrsa 3 out test.pem 2048 2.生成x509格式的公鑰證書 openssl req new x509 key test.pem out test.x509.pem days 10000 3.生成符合pkcs8標註的私鑰檔...

android簽名機制(3) 如何製作簽名

在開發系統應用時,應用需要系統許可權,需要新增android shareduserid android.uid.system 然則,卻不能直接run,甚是麻煩。故想到用原始碼的平台簽名,轉成eclipse的keystore,即可直接執行除錯程式。簽名轉換 pkcs12 eclipse簽名 andro...

Android簽名機制學習筆記

參考資料android簽名機制之 簽名過程詳解 https演化過程 android的簽名,說來慚愧 接觸android這麼長時間了,對其原理如果口述的話還不能說出個一二三來,所以用此篇博文做乙個學習筆記。我們知道非對稱加密中可以有兩種 一種就是公鑰加密,私鑰解密。另外一種就是私鑰加密,公鑰解密。其中...