突然想起它: [[noteOfjava]]
三板斧 - apktool#
java -jar apktool.jar d -f -o outputDir yourApp.apk
// 或
./apktool d -f -o outputDir yourApp.apk文件目录说明:
| 目录/文件名 | 用途 | 内容 |
|---|---|---|
| original | 保存 Apktool 无法直接处理的原始文件 | AndroidManifest.xml 和签名信息目录 META-INF |
| res | 包含应用程序的资源文件 | drawable (图片资源), layout (布局文件), values (字符串等), menu (菜单定义), xml (其他 XML 资源) |
| smali | 包含反编译后的字节码文件 | .smali 文件,每个对应一个 Java 类的方法 |
| assets | 存放原始文件资源,不经编译处理 | 音频、视频、HTML、字体等文件 |
| lib | 存放 native 库(.so 文件) | 不同平台架构的 .so 文件 |
| AndroidManifest.xml | 应用的清单文件,定义应用名称、包名、版本、权限等 | XML 格式的配置信息 |
| apktool.yml | Apktool 的配置文件,存储解码和重建参数 | 框架版本、资源位置、编码设置等 |
| 注意事项: |
- 修改资源或代码后,使用 Apktool 重新打包 APK。
确保遵守法律法规和使用协议。
Smali 是一种用于 Android 应用程序的DEX(Dalvik Executable)文件的汇编语言。它是DEX代码的反汇编表示,类似于Java的字节码。Smali 语法具有特定的结构和规则,以下是一些基本概念和语法: