① android開發 怎麼給apk文件用已有的簽名文件進行簽名,不用eclipse
給apk文件簽名主要分三步:
1、創建證書
2、簽名
3、優化(可選)
1)使用jdk的keytool工具生成簽名用的證書> keytool -genkey -v -alias CERT -keyalg RSA -keysize 2048 -validity 10000 -keystoreCERT.keystore 創建過程需要輸入一些標識信息和密碼,一些重要的參數值說明如下(根據自己的需要要進行相應的修改): CERT.keystore ---- 證書保存的文件名 CERT ---- 證書的別名 10000 ---- 10000天的有效期 2048 ---- 默認為1024 bits,Android 建議使用2048 bits或更高其他的詳細信息可以使用keytool -help查看幫助 證書生成後使用如下命令可以查看證書的信息:> keytool -list -alias CERT -keystore CERT.keystore
2)使用jdk的jarsigner工具對apk文件簽名> jarsigner -verbose -keystore CERT.keystore to_sign.apk CERT 簽名過程需要輸入證書的密碼,一些重要的參數值說明如下(根據自己的需要要進行相應的修改): CERT.keystore ---- 證書保存的文件名 CERT ---- 證書的別名 待簽名的apk文件根根目錄下如果有文件夾「META-INFO」,請先刪除(重新簽名就需要這樣做)。如果不想創建過程輸出太多信息,可以刪除「-verbose」 。上述簽名會直接覆蓋原來的文件,如果不想被覆蓋而簽名為另外的新文件 signed.akp,只需將 to_sign.apk 改為 -signedjar to_sign.apk signed.akp 即可。簽名後可以使用如下命令驗證是否簽名成功: > jarsigner -verify to_sign.apk 如果需要查看更詳細的驗證信息,可修改為:> jarsigner -certs -verbose -verify to_sign.apk
3)使用android sdk的zipalign工具優化已簽名的apk文件> zipalign -v 4 unaligned.apk aligned.apk 注意要在簽名後再zipalign。這個工具不是jdk自帶的,而是在%ANDROID_HOME%\tools\zipalign.exe。
② 如何將android應用生成簽名
1.簽名的步驟
a.創建key
b.使用步驟a中產生的key對apk簽名
2.具體操作
方法一: 命令行下對apk簽名(原理)
創建key,需要用到keytool.exe (位於jdk1.6.0_24jrein目錄下),使用產生的key對apk簽名用到的是jarsigner.exe (位於jdk1.6.0_24in目錄下),把上兩個軟體所在的目錄添加到環境變數path後,打開cmd輸入
D:>keytool -genkey -alias demo.keystore -keyalg RSA -validity 40000 -keystore demo.keystore
/*說明:-genkey 產生密鑰
-alias demo.keystore 別名 demo.keystore
-validity 40000 有效期限4000天
-keystore demo.keystore */
D:>jarsigner -verbose -keystore demo.keystore -signedjar demo_signed.apk demo.apk demo.keystore
/*說明:-verbose 輸出簽名的詳細信息
-keystore demo.keystore 密鑰庫位置
-signedjar demor_signed.apk demo.apk demo.keystore 正式簽名,三個參數中依次為簽名後產生的文件demo_signed,要簽名的文件demo.apk和密鑰庫demo.keystore.*/
注意事項:android工程的bin目錄下的demo.apk默認是已經使用debug用戶簽名的,所以不能使用上述步驟對此文件再次簽名。正確步驟應該是:在工程點擊右鍵->Anroid Tools-Export Unsigned Application Package導出的apk採用上述步驟簽名。
方法二:使用Eclipse導出帶簽名的apk
Eclipse直接能導出帶簽名的最終apk,非常方便,推薦使用,步驟如下:
第一步:導出。
第二步:創建密鑰庫keystore,輸入密鑰庫導出位置和密碼,記住密碼,下次Use existing keystore會用到。
第三步:填寫密鑰庫信息,填寫一些apk文件的密碼,使用期限和組織單位的信息。
第四步:生成帶簽名的apk文件,到此就結束了。
第五步:如果下次發布版本的時候,使用前面生成的keystore再簽名。
第六步:Next,Next,結束!
方法三:使用IntelliJ IDEA導出帶簽名的apk
方法步驟基本和Eclipse相同,大概操作路徑是:菜單Tools->Andrdoid->Export signed apk。
③ android中怎樣將自己的應用程序的簽名改為系統簽名一樣
不管是模擬器還是真實手機。因此,在設備或者是模擬器上運行調試程序之前,必須為應用程序設置數字簽名。 所有的程序都必須簽名,沒有被簽名的程序,系統將不能安裝。 可使用自簽署證書簽署應用程序,無須授權憑證。系統僅僅會在安裝的時候測試簽名證書的有效期,如果應用程序的簽名是在安裝之後才到期,那麼應用程序仍然可以正常啟用。可以使用標准工具-Keytool and Jarsigner-生成密鑰,來簽名應用程序的.apk文件。 Android SDK 工具可以在調試時給應用程序簽名。ADT插件和Ant編譯工具都提供了兩種簽名模式-debug模式和release模式 debug模式下,編譯工具使用JDK中的通用程序Keytool通過已知方法和密碼創建秘鎖和密鑰。每次編譯的時候,工具使用debug密鑰簽名應用程序的.apk文件。因為密碼是已知的,工具 不需要在每次編譯的時候提示輸入密鎖和密鑰。 當應用程序調試完畢准備要發布release版本時,可以在release模式下編譯。release模式下,編譯工具不會將.apk文件簽名。需要自己用Keytool生成密鑰和密鎖,再用JDK中的Jarsigner工具給.apk文件簽名。簽名基本設置 首先設置JAVA_HOME環境變數,告訴SDK如何找到Keytool,或者可以在Windows 系統環境變數PATH變數中添加Keytool的JDK路徑。 在發布release版本時,從Package面版上按選中你的project,按滑鼠右鍵,依次選擇Android Tools、Export Application Package。或者可以點擊Manifest Editor,overview 頁面上的「Exporting the unsigned .apk」連接 ,導出未簽名apk文件。保存.apk文件後,用Jarsigner及自己的密鑰給apk文件簽名,如果沒有密鑰, 可以用Keystore創建密鑰和密鎖。如果已經有一個密鑰了,如公共密鑰,就可以給.apk文件簽名了。 也可以把上面這個完整的步驟寫成一個bat文件,這樣需要簽名的時候只要運行這個bat就可以了。下面給出一個完整的bat文件示例: @Rem android簽名程序 //注釋指令 @Rem echo是顯示指令 格式:echo [{onoff}] [message] @echo ********************************************************** @Rem 文件是否存在命令格式:if exist 路徑+文件名 命令 @if exist d:sign/MyFirstApp.keystore goto sign @echo 創建簽名文件MyFirstApp.keystore @Rem keytool命令格式:-genkey產生簽名 -alias別名 -keyalg加密演算法 -validity有效天數 -keystore生產簽名文件名稱keytool -genkey -alias MyFirstApp.keystore -keyalg RSA -validity 40000 -keystore MyFirstApp.keystore @echo 開始簽名: @Rem jarsigner命令格式:-verbose輸出詳細信息 -keystore密鑰庫位置 -signedjar要生成的文件 要簽名的文件 密鑰庫文件 jarsigner -verbose -keystore MyFirstApp.keystore -signedjar MyFirstApp_signed.apk MyFirstApp.apk MyFirstApp.keystore @goto over :sign @echo 開始簽名:jarsigner -verbose -keystore MyFirstApp.keystore -signedjar MyFirstApp_signed.apk MyFirstApp.apk MyFirstApp.keystore :over @echo ********************MyFirstApp.apk 簽名完成*********************** pause 以上是一個給應用簽名的完整bat文件,在運行這個bat文件時,還需要按照屏幕提示的步驟輸入一些必要信息,最後生成一個簽名後的文件是:MyFirstApp_signed.apk。