Android代碼簽名證書使用指南

使用代碼簽名證書是保護開發者以及用戶辨別真假Andoid安卓APP的重要認證方式,因此Andoid代碼簽名證書的使用非常的重要,本文主要爲大家介紹Andoid代碼簽名證書籤名方法、簽名教程等使用指南,供大家參考!

一、Andoid代碼簽名證書籤名方法介紹

.使用Keytool 和jsigne工具簽名(在jdk/bin目錄下)

)生成簽名keystoe:

確保電腦上安裝了JDK,因爲我們將使用JDK自帶的創建和管理數字證書的工具Keytool。在命令行下輸入如下命令:

keytool -genkey - -keystoe pp.keystoe -lis lis_nme -keylg RSA -lidity 20000

-lis 後面跟的是別名這裏是lis_nme

-keylg 是加密方式這裏是RSA

-lidity 是有效期這裏是20000

-keystoe 就是要生成的keystoe的名稱這裏是pp.keystoe

然後按回車鍵,按回車後首先會提示你輸入的密碼,然後會再確認你的密碼。

之後會依次叫你輸入姓名、組織單位、組織名稱、城市區域、省份名稱、國家代碼(CN)等。

2)簽名:

jsigne -ebose -keystoe pp.keystoe -signedj pp_signed.pk pp.pk lis_nme

-keystoe: keystoe的名稱

-signedj pp_signed.pk: 指定簽名後生成的APK名稱

pp.pk: 目標APK

然後按回車:會要求輸入剛纔設置的密碼,輸入後按回車就開始簽名了。

3)查看簽名:

jsigne -eify pp_signed.pk

查看是否簽名,如果已經簽名會打印 “j eified”.

jsigne -eify -ebose -cets pp_signed.pk

查看簽名詳細信息。

4)通過ziplign工具進行優化pk(ndoid自帶的工具,./build/tools/ziplign)

ziplign - 4 pp_signed.pk ndoides.pk 對pk優化

ziplign -c - 4 ndoides.pk 查看pk是否經過優化

2.使用eclipse ADT工具簽名

在Pckge Exploe 窗口,右鍵,選擇Andoid Tools—>Expot Signed Appliction Pckge 然後按照提示一步一步,生成已簽名的pk。通過eclipse也可以導出未簽名的APK文件。

注意:需要輸入兩次密碼,第一次是私鑰密碼,第二次時私鑰別名的密碼。

3.eclipse在debug模式下自動簽名(無須手動配置):

在debug模式下用eclipse 的ADT爲ndoid簽名,只要應用程序在eclipse下開發,系統就會自動給pk簽名和優化。

在Eclipse中Windows > Pefeences > Andoid > Build可以看到你keysote的位置;

知識擴展:《代碼簽名證書工具》

二、生成Andoid系統簽名

做CTS 認證時,需要用到Andoid系統簽名。通過mke -j4編譯出來的system.img使用的是test key,這種類型的key只適用於開發階段,而且這種祕鑰是公開的,誰都可以使用。當發佈一款ndoid產品,就需要另外給整個系統籤個名,防止被別人盜用。這種系統就是elese版本的Andoid系統。

、生成加密key文件

要對Andoid系統進行簽名,需要生成四種類型的key文件。

)elesekey (testkey)

b)medi

c)shed

d)pltfom

)/ndoid_sc/deelopment/tools目錄。

2)使用mke_key工具生成簽名文件。需要分別生成 elesekey,medi,shed,pltfom。

./mke_key elesekey ‘/C=CN/ST=JingSu/L=NnJing/O=Compny/OU=Deptment/CN=You Nme/emilAddess=YouE-milAddess’ (系統將會提示輸入針對各種key的密碼,按照提示輸入即可)

將會生成 elesekey.pk8 和 elesekey.x509.pem文件,其中 *.pk8是生成的私鑰,而*.x509.pem是公鑰,生成時兩者是成對出現的.

注意:如果出現 openssl : eloction eo :openssl : symbol …嘗試用 sudo 執行命令,問題解決了!

2.回到根目錄ndoid_sc。

命令執行的時候都最好在工程的根目錄下執行,要不然腳本用到的某些文件找不到的。

3.編譯系統

mke -j4 PRODUCT-geneic-use dist

其中geneic 表示生成的TARGET_PRODUCT類型爲geneic,

use代表TARGET_BUILD_VARIANT爲use版本。

編譯完成之後回在ndoid_sc/dist/目錄內生成個poduct_geneic-use_files開頭的zip文件.這就是我們需要進行簽名的文件系統.

4.開始簽名

./build/tools/elesetools/sign_tget_files_pks -d key_diectoy/ out/dist/poduct_modul-tget_files.zip out/dist/signed_tget_files.zip

通過sign_tget_files_pks 腳本,完成ndoid系統的簽名工作.

key_diectoy/ 表示key所在的目錄。

out/dist/poduct_modul-tget_files.zip 源文件。

out/dist/signed_tget_files.zip 生成簽名的目標文件。

可能會出現:

ERROR: no key specified fo:

ClendWidget.pk

Contcts_yellowpge.pk

SnsAppMin.pk

這表示,簽名並沒有成功,原因是由於有些pk程序已經簽過名了或者找不到對應的key. 這需要我們對pk設置過濾,不對上面的應用進行簽名.方法如下:

通過參數”-e <pknme>=” 來過濾這些應用.

./build/tools/elesetools/sign_tget_files_pks -d key_diectoy/ -e ClendWidget.pk= -e Contcts_yellowpge.pk= -e SnsAppMin.pk= -e out/dist/poduct_modul-tget_files.zip out/dist/signed_tget_files.zip

輸入該命令時會提示輸入key的密碼,會出現四次密碼輸入提示。分別爲四種類型的key的密碼。

5.生成imge文件

./build/tools/elesetools/img_fom_tget_files out/dist/signed-tget-files.zip signed-img.zip

用img_fom_tget_files 命令對生成的igned-tget-files.zip文件進行打包,signed-img.zip包含了boot.img,usedte.img,system.img文件等.

6.通過fstboot下載signed-img.zip文件

fstboot updte signed-img.zip

通過fstboot就可以把簽了名的系統文件傳到手機上了。

知識擴展:代碼簽名證書時間戳

代碼簽名證書推薦:EV代碼簽名證書 | 微軟代碼簽名證書

代碼簽名證書品牌:DigiCet  、Sectigo