工具
abc-decompiler 鸿蒙方舟字节码反编译器
面向鸿蒙方舟字节码(.abc)的反编译工具;HarmonyOS 应用包中的 modules.abc 即为此格式。它通过改造 jadx 反编译器实现,并借助打过补丁的 abcde 库读取文件。由于方舟字节码有很大一部分与 DEX 字节码语义相近,它沿用了 jadx 的图形界面、中间表示和处理流程:把 .abc 文件拖入基于 jadx 的窗口即可查看反编译代码。README 称 282 条方舟字节码中可用的 227 条指令均已实现,其中大部分特殊指令以伪函数形式实现。
使用条件与局限
- README 称项目仍在开发中:用于改善代码可读性的反编译优化模块、定制中间表示以及数据流分析均列为尚未完成。唯一的发布版本 h1 于 2024-12-20 发布,只提供一个由所审阅 master 分支提交构建的 jadx-dev-all.jar,此后仓库再无推送。
- 构建需要 JDK 17+;须先将打过补丁的 abcde 分支发布到本地 Maven 仓库,并在 Gradle 文件中替换为实际版本号,再执行 ./gradlew dist。输入为用户自己 HarmonyOS HAP 包中的 modules.abc 文件。
- 该仓库是改造过的 jadx 代码库:jadx 原有的 DEX 输入、测试样本和继承来的 CI 文件仍保留,自身没有 GitHub Actions 工作流,因此未报告针对方舟字节码输出的测试。
- 沿用 jadx 的 Apache-2.0 许可;abcde 分支同样采用 Apache-2.0。本次未反编译任何文件。
关于此条目
- 类型
- 工具
- 类别
- Android 工具
- 关联
- 基础工具
- 目标
- 应用
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · ohos-decompiler/abc-decompiler · 修订 427c4cd
- README.md#L16-L28 GitHub · ohos-decompiler/abc-decompiler · 修订 427c4cd
- README.md#L38-L70 GitHub · ohos-decompiler/abc-decompiler · 修订 427c4cd
- jadx-core/src/main/java/jadx/core/dex/instructions/InsnDecoder.java GitHub · ohos-decompiler/abc-decompiler · 修订 427c4cd
- jadx-core/build.gradle.kts GitHub · ohos-decompiler/abc-decompiler · 修订 427c4cd
- LICENSE GitHub · ohos-decompiler/abc-decompiler · 修订 427c4cd
- https://github.com/ohos-decompiler/abc-decompiler/releases/tag/h1
- https://github.com/ohos-decompiler/abcde
- https://github.com/ohos-decompiler/abc-decompiler/issues/6