1.准備軟件
下載地址:
鏈接: https://pan.baidu.com/s/1PLUKrjNHio9EYDl9eCckXw 提取碼: rhvr
2.軟件用途
解壓下載的壓縮包, 有以上三個文件 baksmali-2.0.3.jar工具, 可將解壓縮后apk目錄下的classes.dex文件轉為smali文件, 后面對源碼的修改, 就是針對smali文件的修改 smali-2.0.3.jar工具, 可將smali文件重新轉為classes.dex文件, 用重新生成的dex文件替換之前解壓apk目錄下的dex文件, 這樣apk源碼的修改就成功了 sign_tool目錄下的signapk.jar是個簽名工具, 替換了dex文件的apk要重新簽名, 才能正常安裝到手機
3.解壓apk獲取classes.dex文件
apk文件可通過zip工具直接解壓, 或通過修改apk為壓縮文件類型在通過zip解壓工具解壓
解壓后的apk目錄下, 有classes.dex文件, apk源碼全部編譯到了該文件
4.修改smali類型源碼文件
但classes.dex文件是無法直接查看或修改的 我們需要將classes.dex文件轉為smali類型的文件, 才能修改查看源碼 步驟: 進入apk的解壓目錄下, 可以看到classes.dex 使用cmd命令轉化dex文件為smali文件: java -jar baksmali-2.0.3.jar -x classes.dex 執行完后會在當前目錄生成out目錄, 可以在該目錄找到與源碼對應的smali文件
可以使用文本編輯工具, 修改smali文件, 推薦使用Notepad++修改smali類型文件
5.重新打包
smali源碼文件修改完后, 需要重新打包回dex文件, 新的dex替換老的dex, 即可實現對apk的修改 在有out目錄的同級目錄下cmd命令: java -jar smali-2.0.3.jar -o classes.dex out 執行完后, 會生成新的classes.dex, 老的dex會被覆蓋 使用系統自帶的壓縮工具, 將新classes.dex替換到apk並保存實現源碼替換 最后重要的一步, 重新簽名apk文件 把替換好dex文件的apk復制到sign_tool目錄下 執行cmd命令: java -jar signapk.jar platform.x509.pem platform.pk8 test.apk newtest.apk 說明: test.apk是需要重新簽名的apk文件 newtest.apk是新簽名后的apk文件
至此, 大功告成, 完結撒花~