1. 程式人生 > 實用技巧 >[Android] 重新打包(替換)簽名APK

[Android] 重新打包(替換)簽名APK

對於已經簽名好的APK,我們可能因為修復問題、逆向等原因需要替換其中的so或者jar之類的部分,如果是本地測試替換so,倒是可以通過Root裝置來直接替換。但如果是Java部分或者非Root裝置就不能直接換了,要重新簽名打包一下APK。

下面記錄一下重新替換so再打包簽名的辦法:

(1)下載ApkTool工具,該工具用於解包、重新打包都非常好用

https://ibotpeaches.github.io/Apktool/install/

下載其中的apktool_x.x.x.jar就可以了。

(2)先解包:對已經簽名的APK執行如下命令

java  -jar  apktool的jar檔案  d(表示反編譯)  要解包的apk  -o(輸出)  輸出檔名

# 例如(預設會輸出同名資料夾到當前同級路徑):
java 
-jar apktool_2.3.4.jar d Auto_480_release.apk

(3)替換輸出資料夾中的內容,例如替換so檔案到資料夾內

(4)再打包:對剛才的輸出目錄重新打包為APK

# 針對上面輸出目錄重新打包,預設會輸出到dist子目錄(會有提示):
java -jar apktool_2.3.4.jar b Auto_480_release

(5)在輸出的dist目錄中可以看到重新打包好的APK,註釋是沒有簽名的,要重新籤一下名:

jarsigner -keystore 簽名檔案完整路徑 -signedjar 要輸出的簽名APK名 上一步打包好的APK路徑 簽名的別名

# 例如:
jarsigner 
-keystore /Users/kuliuheng/workspace/androidWorkspace/android.keystore -signedjar Auto_480_release_signed.apk Auto_480_release.apk testalias

(6)驗證簽名: