1.准备工具
(1)apktool的下载地址:https://bitbucket.org/iBotPeaches/apktool/downloads/
点击超链接下载最新版本
(2)apktool.bat:将下面的脚本复制到文本并保存,然后重命名为apktool.bat;
@echo off
setlocal
set BASENAME=apktool_
chcp 65001 2>nul >nul
rem Find the highest version .jar available in the same directory as the script
setlocal EnableDelayedExpansion
pushd "%~dp0"
if exist apktool.jar (
set BASENAME=apktool
goto skipversioned
)
set max=0
for /f "tokens=1* delims=-_.0" %%A in ('dir /b /a-d %BASENAME%*.jar') do if %%~B gtr !max! set max=%%~nB
:skipversioned
popd
setlocal DisableDelayedExpansion
rem Find out if the commandline is a parameterless .jar or directory, for fast unpack/repack
if "%~1"=="" goto load
if not "%~2"=="" goto load
set ATTR=%~a1
if "%ATTR:~0,1%"=="d" (
rem Directory, rebuild
set fastCommand=b
)
if "%ATTR:~0,1%"=="-" if "%~x1"==".apk" (
rem APK file, unpack
set fastCommand=d
)
:load
java -jar -Duser.language=en -Dfile.encoding=UTF8 "%~dp0%BASENAME%%max%.jar" %fastCommand% %*
rem Pause when ran non interactively
for /f "tokens=2" %%# in ("%cmdcmdline%") do if /i "%%#" equ "/c" pause
(3)dex2jar下载地址:https://sourceforge.net/projects/dex2jar/files/
(4)jd-gui下载地址:http://java-decompiler.github.io/
2.教程:https://ibotpeaches.github.io/Apktool/install/
3.编译过程
(1)把apktool_2.4.1.jar重命名为apktool.jar,解压dex2jar和jd-gui,把所有的工具放在同一个文件夹(任意路径,例如:D:/apkDecompile)
(2)打开命令窗口(win+R->cmd->enter),定位到apktool所在的文件夹
测试apktool
(3)使用 apktool 反编译 apk 得到图片资源、XML配置、语言资源等文件
java -jar apktool.jar d -f com.uustock.dayi.apk -o app
(4)将要反编译的APK后缀名改为.rar或者 .zip,并解压,得到其中的classes.dex文件(它就是java文件编译再通过dx工具打包而成的)
(5)将获取到的 classes.dex 放到之前解压出来的工具 dex2jar-2.0 文件夹内
(6)进入到 dex2jar-2.0 文件夹中打开命令行,执行命令 d2j-dex2jar classes.dex
反编译 classes.dex 得到 classes-dex2jar.jar 文件
(7)使用 jd-gui 工具将 class 文件反编译成 java 源代码
使用 jd-gui 打开 classes-dex2jar.jar 就可以看到源代码了