android簽名工具-九游会j9娱乐平台
a. 如何對android的app進行簽名
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。
b. 怎麼給android應用程序簽名
1、准備工作
apk的簽名工作可以通過兩種方式來完成:
1)通過adt提供的圖形化界面完成apk簽名;
2)完全通過dos命令來完成apk簽名
我比較喜歡第2)種方式,所以下面將講解如何通過命令的方式完成apk簽名。
給apk簽名一共要用到3個工具,或者說3個命令,分別是:keytool、jarsigner和zipalign,下面是對這3個工具的簡單介紹:
1)keytool:生成數字證書,即密鑰,也就是上面說到的擴展名為.keystore的那類文件;
2)jarsigner:使用數字證書給apk文件簽名;
3)zipalign:對簽名後的apk進行優化,提高與android系統交互的效率(android sdk1.6版本開始包含此工具)
從這3個工具的作用也可以看出,這3個工具的使用順序。通常我們自己所開發的所有應用程序,都是使用同樣的簽名,即使用同一個數字證書,這就意味著:如果你是第一次做android應用程序簽名,上面的3個工具都將用到;但如果你已經有數字證書了,以後再給其它apk簽名時,只需要用到jarsigner和zipalign就可以完成。
為了方便使用上面3個命令,首先需要將上面3個工具所在路徑添加到環境變數path中(我說的是為了方便使用,沒有說必須要這么做)。怎麼配置環境變數就不在此講解了,這里需要說一下這3個工具默認所在的路徑:
1)keytool:該工具位於jdk安裝路徑的bin目錄下;
2)jarsigner:該工具位於jdk安裝路徑的bin目錄下;
3)zipalign:該工具位於android-sdk-windows/tools/目錄下
不知道大家是否注意到keytool和jarsigner兩個工具是jdk自帶的,也就意味著生成數字證書和文件簽名不是android的專利;另外從字面上理解jarsigner也能猜得出該工具主要是用來給jar文件簽名的。
2、生成未經簽名的apk文件
既然我們要自己對apk進行簽名,就不再需要adt默認幫我們簽名了。如何得到一個未經簽名的apk文件呢?打開eclipse,在android工程名稱上點擊右鍵,依次選擇「android tools」 - 「export unsigned application package ...」,然後選擇一個存儲位置保存即可。這樣就得到了一個未經簽名的apk文件。
3、使用keytool工具生成數字證書
keytool -genkey -v -keystore liufeng.keystore -alias liufeng.keystore -keyalg rsa -validity 20000
說明:
1)keytool是工具名稱,-genkey意味著執行的是生成數字證書操作,-v表示將生成證書的詳細信息列印出來,顯示在dos窗口中;
2)-keystore liufeng.keystore 表示生成的數字證書的文件名為「liufeng.keystore」;
3)-alias liufeng.keystore 表示證書的別名為「liufeng.keystore」,當然可以不和上面的文件名一樣;
4)-keyalg rsa 表示生成密鑰文件所採用的演算法為rsa;
5)-validity 20000 表示該數字證書的有效期為20000天,意味著20000天之後該證書將失效
c. android系統簽名
有時候,我們開發的apk需要用到系統許可權,需要在androidmanifest.xml中添加共享系統進程屬性:
這時候apk的簽名就需要是系統簽名(platform、shared或media)才能正常使用。
常用系統簽名方式
這種方式比較麻煩,你需要有編譯過的源碼環境,並按如下步驟:
1、拷貝app源碼到android源碼的packages/apps/目錄下,且app源碼是普通(eclipse)格式的
2、配置android.mk,在其中添加
3、使用mm編譯app,生成的apk即系統簽名
這種方式比在源碼環境下簽名簡單,app可以在eclipse或android studio下編譯,然後給apk重新簽名即可。
但這種方式在頻繁調試的時候比較痛苦,即使寫成腳本,也需要重復一樣的操作。
相關文件
platform.x509.pem、platform.pk8、signapk.jar
文件位置
platform.x509.pem、platform.pk8:
signapk.jar:
signapk源碼路徑:
簽名命令
步驟
1、將相關文件及源apk文件置於同一路徑下
2、檢查源apk包,去掉meta-inf/cert.sf 和 meta-inf/cert.rsa 文件
3、執行簽名命令即可
讓android studio集成系統簽名,需要用到一個工具 keytool-importkeypair ,詳見下文。
這個工具的作用是將系統簽名的相關信息導入到已有的簽名文件里。
工具的使用方法可以通過–help或readme.textile來尋求幫助
platform.x509.pem、platform.pk8、keytool-importkeypair、demo.jks、signature.sh
我的做法是在app根目錄新建signature文件夾專門存放簽名相關文件。
步驟
1、生成demo.jks簽名文件
2、編寫簽名腳本signature.sh,內容如下:
為腳本文件添加可執行許可權:
執行腳本:
3、配置builde.gradle
在android區域下(與defaultconfig同級)添加配置:
這樣debug或release apk就帶有系統簽名了。
如果想直接run app就是release版且帶系統簽名的apk,還需修改:
這樣直接run app就是帶系統簽名的release版apk了。
d. 如何將android的app簽名加入app文件中
你好!
需要使用到安卓的簽名工具,
使用的一個例子:
1、使用es編輯器或者類似的工具將qq2011的apk打開;
2、訪問res文件夾,在找到raw文件夾打開;
3、替換其中的msg信息提示音文件,如替換成悅耳的鳥鳴;
4、打開meta-inf文件夾,將其中的manifest.mf保留,其他文件全部刪除;
5、運行這款軟體,點擊「輸入」按鈕,選擇剛才修改過的文件;
6、在已簽名輸出框填寫希望的名字;
7、「簽名文件」後即可安裝自己修改過的qq啦,注意,必須先卸載原版,否則可能安裝失敗。
謝謝!