ApkTool是一個非常使用的安卓apk逆向的工具,它可以將資源解碼為幾乎原始的形式,並在進行一些修改后重建它們,更好的幫我們在開發過程中去添加一些功能進行校驗或者分析應用程序等等。當然請不要用於盜版和其他非合法用途。(下面的流程都是基於Windows環境)
1.安裝
- 在ApkTool的首頁可以找到安裝文檔,下載對應平台的jar,然后按照教程一步步操作安裝即可。這里推薦windows平台將工具配置到環境變量中,更容易操作
2.解包
- 創建一個工作目錄,將我們需要解包的apk剪切到此處(這里我舉例apk為test.apk)。在此文件夾處打開cmd窗口,輸入
apktool d test.apk
,回車將在我們創建的工作目錄下解包產生一個test的文件夾,打開你可以發現有原始的Android工程目錄,就可以進行你的修改啦。
3.合包
- 使用命令
apktool b -o test1.apk test --use-aapt2
,這里為什么要指定使用appt2來構建是因為Android Gradle插件3.0.0及更高版本默認情況下會啟用 AAPT2去構建資源文件,而apktool內部默認的還是使用aapt,可能會導致構建apk失敗。(如果確認apk無aapt2構建可以無需添加use-aapt2指令)。執行完畢后,可以發現當前目錄下會產生test1.apk文件
4.重簽
使用Sdk內置的apksigner.bat腳本文件為我們的test1.apk進行重簽。首先我們需要有一個簽名證書(keystore),可以參考官方文檔生成簽名文件。然后輸入我們的重簽指令:
apksigner.bat絕對路徑 sign --v1-signing-enabled true --v2-signing-enabled true --ks keystore絕對路徑 --ks-key-alias 你設置的別名 --ks-pass pass:你設置的密碼 --in test1.apk
即可得到我們新的apk,開始我們的測試吧!