欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android Apk去掉簽名以及重新簽名的方法

 更新時間:2016年12月03日 09:44:43   作者:Pleiades  
這篇文章主要介紹了Android Apk去掉簽名以及重新簽名的方法的相關(guān)資料,Android開發(fā)中很重要的一部就是用自己的密鑰給Apk文件簽名,需要的朋友可以參考下

Android Apk去掉簽名以及重新簽名的方法

Android開發(fā)中很重要的一部就是用自己的密鑰給Apk文件簽名,不經(jīng)過簽名的Apk文件一般是無法安裝的,就算裝了最后也是失敗。

網(wǎng)上流傳的“勾選允許安裝未知來源的應(yīng)用”其實(shí)跟簽不簽名沒啥關(guān)系,說白了就是允許安裝不從電子市場上下載的應(yīng)用而已。

近幾日需要修改一個Apk中JNI調(diào)用的.so文件,苦于沒有apk源代碼,只好研究了一下簽名相關(guān)的問題。當(dāng)然有很多第三方工具可以做到,但其實(shí)JDK中已經(jīng)提供了強(qiáng)大的簽名工具jarsigner。

1.去除簽名

其實(shí)很簡單,用WinRAR打開apk,找到META-INF文件夾,刪除MANIFEST.MF之外的所有其他文件即可。

2.簽名

運(yùn)行jarsigner,如果沒有設(shè)置PATH環(huán)境變量,那可以從JDK安裝路徑下的bin目錄中找到,比如我本機(jī)的就是C:\Program Files\Java\jdk1.8.0_31\bin\jarsigner.exe

jarsigner用法如下:

用法: jarsigner [選項(xiàng)] jar-file 別名
    jarsigner -verify [選項(xiàng)] jar-file [別名...]

[-keystore <url>]      密鑰庫位置

[-storepass <口令>]     用于密鑰庫完整性的口令

[-storetype <類型>]     密鑰庫類型

[-keypass <口令>]      私有密鑰的口令 (如果不同)

[-certchain <文件>]     替代證書鏈文件的名稱

[-sigfile <文件>]      .SF/.DSA 文件的名稱

[-signedjar <文件>]     已簽名的 JAR 文件的名稱

[-digestalg <算法>]    摘要算法的名稱

[-sigalg <算法>]      簽名算法的名稱

[-verify]          驗(yàn)證已簽名的 JAR 文件

[-verbose[:suboptions]]   簽名/驗(yàn)證時輸出詳細(xì)信息。
              子選項(xiàng)可以是 all, grouped 或 summary

[-certs]          輸出詳細(xì)信息和驗(yàn)證時顯示證書

[-tsa <url>]        時間戳頒發(fā)機(jī)構(gòu)的位置

[-tsacert <別名>]      時間戳頒發(fā)機(jī)構(gòu)的公共密鑰證書

[-tsapolicyid <oid>]    時間戳頒發(fā)機(jī)構(gòu)的 TSAPolicyID

[-altsigner <類>]      替代的簽名機(jī)制的類名

[-altsignerpath <路徑列表>] 替代的簽名機(jī)制的位置

[-internalsf]        在簽名塊內(nèi)包含 .SF 文件

[-sectionsonly]       不計(jì)算整個清單的散列

[-protected]        密鑰庫具有受保護(hù)驗(yàn)證路徑

[-providerName <名稱>]   提供方名稱

[-providerClass <類>    加密服務(wù)提供方的名稱
 [-providerArg <參數(shù)>]]... 主類文件和構(gòu)造器參數(shù)

[-strict]          將警告視為錯誤

比較常用的參數(shù)就是指定keystore的位置和簽名后的文件,舉例如下:

jarsigner -keystore C:\myKey.key -signedjar apk-signed.apk apk-unsigned.apk myKey

待簽名的文件是apk-unsigned.apk,簽名后的apk是apk-signed.apk。我們也可以不指定-signedjar參數(shù),則在待簽名的apk上直接簽名。最后一個myKey是我的keystore的別名。

簽名完成后再用WinRAR打開,會發(fā)現(xiàn)META-INF目錄下多了MYKEY.RSA和MYKEY.SF兩個文件,他們分別是:

MANIFEST.MF中保存了所有其他文件的SHA-1并base64編碼后的值。
MYKEY.SF中也有其他文件的SHA-1并base64編碼的值,而且還多一個MANIFEST.MF文件的SHA-1并base64編碼后的值
MYKEY.RSA包含了公鑰信息和發(fā)布機(jī)構(gòu)信息

后兩個文件的名稱和我的key別名轉(zhuǎn)換為大寫后一致。

關(guān)于如何生成本機(jī)的keystore就不再贅述了,在AndroidStudio和Eclipse中都有相應(yīng)的工具,圖形界面,so easy。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

最新評論