MAC apktool

2016/12/09

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

文内导航