Apktool是一款功能强大是apk反编译工具,能够精准拆解APK内部的加密二进制文件,将编译后的资源近乎还原为原始可读形态。通过简单的命令行指令,即可一键完成全流程反编译,完整解析AndroidManifest清单文件、布局代码、字符串资源以及原生库文件,同时将Dex字节码精准转为Smali汇编代码,完整保留应用原有的代码逻辑与运行机制。
除资源拆解与代码分析外,Apktool反编译工具也支持APK二次编辑操作,用户可在拆解后的项目文件中修改图标、编辑代码、调整资源,修改完成后可重新打包生成APK安装包。
1、拆卸
Apktool 可以帮助将资源反汇编成接近原始的形式。
2、集合
想要翻译应用程序吗?更改权限?Apktool 可以帮助您做到这一点。
3、分析
对重建不感兴趣?只需附加-m到任何反汇编命令即可。Apktool 将尽力分解资源和清单以便于检查。
一、Windows
1、将两个文件 ( apktool.jar& apktool.bat) 移动到您的 Windows 目录(通常C://Windows)。
2、如果您无权访问C://Windows,您可以将这两个文件放置在任何位置,然后将该目录添加到您的环境变量系统 PATH 变量中。
3、尝试通过命令提示符运行。
二、Linux
1、将两个文件 ( apktool.jar& apktool) 移动到/usr/local/bin(需要 root)。
2、确保这两个文件都是可执行的 ( chmod +x)。
3、尝试通过cli运行。
三、Mac
1、将两个文件 ( apktool.jar& apktool) 移动到/usr/local/bin(需要 root)。
2、确保这两个文件都是可执行的 ( chmod +x)。
3、尝试通过cli运行。
Q1、生成的 apk 文件为什么比原始文件小很多?
A:发生这种情况的原因有:
Apktool 构建未签名的 apk。这意味着目录和文件META-INF丢失。
更新的构建过程 - Apktool 将使用现代版本的 aapt/aapt2,这可能会减少文件大小。
Q2、META-INF生成的 apk 中没有目录?
A:META-INF包含 apk 签名。修改 APK 后,它不再被签名。您可以用来-c / --copy-original保留这些签名。但是,-c将使用原始版本AndroidManifest.xml ,并且只能使用原始 apk 签名 v1 方案。
Q3、什么是“魔法 APK” ?
A:有些 APK 是使用针对特定 OEM 的修改后的构建工具构建的。这些 APK 不是使用常规 AOSP 工具构建的,并且与 Apktool 不兼容。Apktool 将无法解码或构建这些 APK。
Q4、我能把Apktool集成到我自己的项目里吗?我能修改它吗?
A:是的,你可以在未经许可的情况下重新分发和/或修改 Apktool。
Q5、Apktool 的框架文件存放在哪里?
A:
※Windows:$HOME/AppData/Local/apktool
※MAC:$HOME/Library/apktool
※Linux:$HOME/.local/share/apktool
1、解码选项(apktool d file.apk {options})
※-a, --all-src
拆解所有 dex 文件,包括未知文件。包含不在根节点的 dex 文件(classes*.dex)。
※-f, --force
强制删除目的地目录。
※--ignore-raw-values
忽略XML资源文件中的原始属性值。默认情况下,如果原始值被保留,则会按原样处理。
※-j, --jobs
设置在并行操作可用时使用的线程数量。默认可用处理器数量,最多8个。
※-l, --lib
用来指定动态库位置。
例如:【--lib com.google.android.test.shared_library:/tmp/shared_library.apk】,它可以多次调用以添加多个库。
※--match-original
尽可能匹配生成的文件与原始文件
※--no-assets
防止解码/复制未知资产文件。
※-o, --output
设置输出目录的名称,默认值为:apk.out。
※--only-manifest
只在没有资源的情况下解码。
2、构建选项(apktool b 文件夹 {options})
※--aapt
从指定位置加载 aapt2 二进制文件。这些是用来代替内部版本的。
※--copy-original
复制原始和。
※-f, --force
在构建过程中会覆盖已有文件。包含资源和资料来源。
※--net-sec-conf
在apk中添加一个通用的网络安全配置文件。
※--no-apk
禁用将构建文件重新打包成新apk的功能。
※--no-crunch
在构建过程中禁用处理资源文件(这阻止了 aapt/aapt2 自动进行位图优化)。
※-o, --output
设置输出apk的名称。默认值为:dist/{apkname}.apk。
v3.0.2版本
1、验证类型名称以防止任意文件写入。
2、修复不兼容物品格式的验证格式。
3、添加基础/配置APK作为分拆解码库加载。
4、增加解码后返回的功能。
5、用下划线重命名输出jar以匹配辅助脚本。
6、通过缓冲流提升拆解性能。
7、提升带缓冲流的文件反汇编性能。
8、提升 ResPackage 行为中查找的性能。
9、内化缓冲以标准化冲洗行为并提升性能。
10、升级内部的 aapt2 二进制文件以减少对 Meta 资源编码的限制。
展开内容
9.0/8.98M
NeoProgrammer是一款用于CH341A SPI编程器的专业芯片烧录与读写工具,主要用于Flash存储芯片的数据读取、写入与擦除操作。该软件支持24/25系列SPI Flash芯片,兼容部分大容量存储器设备,可用于路由器、电视盒子、机顶盒、显示设备及其他嵌入式存储芯
查看
8.5/198.43M
KeiluVision4中文版是一款单片机开发工具,我想对于单片机开发的技术人员和爱好者肯定不会对这款程序陌生的吧。作为单片机开发最为权威的一款程序之一,keil uvision自然而然有着其吸引人的独特魅力。
9.3/182.08M
对于开发软件的程序员而言微软的VB肯定不会陌生吧,但小编本次为大家带来的这款软件与VB类似,但在数据库方面的特长相较于VB尤为突出,该软件就就是delphi7,delphi7在delphi系列当中是比较经典的版本,它不仅是一个集成应用程序开发环境,而且软件的核心是由传统Pasca
查看
10.0/1.38G
IntelliJ IDEA 2026是一款面向专业开发的IDE编程软件。功能上,IDEA2026以开放的AI生态平台为核心,支持通过ACP注册表一键集成Codex、Cursor、GitHub Copilot等多种AI智能体,并允许这些智能体直接查询和修改数据库;同时新增的G
查看
8.3/3.05G
Mixly3.0编程软件是由北京师范大学米思齐团队开发的一款免费开源的图形化Arduino编程工具,基于Google的Blockly框架设计。它允许用户无需编写代码,直接通过拖拽模块的方式完成Arduino程序开发,极大降低了学习门槛,非常适合青少年和编程初学者使用。
7.7/3.13G
IAR for ARM全称IAR Embedded Workbench for ARM,它是一款由瑞典的IAR Systems公司推出的专为微处理器开发的集成开发环境,这个开发环境支持ARM,AVR,MSP430等多种芯片内核平台,是微处理器开发领域非常著名的产品。
查看