Tool

arkdecompiler

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.

Targets
App
Category
Android tools
Relationship
Foundation tool
Sources reviewed

Requirements & limits

  • 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, the repository has no CI workflow, and nothing was built or run in this review.
  • Apache-2.0; the OpenHarmony components it builds against keep their own licenses. The reviewed sources establish no REA connection.

About this entry

The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.

Report an outdated entry Suggest a translation fix

Primary sources

  1. README.md GitHub · jd-opensource/arkdecompiler · Revision 8afb369
  2. xabc.cpp GitHub · jd-opensource/arkdecompiler · Revision 8afb369
  3. scripts/prepare.sh GitHub · jd-opensource/arkdecompiler · Revision 8afb369
  4. patches GitHub · jd-opensource/arkdecompiler · Revision 8afb369
  5. docker/Dockerfile GitHub · jd-opensource/arkdecompiler · Revision 8afb369
  6. build.sh GitHub · jd-opensource/arkdecompiler · Revision 8afb369
  7. tests GitHub · jd-opensource/arkdecompiler · Revision 8afb369
  8. autotests/scantstests.py GitHub · jd-opensource/arkdecompiler · Revision 8afb369
  9. ui GitHub · jd-opensource/arkdecompiler · Revision 8afb369
  10. LICENSE GitHub · jd-opensource/arkdecompiler · Revision 8afb369
  11. https://github.com/jd-opensource/arkdecompiler/releases/tag/v0.1.0

More in Apps

All 136 entries in Apps