android 配置鼠标右键快捷对apk进行反编译

1、配置apktool环境变量

要进行对apk 反编译,那就得要先下载apktool.jar以及apktool.bat,然后把它配置在系统环境变量里面
apktool.jar下载地址

由于我这边下载不了apktool.bat软件,于是就用sublime文本编辑器进行生成一个apktool.bat,当然也可以用记事本等,只需要把下面代码贴进记事本,保存为apktool.bat即可,这边下载的是apktool.2.8.0的版本,然后将两者放置在同一文件目录下

bash 复制代码
@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 -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

前期工作准备好之后,下一步就是进行环境变量的配置,右键此电脑->高级系统设置->高级->环境变量->系统变量->新建,把你刚刚的apktool.jar及apktool.bat同一个路径复制进去,类似酱紫:

apktool2.8.0只是文件夹的命名,然后打开cmd,直接输入apktool,如果得到下图所示,那恭喜你,你的环境变量已经设置完成

2、编写反编译脚本apk_decompiled.bat

对于脚本内容就不做过多描述了,这里只是简单的对apk进行反编译,并把反编译之后的目录输出设置为跟源Apk同级,方便后续操作,有需要的可以自行扩展下功能

bash 复制代码
@echo off
:: 反编译 APK 文件的批处理脚本

:: 检查是否传入了文件路径参数
if "%~1"=="" (
    echo 错误: 请提供 APK 文件路径!
    echo 使用示例: decompile_apk.bat C:\path\to\your.apk
    exit /b
)

:: 获取 APK 文件路径和文件名
set APK_PATH=%~1
set APK_NAME=%~nx1
set DIR=%~dp1

:: 设置输出目录为 APK 文件路径去除 .apk 后缀的目录
set OUT_DIR=%DIR%%~n1

:: 检查 APK 文件是否存在
if not exist "%APK_PATH%" (
    echo 错误: 文件 "%APK_PATH%" 不存在!
    exit /b
)

:: 检查 apktool 是否可用
where apktool >nul 2>nul
if %ERRORLEVEL% neq 0 (
    echo 错误: 找不到 apktool,请确保 apktool 已安装并添加到系统的环境变量中!
    exit /b
)

:: 检查输出目录是否存在,如果存在则删除
if exist "%OUT_DIR%" (
    echo 目标目录 "%OUT_DIR%" 已经存在,正在删除目录...
    rmdir /s /q "%OUT_DIR%"
)

:: 创建输出目录
mkdir "%OUT_DIR%"

:: 使用 apktool 反编译 APK 文件,添加 -f 参数以强制覆盖已存在的目标目录
echo 正在反编译 "%APK_NAME%" 到目录 "%OUT_DIR%" ...
apktool d "%APK_PATH%" -o "%OUT_DIR%" --only-main-classes -f
if %ERRORLEVEL%==0 (
    echo 反编译成功,文件已保存到:%OUT_DIR%
) else (
    echo 错误: 反编译失败,请检查 APK 文件是否有效。
)

pause

3、设置鼠标右键进行反编译

按下"Win + R"快捷键,然后在弹出的运行窗口中输入"regedit",先打开注册表,找到计算机\HKEY_CLASSES_ROOT*\shell路径

直接右键新建项,新建command项,如下图所示

最后在command的基础上,双击key,修改其值,把批处理的脚本文件bat的路径贴上去

最后确定,就能达成目的啦,右键apk就能快速的对apk进行反编译,再也不用打开cmd输出java -jar xxx 进行手动反编译了~

相关推荐
每次的天空41 分钟前
Kotlin 内联函数深度解析:从源码到实践优化
android·开发语言·kotlin
练习本1 小时前
Android MVC架构的现代化改造:构建清晰单向数据流
android·架构·mvc
早上好啊! 树哥1 小时前
android studio开发:设置屏幕朝向为竖屏,强制应用的包体始终以竖屏(纵向)展示
android·ide·android studio
YY_pdd2 小时前
使用go开发安卓程序
android·golang
Android 小码峰啊4 小时前
Android Compose 框架物理动画之捕捉动画深入剖析(29)
android·spring
bubiyoushang8884 小时前
深入探索Laravel框架中的Blade模板引擎
android·android studio·laravel
cyy2984 小时前
android 记录应用内存
android·linux·运维
CYRUS STUDIO4 小时前
adb 实用命令汇总
android·adb·命令模式·工具
这儿有一堆花5 小时前
安卓应用卡顿、性能低下的背后原因
android·安卓
byte轻骑兵5 小时前
【Bluedroid】蓝牙HID DEVICE断开连接流程源码分析
android·c++·蓝牙·hid·bluedroid