一、簽名代碼(首先配置好jdk的路徑,keytool和jarsigner都是java的類庫)1.產生簽名檔案keytool -genkey -alias MyFirstApp.keystore -keyalg RSA -validity 40000 -keystore MyFirstApp.keystore2.應用簽名檔案給檔案簽名jarsigner -verbose -keystore MyFirstApp.keystore -signedjar MyFirstApp_signed.apk MyFirstApp.apk MyFirstApp.keystore (特別注意:jdk7簽名後apk檔案無法正常安裝,需要在簽名程式 jarsigner 增加如下參數-digestalg SHA1 -sigalg MD5withRSA)二.參數詳解 1.keytool用法:-certreq [-v] [-protected] [-alias <別名>] [-sigalg <sigalg>] [-file <csr_file>] [-keypass <密鑰庫口令>] [-keystore <密鑰庫>] [-storepass <存放庫口令>] [-storetype <儲存類型>] [-providername <名稱>] [-providerclass <提供方類名稱> [-providerarg <參數>]] ... [-providerpath <路徑列表>] -changealias [-v] [-protected] -alias <別名> -destalias <目標別名> [-keypass <密鑰庫口令>] [-keystore <密鑰庫>] [-storepass <存放庫口令>] [-storetype <儲存類型>] [-providername <名稱>] [-providerclass <提供方類名稱> [-providerarg <參數>]] ... [-providerpath <路徑列表>] -delete [-v] [-protected] -alias <別名> [-keystore <密鑰庫>] [-storepass <存放庫口令>] [-storetype <儲存類型>] [-providername <名稱>] [-providerclass <提供方類名稱> [-providerarg <參數>]] ... [-providerpath <路徑列表>] -exportcert [-v] [-rfc] [-protected] [-alias <別名>] [-file <認證檔案>] [-keystore <密鑰庫>] [-storepass <存放庫口令>] [-storetype <儲存類型>] [-providername <名稱>] [-providerclass <提供方類名稱> [-providerarg <參數>]] ... [-providerpath <路徑列表>] -genkeypair [-v] [-protected] [-alias <別名>] [-keyalg <keyalg>] [-keysize <密鑰大小>] [-sigalg <sigalg>] [-dname <dname>] [-validity <valDays>] [-keypass <密鑰庫口令>] [-keystore <密鑰庫>] [-storepass <存放庫口令>] [-storetype <儲存類型>] [-providername <名稱>] [-providerclass <提供方類名稱> [-providerarg <參數>]] ... [-providerpath <路徑列表>] -genseckey [-v] [-protected] [-alias <別名>] [-keypass <密鑰庫口令>] [-keyalg <keyalg>] [-keysize <密鑰大小>] [-keystore <密鑰庫>] [-storepass <存放庫口令>] [-storetype <儲存類型>] [-providername <名稱>] [-providerclass <提供方類名稱> [-providerarg <參數>]] ... [-providerpath <路徑列表>] -help -importcert [-v] [-noprompt] [-trustcacerts] [-protected] [-alias <別名>] [-file <認證檔案>] [-keypass <密鑰庫口令>] [-keystore <密鑰庫>] [-storepass <存放庫口令>] [-storetype <儲存類型>] [-providername <名稱>] [-providerclass <提供方類名稱> [-providerarg <參數>]] ... [-providerpath <路徑列表>] -importkeystore [-v] [-srckeystore <源密鑰庫>] [-destkeystore <目標密鑰庫>] [-srcstoretype <源儲存類型>] [-deststoretype <目標儲存類型>] [-srcstorepass <源存放庫口令>] [-deststorepass <目標存放庫口令>] [-srcprotected] [-destprotected] [-srcprovidername <源提供方名稱>] [-destprovidername <目標提供方名稱>] [-srcalias <源別名> [-destalias <目標別名>] [-srckeypass <源密鑰庫口令>] [-destkeypass <目標密鑰庫口令>]] [-noprompt] [-providerclass <提供方類名稱> [-providerarg <參數>]] ... [-providerpath <路徑列表>] -keypasswd [-v] [-alias <別名>] [-keypass <舊密鑰庫口令>] [-new <新密鑰庫口令>] [-keystore <密鑰庫>] [-storepass <存放庫口令>] [-storetype <儲存類型>] [-providername <名稱>] [-providerclass <提供方類名稱> [-providerarg <參數>]] ... [-providerpath <路徑列表>] -list [-v | -rfc] [-protected] [-alias <別名>] [-keystore <密鑰庫>] [-storepass <存放庫口令>] [-storetype <儲存類型>] [-providername <名稱>] [-providerclass <提供方類名稱> [-providerarg <參數>]] ... [-providerpath <路徑列表>] -printcert [-v] [-file <認證檔案>] -storepasswd [-v] [-new <新存放庫口令>] [-keystore <密鑰庫>] [-storepass <存放庫口令>] [-storetype <儲存類型>] [-providername <名稱>] [-providerclass <提供方類名稱> [-providerarg <參數>]] ... [-providerpath <路徑列表> 2.jarsigner用法: [選項] jar 檔案別名 jarsigner -verify [選項] jar 檔案 [-keystore <url>] 密鑰庫位置 [-storepass <口令>] 用於密鑰庫完整性的口令 [-storetype <類型>] 密鑰庫類型 [-keypass <口令>] 專用密鑰的口令(如果不同) [-sigfile <檔案>] .SF/.DSA 檔案的名稱 [-signedjar <檔案>] 已簽名的 JAR 檔案的名稱 [-digestalg <演算法>] 摘要演算法的名稱 [-sigalg <演算法>] 簽名演算法的名稱 [-verify] 驗證已簽名的 JAR 檔案 [-verbose] 簽名/驗證時輸出詳細資料 [-certs] 輸出詳細資料和驗證時顯示認證 [-tsa <url>] 時間戳記機構的位置 [-tsacert <別名>] 時間戳記機構的公用密鑰認證 [-altsigner <類>] 替代的簽名機制的類名 [-altsignerpath <路徑列表>] 替代的簽名機制的位置 [-internalsf] 在簽名塊內包含 .SF 檔案 [-sectionsonly] 不計算整個清單的散列 [-protected] 密鑰庫已保護驗證路徑 [-providerName <名稱>] 提供者名稱 [-providerClass <類> Data Encryption Service提供者的名稱 [-providerArg <參數>]] ... 主類檔案和建構函式參數