1. 程式人生 > >mac安裝apk反編譯

mac安裝apk反編譯

https://www.jianshu.com/p/8aeaad5e20f8

http://ren.yyland.com/android/2016/12/09/mac-apktool.html

1. apktool步驟

  1. 下載apktool,重新命名為apktool.jar
  2. 建立apktool指令碼,參照這裡
  3. 建立apktool資料夾,將apktool.jarapktool放進去
  4. 在終端配置,步驟如下:

     //可使用:右擊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
    
  5. ~ apktool: ./apktool d test.apk, 進入apktool資料夾下,進行反編譯
  6. 此時xml檔案都已經反編譯成功

2. 檢視java原始碼

  1. 下載dex2jar,解壓
  2. dex2jar檔案放到apktool資料夾下
  3. apk檔案解壓,可以直接解壓或者修改後綴.zip再解壓,找到classes.dex檔案,把它放進dex2jar資料夾下
  4. cd Destop/apktool/dex2jar,進入dex2jar資料夾下
  5. 執行sh dex2jar.sh classes.dex,會生成一個classes_dexjar.jar檔案

  6. 下載jd-gui,解壓
  7. 開啟jd-gui,將生成的classes_dex2jar.jar在視窗下檢視

3. 編譯,簽名,打包

  1. 編譯 java -jar /usr/local/bin/apktool.jar b apk
  2. 重新打包 apktool b Destop/apktool/test
  3. 自動簽名 jarsigner -verbose -keystore new.keystore -signedjar newTest.apk test.apk new.keystore; 簽名 new.keystore, 簽名後的apkName newTest.apk
    ,簽名前的apkName test.apk

遇到的問題

  1. 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

  2. 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命令

  1. 反編譯APK命令apktool d [-f] <file.apk> <dir>
  2. 編譯修改好的檔案 apktool b <dir>
  3. install -framework

文內導航