系統mac
編譯器eclipse
工具首先下載下傳安裝 apktool和 jadx
在沒有代碼混淆的情況下
反編譯步驟:
1:通過apktool得到res
将xx.apk複制到apktool同級目錄下
執行./apktool d xx.apk
得到同名檔案夾
2:通過jadx得到src源碼
通過jadx-gui 輕按兩下得到源檔案
3:建立android項目工程
4:将建立的項目裡面res替換為第一步中得到的res
5:将建立項目中manifest替換為第一步中得到的manifest
6:将建立項目中src替換為第二部中得到的java源檔案
7:導入依賴包 删除重複檔案
這樣一個apk就通過反編譯 合成了一個新的應用
遇到的錯誤:
07-30 11:49:25.882: D/AndroidRuntime(1410): Shutting down VM
07-30 11:49:25.990: E/AndroidRuntime(1410): FATAL EXCEPTION: main
07-30 11:49:25.990: E/AndroidRuntime(1410): Process: com.brosmike.airpushdetector, PID: 1410
07-30 11:49:25.990: E/AndroidRuntime(1410): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.brosmike.airpushdetector/com.brosmike.airpushdetector.DetectorActivity}: java.lang.ClassNotFoundException: Didn't find class "xxxxxxxx" on path: DexPathList[[zip file "/data/app/XXXXXX-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
07-30 11:49:25.990: E/AndroidRuntime(1410): Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
錯誤解決請參考:點選打開連結
我遇到這個問題的原因是因為我的support-v4-jar引入出現錯誤,我一開始放到/bin目錄下
後來改放倒/libs目錄下就好了