Android 反編譯&回編譯
阿新 • • 發佈:2018-11-01
1.下載ShakaApktool工具
1.從github上下載ShakaApktool GitHub
2.為了方便,已在csdn上傳資源ShakaApktool
2.刪除old框架
window環境:
進入目錄,C:\Users\使用者名稱\apktool\framework,會發現有個1.apk的檔案,將其刪除
3.開始反編譯
java -jar F:\study\Android\tools\ShakaApktool_3.0.0.jar d -df F:\study\Android\tools\test\app-debug.apk -o F:\study\Android\tools\test\app-debug
執行後將會反編譯到F:\study\Android\tools\test\app-debug目錄下
d -> 反編譯
-df -> (–default-framework)使用預設的框架資原始檔.
-o(–output
更多引數資訊可以執行下面命令檢視:
java -jar F:\study\Android\tools\ShakaApktool_3.0.0.jar
如下圖,沒有報錯則表示反編譯成功了
4.回編譯,將反編譯的內容重新打包生成apk包
java -jar F:\study\Android\tools\ShakaApktool_3.0.0.jar b F:\study\Android\tools\test\app-debug -o F:\study\Android\tools\test\brecom.apk
同樣,看到如下圖所示,表示回編譯成功
在F:\study\Android\tools\test\ 目錄下可以看到新生成的包brecom.apk
5.簽名
Pre:
apksigner,zipalign所在位置:D:\Android\sdk\build-tools\25.0.1
keytool位置:D:\Program Files\Java\jdk1.8.0_91\bin
1.驗證是否簽名
apksigner verify my-app-release.apk
2.生成簽名
keytool -genkey -v -keystore my-release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-alias
3.使用 zipalign 對齊未簽署的 APK
zipalign -v -p 4 my-app-unsigned.apk my-app-unsigned-aligned.apk
4.通過 apksigner 使用您的私鑰簽署 APK
apksigner sign --ks my-release-key.jks --out my-app-release.apk my-app-unsigned-aligned.apk
5.安裝my-app-release.apk到手機測試,執行沒有問題,此時就大功告成了