文章目录
- 一、前言
- 二、安装
- 三、执行
一、前言
apktool是一个能够解析和分析安卓应用文件(APK)的工具,帮助了解应用程序的内部结构和功能。
二、安装
window版本
下载地址:版本2.9.3,并将下载的 jar 重命名为apktool.jar
运行 Apktool 至少需要Java 8
制作启动脚本,右键单击,将如下代码另存为apktool.bat
@echo off
setlocal
set BASENAME=apktool_
chcp 65001 2>nul >nul
set java_exe=java.exe
if defined JAVA_HOME (
set "java_exe=%JAVA_HOME%\bin\java.exe"
)
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_exe%" -jar -Xmx1024M -Duser.language=en -Dfile.encoding=UTF8 -Djdk.util.zip.disableZip64ExtraFieldValidation=true -Djdk.nio.zipfs.allowDotZipEntry=true "%~dp0%BASENAME%%max%.jar" %fastCommand% %*
rem Pause when ran non interactively
for %%i in (%cmdcmdline%) do if /i "%%~i"=="/c" pause & exit /b
将apktool.jar
和移动apktool.bat
到您的 Windows 下的目录。
添加到环境变量PATH中
三、执行
最后通过控制台执行apktool命令
命令解析:
反编译 APK 文件
apktool d your_app.apk -f
这个命令会将 your_app.apk 文件反编译,生成一个包含应用程序资源和源代码的目录。
重新编译 APK 文件
apktool b your_app_folder -f
这个命令会将先前反编译的应用程序目录重新编译成一个新的 APK 文件。
指定输出目录:
apktool d your_app.apk -o output_folder
使用 -o 参数可以指定反编译后的输出目录。
反编译并指定输出APK文件名:
apktool d your_app.apk -o output_folder -f -r -p your_custom_framework
使用 -f 强制覆盖现有目录,-r 重新建立资源文件,-p 指定一个自定义的框架文件夹,以及 -o 指定输出目录。
查看 APK 文件信息:
apktool if your_app.apk
这个命令会列出 APK 文件的基本信息,包括包名、版本等。