1. 程式人生 > >Android 反編譯&回編譯

Android 反編譯&回編譯

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

)輸出資料夾名字. 預設是 apk.out

更多引數資訊可以執行下面命令檢視:

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.簽名

簽署應用Android Developer介紹

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到手機測試,執行沒有問題,此時就大功告成了