国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

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

2019-12-12 04:26:31
字體:
來源:轉載
供稿:網友

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

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

網上流傳的“勾選允許安裝未知來源的應用”其實跟簽不簽名沒啥關系,說白了就是允許安裝不從電子市場上下載的應用而已。

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

1.去除簽名

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

2.簽名

運行jarsigner,如果沒有設置PATH環境變量,那可以從JDK安裝路徑下的bin目錄中找到,比如我本機的就是C:/Program Files/Java/jdk1.8.0_31/bin/jarsigner.exe

jarsigner用法如下:

用法: jarsigner [選項] jar-file 別名    jarsigner -verify [選項] jar-file [別名...][-keystore <url>]      密鑰庫位置[-storepass <口令>]     用于密鑰庫完整性的口令[-storetype <類型>]     密鑰庫類型[-keypass <口令>]      私有密鑰的口令 (如果不同)[-certchain <文件>]     替代證書鏈文件的名稱[-sigfile <文件>]      .SF/.DSA 文件的名稱[-signedjar <文件>]     已簽名的 JAR 文件的名稱[-digestalg <算法>]    摘要算法的名稱[-sigalg <算法>]      簽名算法的名稱[-verify]          驗證已簽名的 JAR 文件[-verbose[:suboptions]]   簽名/驗證時輸出詳細信息。              子選項可以是 all, grouped 或 summary[-certs]          輸出詳細信息和驗證時顯示證書[-tsa <url>]        時間戳頒發機構的位置[-tsacert <別名>]      時間戳頒發機構的公共密鑰證書[-tsapolicyid <oid>]    時間戳頒發機構的 TSAPolicyID[-altsigner <類>]      替代的簽名機制的類名[-altsignerpath <路徑列表>] 替代的簽名機制的位置[-internalsf]        在簽名塊內包含 .SF 文件[-sectionsonly]       不計算整個清單的散列[-protected]        密鑰庫具有受保護驗證路徑[-providerName <名稱>]   提供方名稱[-providerClass <類>    加密服務提供方的名稱 [-providerArg <參數>]]... 主類文件和構造器參數[-strict]          將警告視為錯誤

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

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

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

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

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

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

關于如何生成本機的keystore就不再贅述了,在AndroidStudio和Eclipse中都有相應的工具,圖形界面,so easy。

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阿合奇县| 灵台县| 嘉荫县| 临洮县| 泗阳县| 江津市| 孟村| 通榆县| 淮南市| 西安市| 嫩江县| 永平县| 中超| 泾源县| 广灵县| 临江市| 南陵县| 大兴区| 象山县| 澜沧| 黔西县| 隆安县| 徐水县| 集安市| 内乡县| 高台县| 通城县| 青冈县| 鹿邑县| 共和县| 威宁| 延吉市| 邹平县| 宁远县| 香格里拉县| 百色市| 鸡西市| 柘城县| 安阳县| 湟源县| 类乌齐县|