1. 程式人生 > >APK反編譯、重打包、簽名之apktool實現

APK反編譯、重打包、簽名之apktool實現

1.下載apktool

https://download.csdn.net/download/qq_25844803/10842372
(點一下,爽一年,我是渣渣輝)

2.準備環境

將解壓出來的apktool.bat和apktool.jar放到同一個資料夾下(如:C:\apktool)
將需要反編譯的APK也放在該資料夾下
img2

3.進入CMD

開啟cmd,進入到apktool所在資料夾
img3

4.反編譯APK

反編譯命令:

apktool  d  TestPrint.APK

效果如圖所示:
img4-1
進入apktool所在的資料夾,可見多出一個資料夾TestPrint.APK.out,如圖所示
img4-2


至此,反編譯成功

5.修改檔案

根據需求修改TestPrint.APK.out資料夾裡的內容。
修改完畢後,為方便第6步重打包,將原來的TestPrint.APK刪除,
將TestPrint.APK.out資料夾重新命名為TestPrint。
img5

6.重新打包成為APK

重打包命令:

apktool  b  TestPrint

效果如圖所示:
img6-1
重打包完畢後,開啟TestPrint\dist資料夾,就可以看到新的APK
img6-2
為方便後續操作,將此APK複製貼上到apktool資料夾下
img6-3

7.生成keystore

Keystore生成命令:

keytool -genkey -
alias abc.keystore -keyalg RSA -validity 20000 -keystore abc.keystore

如果出現亂碼,如下圖。
img7-1
此時,可退出cmd,再重新進入cmd,定位到apktool資料夾,生成keysotre。
img7-2
接下來按照自己情況輸入相關資訊
img7-3
此時,apktool資料夾下就會看到一個abc.keystore檔案
img7-4

8.簽名

簽名命令:

jarsigner -verbose -keystore abc.keystore -signedjar TestPrint_1.apk TestPrint.APK abc.keystore

如果出現下圖所示的錯誤,請檢查環境變數中的JDK(or JAVA_HOME)是否配置正確
img8-1


正常情況,應該是以下情況,輸入之前填寫的密碼
img8-2
輸入正確後,開始簽名
img8-3
此時,簽名完畢,apktool資料夾下出現新的APK–>TestPrint_1.apk
img8-4
至此,apk反編譯,修改檔案,重打包,簽名全部完成。可以將此apk安裝到手機檢視結果。