apk簽名相關

最近寫自動化用例發現用之前的簽名文件重新簽名的包安裝的時候提示invalid apk,安裝不上,於是要了正式的keystore,但是發現正式的keystore在使用的時候有一系列的問題,比如修改keystore密碼,更改key和sha1等等,在網上找了一些資料,再次記錄一下。


轉載自: http://blog.csdn.net/u012049463/article/details/41822051

修改Android簽名證書keystore的密碼、別名alias以及別名密碼

之前在測試Eclipse ADT的Custom debug keystore自定義調試證書的時候,發過一篇關於調試證書規格的博文:Eclipse ADT的Custom debug keystore所需證書規格,提到過自定義調試證書的密碼和alias命名以及alias密碼都是有規矩的。其實Android應用開發接入各種SDK時會發現,有很多SDK是需要靠package name和keystore的指紋hash來識別的(百度地圖SDK、Facebook SDK等等…),這樣如果使用默認自動生成的debug keystore的話就會給開發調試工作帶來一些麻煩。這時可以通過修改正式的release keystore,生成一份“遵守規矩”的臨時自定義調試證書給開發時用,就方便多了,具體方法如下:

 

1. 首先當然是先複製一份正式證書出來作爲要修改爲的臨時調試證書。這裏我們這支的keystore 的密碼爲hahaha,alias爲silence,alias的密碼爲xixixi

2. 修改keystore密碼的命令(keytool爲JDK帶的命令行工具):

keytool -storepasswd -keystore my.keystore

其中,my.keystore是複製出來的證書文件,執行後會提示輸入證書的當前密碼(hahaha),和新密碼(android)以及重複新密碼(android)確認。這一步需要將密碼改爲android

3. 修改keystore的alias

keytool -changealias -keystore my.keystore -alias my_name -destalias androiddebugkey

這一步中,my_name是證書中當前的alias(silence),-destalias指定的是要修改爲的alias,這裏按規矩來,改爲androiddebugkey!這個命令會先後提示輸入keystore的密碼(android,已經在第二步中進行了修改)和當前alias的密碼(xixixi)。

4. 修改alias的密碼:

keytool -keypasswd -keystore my.keystore -alias androiddebugkey

這一步執行後會提示輸入keystore密碼(android),alias密碼(xixixi),然後提示輸入新的alias密碼(android),同樣,按規矩來,改爲android!

以上幾個操作執行後,my.keystore就是符合規矩的debug keystore了,接着在Eclipse的ADT設置中選中這個custom debug keystore即可,如下:

sdk-an5

同時還可以看到證書的MD5以及SHA1指紋。

PS:以上3步命令行並沒有先後順序。


key.alias= 別名

此別名一開始以爲可以隨便寫,後來多次嘗試發現亂寫打包一定不成功,此別名要與第一次生成簽名時的別名一至,由於簽名不是我申請的,申請簽名的同事也忘記了簽名的別名,如此只好找工具看一下簽名的信息了,其實工具不用找了,在jdk中有

直接keytool -list  -v -keystore xxxx.keystore -storepass 密碼  簽名的信息就有了



查看已有apk的簽名 sha1值:
查看三方應用或是系統應用簽名,把apk改成rar後綴,然後解壓出來,將其中META-INF下的ANDROID.RSA文件(有的不是,反正就是.RSA文件),通過命令   keytool -printcert -file META-INF/CERT.RSA查看,keytool 命令在jdk的bin目錄下,配置了jdk環境變量的可以直接輸入該命令,沒有配置的話就跳轉到jdk的bin目錄下再執行如下命令。如下:
C:\SoftwareInstallSpace\Java\jdk1.8.0_77\bin>keytool -printcert -file D:\ForComputer\chromDownload\JinfengAppV2p0\META-INF\ANDROID1.RSA


查看已有apk的版本信息:
使用aapt命令,該命令在android sdk的buildTools裏面.
D:\ForWork\tools\softInstallSpace\androidstudioSDK\build-tools\24.0.1>aapt dump
badging D:\ForWork\JG_c10n2.7_20170109.apk

轉載自: http://blog.csdn.net/andyddd/article/details/45307587

在使用第三方sdk時,例如百度地圖,需要使用簽名的sha1的值。這個值可以在eclipse->windows->preferences->Android->build裏看到。

但這個值和發佈key的sha1是不一樣的。其實可以通過設置custom keystore的方式,使debug.keystore和發佈的keystore的sha1值一樣。

方法是:

1. 拷貝一份你的發佈key

2. 修改這個key的別名爲:androiddebugkey

3. 修改這個key的storepasswd 和 keypasswd爲"android". (實際上debug.keystore這個默認生成的key的別名就是:"androiddebugkey",兩個口令是“android”)

在命令窗口執行的命令如下:

keytool -changealias -keystore mykeystore.keystore -alias [old alias] -destalias androiddebugkey 

keytool -keypasswd -keystore mykeystore.keystore -alias androiddebugkey 

keytool -storepasswd -keystore mykeystore.keystore


修改時,需要知道原來發布key的alias,可以通過以下命令查看alias:

keytool -list -v -keystore mykeystore.keystore


4. 設置eclipse->windows->preferences->android->build中的custom keystore爲你這個改完口令的key文件,設置完成後,可以看到,這個key的sha1值和發佈key的sha1值一樣。


5. 拷貝這個key到同事的機器上,並設置custom keystore爲這個key



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章