Android Apk去簽名、重新簽名的方法

          時間:2024-07-21 19:54:36 簽名 我要投稿
          • 相關推薦

          Android Apk去簽名、重新簽名的方法

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

          Android Apk去簽名、重新簽名的方法

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

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

            1.去除簽名

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

            2.簽名

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

            jarsigner用法如下:

            用法: jarsigner [選項] jar-file 別名 jarsigner -verify [選項] jar-file [別名...][-keystore] 密鑰庫位置[-storepass <口令>] 用于密鑰庫完整性的口令[-storetype <類型>] 密鑰庫類型[-keypass <口令>] 私有密鑰的口令 (如果不同)[-certchain <文件>] 替代證書鏈文件的名稱[-sigfile <文件>] .SF/.DSA 文件的名稱[-signedjar <文件>] 已簽名的 JAR 文件的名稱[-digestalg <算法>] 摘要算法的名稱[-sigalg <算法>] 簽名算法的名稱[-verify] 驗證已簽名的 JAR 文件[-verbose[:suboptions]] 簽名/驗證時輸出詳細信息。 子選項可以是 all, grouped 或 summary[-certs] 輸出詳細信息和驗證時顯示證書[-tsa] 時間戳頒發機構的位置[-tsacert <別名>] 時間戳頒發機構的公共密鑰證書[-tsapolicyid] 時間戳頒發機構的 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。

          【Android Apk去簽名、重新簽名的方法】相關文章:

          表示心煩的心情簽名大去傷心句子08-27

          戰隊的個性簽名_簽名08-12

          經典簽名精選07-04

          郁悶的個性簽名,郁悶的簽名10-22

          早安個性簽名 早安的個性簽名06-23

          青春一去不復返個性簽名最新匯總11-10

          英文愛情個性簽名,關于英文的愛情個性簽名-個性簽名04-18

          悲情的簽名07-25

          經典情話簽名07-05

          心煩的簽名08-07

          国产精品好爽好紧好大_亚洲男人综合久久综合_欧美福利电影a在线播放www_国产精品99久久精品无码

                  亚洲国产性色在线 | 亚洲日本电影五月天 | 一区二区三区精品aⅴ专区 久久综合香蕉久久久久久久 | 亚洲综合在线香蕉 | 久久亚洲精精品中文字幕 | 最新精品国偷自产在线观看 |