{
  "added_at": "2026-11-03",
  "additional_evidence_urls": [
    "https://github.com/jd-opensource/arkdecompiler/blob/8afb36903127b56edee362ce67aacd823610d3e4/xabc.cpp",
    "https://github.com/jd-opensource/arkdecompiler/blob/8afb36903127b56edee362ce67aacd823610d3e4/scripts/prepare.sh",
    "https://github.com/jd-opensource/arkdecompiler/tree/8afb36903127b56edee362ce67aacd823610d3e4/patches",
    "https://github.com/jd-opensource/arkdecompiler/blob/8afb36903127b56edee362ce67aacd823610d3e4/docker/Dockerfile",
    "https://github.com/jd-opensource/arkdecompiler/blob/8afb36903127b56edee362ce67aacd823610d3e4/build.sh",
    "https://github.com/jd-opensource/arkdecompiler/tree/8afb36903127b56edee362ce67aacd823610d3e4/tests",
    "https://github.com/jd-opensource/arkdecompiler/blob/8afb36903127b56edee362ce67aacd823610d3e4/autotests/scantstests.py",
    "https://github.com/jd-opensource/arkdecompiler/tree/8afb36903127b56edee362ce67aacd823610d3e4/ui",
    "https://github.com/jd-opensource/arkdecompiler/blob/8afb36903127b56edee362ce67aacd823610d3e4/LICENSE",
    "https://github.com/jd-opensource/arkdecompiler/releases/tag/v0.1.0"
  ],
  "category": "android",
  "description_en": "Decompiler for HarmonyOS NEXT apps, published under the jd-opensource GitHub organization, that turns Panda binary files (.abc Ark bytecode) back into ArkTS source. Its xabc program parses the bytecode, lifts it into the Ark compiler's Panda IR for analysis, rebuilds an ArkTS syntax tree with loop, class, lexical-environment and module-variable reconstruction, and prints that tree as ArkTS code. A cross-platform GUI, built with either Electron or Tauri, adds a file explorer, function and symbol lists, cross-references, search and a hex view; the README links Black Hat Arsenal presentations from 2025 and 2026.",
  "description_zh": "面向 HarmonyOS NEXT（纯血鸿蒙）应用的反编译器，发布于 jd-opensource GitHub 组织下，可将 Panda 二进制文件（.abc 方舟字节码）还原为 ArkTS 源码。其 xabc 程序解析字节码，将其提升为方舟编译器的 Panda IR 以便分析，再通过循环、类、词法环境和模块变量的重建生成 ArkTS 语法树，最后输出为 ArkTS 代码。跨平台图形界面可基于 Electron 或 Tauri 构建，提供文件浏览、函数与符号列表、交叉引用、搜索和十六进制视图；README 链接了 2025 年和 2026 年的 Black Hat Arsenal 展示。",
  "entry_url": "https://awesomerea.org/resources/arkdecompiler/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/arkdecompiler/",
  "evidence_url": "https://github.com/jd-opensource/arkdecompiler/blob/8afb36903127b56edee362ce67aacd823610d3e4/README.md",
  "group": "tools",
  "id": "arkdecompiler",
  "json_url": "https://awesomerea.org/resources/arkdecompiler/record.json",
  "kind": "tool",
  "markdown_url": "https://awesomerea.org/resources/arkdecompiler/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/arkdecompiler/index.md",
  "name": "arkdecompiler",
  "name_zh": "arkdecompiler 鸿蒙 NEXT 反编译器",
  "record_type": "resource",
  "relationship": "foundation",
  "requirements": [
    "Reviewed at the 2026-07-23 master commit. The README marks all instructions as supported and a basic GUI as done, while covering enough corner cases from the official compiler and test262 is still in progress. Release v0.1.0 (2026-04-23) attaches Electron and Tauri GUI builds for Linux x86, macOS arm64 and Windows x86; decompilation runs only on Linux and disassembly on all three, and the GUI needs the paths of the command-line tools configured first.",
    "Building xabc is tested on Ubuntu 22.04 inside an OpenHarmony arkcompiler standalone build: scripts/prepare.sh installs the repo tool, syncs the ark-standalone-build manifest from Gitee, downloads its prebuilts and checks out OpenHarmony v6.0.0.1-Release, and the files in patches/ must be applied to arkcompiler runtime_core, ets_frontend and third_party/protobuf before gn and ninja build xabc. The Dockerfile instead uses Ubuntu 20.04 and the OpenHarmony 5.1.0 release.",
    "xabc reads one .abc file and writes ArkTS plus an AST dump, defaulting to demo.abc and arkdemo.ts. The documented workflow compiles the user's own demo.ts with OpenHarmony's es2abc and decompiles the result; any other bytecode must come from the user's own app packages, and the repository ships no apps or .abc samples.",
    "tests/ holds 18 TypeScript samples for features such as classes, loops, generators, async functions and modules. autotests/scantstests.py compiles cases from the test262 and OpenHarmony TypeScript submodules and records whether decompilation exits cleanly, fails, crashes or times out, with a blacklist of skipped cases. No pass rates or semantic-equivalence results are reported, and the repository has no CI workflow.",
    "Apache-2.0; the OpenHarmony components it builds against keep their own licenses."
  ],
  "requirements_zh": [
    "审阅对象为 2026-07-23 的 master 提交。README 标注已支持全部指令并完成基础图形界面，而充分覆盖官方编译器和 test262 中的边界情况仍在进行中。v0.1.0 版（2026-04-23）附带 Linux x86、macOS arm64 和 Windows x86 的 Electron 与 Tauri 图形界面构建；反编译仅支持 Linux，反汇编三个平台均可，使用图形界面前需先配置命令行工具的路径。",
    "xabc 的构建在 Ubuntu 22.04 上测试，需置于 OpenHarmony 方舟编译器独立构建环境中：scripts/prepare.sh 会安装 repo 工具、从 Gitee 同步 ark-standalone-build 清单、下载其预编译工具，并切换到 OpenHarmony v6.0.0.1-Release；之后须将 patches/ 中的补丁应用到 arkcompiler 的 runtime_core、ets_frontend 以及 third_party/protobuf，再用 gn 和 ninja 构建 xabc。Dockerfile 则使用 Ubuntu 20.04 和 OpenHarmony 5.1.0 版本。",
    "xabc 读取一个 .abc 文件，输出 ArkTS 代码和 AST 转储，默认分别为 demo.abc 和 arkdemo.ts。文档中的流程是用 OpenHarmony 的 es2abc 编译用户自己的 demo.ts，再对结果反编译；其他字节码须来自用户自己的应用包，仓库不附带任何应用或 .abc 样例。",
    "tests/ 收录 18 个 TypeScript 样例，涵盖类、循环、生成器、异步函数和模块等特性。autotests/scantstests.py 会编译 test262 和 OpenHarmony TypeScript 子模块中的用例，记录反编译是否正常退出、失败、崩溃或超时，并用黑名单跳过部分用例。仓库未报告通过率或语义等价结果，也没有 CI 工作流。",
    "采用 Apache-2.0 许可；其构建所依赖的 OpenHarmony 组件保留各自许可证。"
  ],
  "targets": [
    "app"
  ],
  "url": "https://github.com/jd-opensource/arkdecompiler",
  "verification": "source-reviewed",
  "verified_at": "2026-10-27"
}
