[Android] 重新打包(替換)簽名APK
阿新 • • 發佈:2020-09-21
對於已經簽名好的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)驗證簽名: