mac安裝apk反編譯
阿新 • • 發佈:2018-12-11
https://www.jianshu.com/p/8aeaad5e20f8
http://ren.yyland.com/android/2016/12/09/mac-apktool.html
1. apktool步驟
- 下載apktool,重新命名為
apktool.jar
- 建立
apktool
指令碼,參照這裡 - 建立
apktool
資料夾,將apktool.jar
和apktool
放進去 -
在終端配置,步驟如下:
//可使用:右擊Finder -> 前往資料夾 ->輸入/usr/sbin ->前往 ~ user:cd /usr/local/bin //如果不存在,可以執行 sudo mkdir bin ~ bin: cd Desktop/apktool/ //將apktool.jar 和apktool copy 到bin下 ~ apktool: sudo cp apktool.jar apktool /usr/local/bin ~ sudo apktool
~ apktool: ./apktool d test.apk
, 進入apktool資料夾下,進行反編譯- 此時
xml
檔案都已經反編譯成功
2. 檢視java原始碼
- 下載dex2jar,解壓
- 把
dex2jar
檔案放到apktool
資料夾下 - 把
apk
檔案解壓,可以直接解壓或者修改後綴.zip
再解壓,找到classes.dex
檔案,把它放進dex2jar
資料夾下 cd Destop/apktool/dex2jar
,進入dex2jar
資料夾下-
執行
sh dex2jar.sh classes.dex
,會生成一個classes_dexjar.jar
檔案 - 下載jd-gui,解壓
- 開啟
jd-gui
,將生成的classes_dex2jar.jar
在視窗下檢視
3. 編譯,簽名,打包
- 編譯
java -jar /usr/local/bin/apktool.jar b apk
- 重新打包
apktool b Destop/apktool/test
- 自動簽名
jarsigner -verbose -keystore new.keystore -signedjar newTest.apk test.apk new.keystore
; 簽名new.keystore
, 簽名後的apkNamenewTest.apk
test.apk
遇到的問題
-
sudo: apktool: command not found
$ apktool zsh: permission denied: apktool $ sudo apktool Password: sudo: apktool: command not found
官方有提示:
Note - Wrapper scripts are not needed, but helpful so you don’t have to type java -jar apktool.jar over and over.
./apktool d test.apk
-
d2j-dex2jar.sh: line 36: ./d2j_invoke.sh: Permission denied
sh d2j-dex2jar.sh classes.dex ./d2j-dex2jar.sh: line 36: ./d2j_invoke.sh: Permission denied
需要增加許可權
sudo chmod +x d2j_invoke.sh
apktool命令
- 反編譯APK命令
apktool d [-f] <file.apk> <dir>
- 編譯修改好的檔案
apktool b <dir>
- install -framework